diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/CHANGELOG.md
new file mode 100644
index 00000000..2d62a270
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/CHANGELOG.md
@@ -0,0 +1,289 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## 3.0.2 - 2024-09-06
+### Changed
+- Internal updates.
+
+## 3.0.1 - 2024-09-06
+### Added
+- Threats List: Add pagination. [#39058]
+
+### Changed
+- Admin menu: change order of Jetpack sub-menu items. [#39095]
+- Updated package dependencies. [#39176]
+
+### Fixed
+- Security Scanning: Adds a background to the scan progress bar. [#38847]
+- General: Delete relevant Protect options on deactivation. [#38815]
+- Auto Fixers: Disable the unignore threats button when a fixer is in progress. [#38898]
+- Security Scanning: Fix the threat fixed on date in the history view. [#39164]
+- General: Improves the manual scan link button loading state. [#38897]
+
+## 3.0.0-beta - 2024-08-09
+### Added
+- Firewall: add dedicated WAF allow and block list toggles [#38265]
+- General: add "contact support" links [#38416]
+- Security Scanning: add threats history view [#38117]
+
+### Changed
+- General: indicate compatibility with the upcoming version of WordPress - 6.6. [#37962]
+
+### Removed
+- General: update WordPress version requirements to WordPress 6.5. [#38382]
+
+### Fixed
+- Fix an issue where the connection error hook was always resetting the notice [#38120]
+- Fix image optimization [#38573]
+- Fix in-progress threat fixer loading indicator [#38051]
+- Fix threat fix modal title [#38312]
+
+## 2.2.0 - 2024-05-24
+### Added
+- Add data to WAF logs and a toggle for users to opt-in to share more data with us if needed. [#36377]
+- Trigger a red bubble notification when a bad install is detected. [#36449]
+
+### Changed
+- Update WordPress minimum version requirement to WordPress 6.4. [#37047]
+- Only show installation errors on the plugins page. [#36390]
+
+### Fixed
+- Jetpack Protect Footer: ensure that "Go to cloud" links are not shown when on a platform with no firewall support. [#36794]
+
+## 2.1.0 - 2024-03-14
+### Added
+- Added onboarding flows. [#34649]
+- Added firewall standalone mode indicator. [#34840]
+
+### Changed
+- General: indicate compatibility with the upcoming version of WordPress, 6.5. [#35820]
+- Use blog ID instead of site slug in checkout links. [#35004]
+- Updated package dependencies. [#36325]
+- Updated package lockfile. [#35672]
+
+### Fixed
+- Prevent text orphans in the site scanning header. [#35935]
+
+## 2.0.0 - 2024-01-18
+### Changed
+- Firewall: use datetime versioning for rules file updates. [#34698]
+- General: unify display of notifications across Scan and Firewall screens [#34702]
+- General: indicate full compatibility with the latest version of WordPress, 6.4. [#33776]
+- General: update PHP requirement to PHP 7.0+ [#34126]
+- General: update WordPress version requirements to WordPress 6.3. [#34127]
+- General: update package dependencies. [#34882]
+- General: update lockfile. [#33607]
+
+### Fixed
+- Fix Modal component overflow scrolling. [#34475]
+- Fix Popover component styling. [#34424]
+- Improved helper script installer logging. [#34297]
+
+## 1.4.2 - 2023-10-19
+### Changed
+- General: update WordPress version requirements to WordPress 6.2. [#32762] [#32772]
+- Updated Jetpack submenu sort order so individual features are alpha-sorted. [#32958]
+- Updated method used to render Connection initial state. [#32499]
+- Updated package dependencies. [#33692]
+
+## 1.4.1 - 2023-07-18
+### Changed
+- Brute Force Protection: add access to feature in environments that otherwise do not support the WAF. [#31952]
+- General: indicate full compatibility with the latest version of WordPress, 6.3. [#31910]
+- Update WordPress version requirements. Now requires version 6.1. [#30120]
+- Update package dependencies. [#31952]
+
+### Fixed
+- Scan: Fixed sorting of threats by severity. [#31124]
+- License Activation: add filtering for unattached and unrevoked licenses within upgrade flow check. [#31086]
+
+## 1.4.0 - 2023-05-05
+### Added
+- Add brute force protection. [#28401]
+
+### Changed
+- General: indicate full compatibility with the latest version of WordPress, 6.2. [#29341]
+- Improve the firewall status heading to provide more information based on the current configuration. [#28401]
+- Updated package dependencies. [#29480]
+
+## 1.3.0 - 2023-03-13
+### Added
+- Add ability to toggle automatic and manual firewall rules independently. [#27726]
+- Add improved messaging for currently enabled firewall features. [#27845]
+- Disable Jetpack Firewall on unsupported environments. [#27939]
+- Add link to pricing page for getting started with an existing plan or license key. [#27745]
+
+### Changed
+- Updated package dependencies. [#29297]
+- Update to React 18. [#28710]
+- Use `flex-start`/`flex-end` instead of `start`/`end` for better browser compatibility. [#28530]
+
+### Fixed
+- Fix connection button loading indicators. [#28514]
+- Fix Protect status report caching. [#28766]
+- Remove unnecessary full path from example in UI. [#29037]
+- Other assorted fixes for minor bugs and grammar. [#27846] [#28091] [#28397] [#28273]
+
+## 1.2.0 - 2023-01-16
+### Added
+- Add web application firewall (WAF) features [#27528]
+- Add progress bar to site scannnig screen [#27171]
+
+### Fixed
+- Poll for scan status while scanner is provisioning [#28275]
+- Bug fixes
+
+## 1.1.2 - 2022-11-30
+### Changed
+- changed description and author [#27618]
+- Updated package dependencies. [#27043]
+
+## 1.1.1 - 2022-11-18
+### Fixed
+- Fix issue with plugin activation.
+
+## 1.1.0 - 2022-11-17
+### Added
+- Add features for paid Jetpack Scan users, including file and database threats, on-demand scanning, and threat auto-fixers.
+
+### Changed
+- Compatibility: WordPress 6.1 compatibility
+
+### Fixed
+- Adjust alignment of spinner icon and loading text on the in-progress scan screen.
+
+## 1.0.4 - 2022-08-29
+### Fixed
+- Fixed NaN error that prevented the pricing interstitial from rendering.
+
+## 1.0.3 - 2022-08-26
+### Added
+- Added a default 'See all results' label to the mobile navigation button.
+- Added a spinner to the in progress scan page in admin
+- Added JITM functionality
+- Added threat descriptions.
+- My Jetpack includes JITMs
+
+### Changed
+- Add condition to check plugin activation context before redirecting
+
+### Fixed
+- Fixed alignment of long navigation item labels on mobile screen sizes.
+
+## 1.0.2 - 2022-07-27
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Fix protect admin toolbar icon display when Jetpack enabled and connected
+- Minor bug fix - added isset() checks for report data properties
+
+## 1.0.1 - 2022-07-07
+### Added
+- Added two new FAQ entries
+- Protect: record even just after the site is registered
+
+### Changed
+- Moved normalization of the Protect status report data to the server side.
+- Renamed `master` references to `trunk`
+- Reorder JS imports for `import/order` eslint rule.
+
+### Fixed
+- Fixed bug that would not display Core vulnerabilities.
+- Removed legacy code and documentation and adds new docs for the debug helper plugin.
+- Fixed recommendation for plugins that don't have a fix yet
+- Protect: Fix visual issue of the Interstitial page
+
+## 1.0.0 - 2022-05-31
+### Added
+- Add additional tracking events
+- Add Alert icon to the error admin page
+- Add checks to the Site Health page
+- Add custom hook to handle viewport sizes via CSS
+- Add error message when adding plugin fails
+- Add first approach of Interstitial page
+- Add Jetpack Scan to promotion section when site doesn't have Security bundle
+- Add missing prop-types module dependency
+- Add Navigation dropdown mode and use it for small/medium screens
+- Add ProductOffer component
+- Add product offer component
+- Add title and redirect for vul at wpscan
+- Add 'get themes' to synced callables in Protect
+- Add installedThemes to the initial state
+- Add notifications to the menu item and the admin bar
+- Add status polling to the Protect admin page.
+- Added details to the FAQ question on how Jetpack Protect is different from other Jetpack products.
+- Added Jetpack Protect readme file for the plugin listing.
+- Added option to display terms of service below product activation button.
+- Added Social card to My Jetpack.
+- Added the list of installed plugins to the initial state
+- Change ConnectScreen by the Interstitial component
+- Creates Status Class
+- Empty state screen
+- Expose and use IconsCard component
+- Flush cache on plugin deactivation
+- Footer component
+- Handle error in the UI
+- Hooks on plugin activation and deactivation
+- Hook to read data from the initial state
+- Implement Footer
+- Implement Add Security bundle workflow
+- Introduce Accordion component
+- Introduce Navigation component
+- Introduce Summary component
+- Introduce VulnerabilitiesList component
+- JS Components: Introduce Alert component. Add error to ProductOffer components
+- More options to the testing api responses
+- Record admin page-view and get security from footer events
+- Render Security component with data provided by wpcom
+- Request and expose to the client the Security bundle data
+- Update logo
+
+### Changed
+- Add empty state for no vuls
+- Add popover at Badge
+- Cache empty statuses for a short period of time
+- Changed connection screen to the one that does not require a product
+- Changed the method used to disconnect
+- Changed the wording for the initial screen.
+- Change expiration time of plugin cache
+- Clean connection data. Update to latest connection API
+- Configure Sync to only what we need to sync
+- Janitorial: require a more recent version of WordPress now that WP 6.0 is coming out.
+- JS Components: Add subTitle prop to ProductOffer component
+- JS Components: iterate over Dialog component
+- Improve Dialog layout in medium viewport size
+- Move VulnerabilitiesList to section hero
+- New VulsList
+- Redesign Summary component
+- Re-implement "Your results will be ready soon" layout
+- Re-implement Admin page by using Dialog component
+- Remove use of `pnpx` in preparation for pnpm 7.0.
+- Replace deprecated external-link variation by using isExternalLink prop
+- Require only site level connection
+- Truncate items at NavigationGroup
+- Tweak footer
+- Update Footer and VulsList for small/medium viewport
+- Update Navigation to be external controlled
+- Update Protect icon
+- Update VulnerabilitiesList to remove severity and add fixed in
+- Updated package dependencies.
+- Update package.json metadata.
+- Updates CTA wording to reduce confusion when user already has Jetpack Security Bundle which includes Jetpack Scan
+- Update the Status when connection is established
+- Use data provided by My Jetpack to render Product offer
+- Use weight Button prop to style the "learn more" footer link
+- Use a different copy when there are no found vulnerabilities but there are still some unchecked items
+
+### Removed
+- Removed Full Sync from loaded modules as Full Sync Immediately is present by default now
+
+### Fixed
+- Adjust spacing and overflow properties of the navigation labels to improve display of long names.
+- Fix Connectino initialization
+- Fix fatal when checking whether site site has vuls
+- Fix right margin in primary layout
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.eot b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.eot
new file mode 100644
index 00000000..51f012dd
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.eot differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.svg
new file mode 100644
index 00000000..51e14560
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.svg
@@ -0,0 +1,11 @@
+
+
+
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.ttf b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.ttf
new file mode 100644
index 00000000..c44c262f
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.ttf differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.woff b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.woff
new file mode 100644
index 00000000..dc898ac5
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/fonts/jetpack-protect.woff differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/images/in-progress.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/images/in-progress.png
new file mode 100644
index 00000000..7d712a97
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/images/in-progress.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/jetpack-protect.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/jetpack-protect.css
new file mode 100644
index 00000000..d194c5b1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/assets/jetpack-protect.css
@@ -0,0 +1,30 @@
+@font-face {
+ font-family: 'jetpack-protect';
+ src: url('fonts/jetpack-protect.eot?31wpn');
+ src: url('fonts/jetpack-protect.eot?31wpn#iefix') format('embedded-opentype'),
+ url('fonts/jetpack-protect.ttf?31wpn') format('truetype'),
+ url('fonts/jetpack-protect.woff?31wpn') format('woff'),
+ url('fonts/jetpack-protect.svg?31wpn#jetpack-protect') format('svg');
+ font-weight: normal;
+ font-style: normal;
+ font-display: block;
+ }
+
+[class^="jp-protect-icon"], [class*=" jp-protect-icon"] {
+ /* use !important to prevent issues with browser extensions that change fonts */
+ font-family: 'jetpack-protect' !important;
+ speak: never;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.jp-protect-icon:before {
+ content: "\e900";
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/images/in-progress-dabfeaa364c305be480c.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/images/in-progress-dabfeaa364c305be480c.png
new file mode 100644
index 00000000..7d712a97
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/images/in-progress-dabfeaa364c305be480c.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.asset.php
new file mode 100644
index 00000000..05f931fd
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.asset.php
@@ -0,0 +1 @@
+ array('jetpack-connection', 'jetpack-script-data', 'moment', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '8d3412963d3c47f0ac0a');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.css
new file mode 100644
index 00000000..4054c56b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.css
@@ -0,0 +1 @@
+._aiMxmJRAw5jRPbZFX57{background-color:var(--jp-gray-90);border-radius:var(--jp-border-radius);color:var(--jp-white);display:flex;overflow:hidden}._aiMxmJRAw5jRPbZFX57.eWgNBUaexiR66ZI1Px4U{border-left:4px solid var(--jp-yellow-20);margin-bottom:calc(var(--spacing-base)*3)}._aiMxmJRAw5jRPbZFX57.ZGELG1CO333FilJXOaeI{margin-left:calc(var(--spacing-base)*3);position:fixed;right:calc(var(--spacing-base)*3);top:calc(var(--spacing-base)*6)}@media(max-width:782px){._aiMxmJRAw5jRPbZFX57.ZGELG1CO333FilJXOaeI{top:calc(var(--spacing-base)*8)}}._aiMxmJRAw5jRPbZFX57 a,._aiMxmJRAw5jRPbZFX57 a:active,._aiMxmJRAw5jRPbZFX57 a:hover,._aiMxmJRAw5jRPbZFX57 a:link,._aiMxmJRAw5jRPbZFX57 a:visited{color:var(--jp-white)}.BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-yellow-30);fill:var(--jp-white);align-items:center;display:flex;justify-content:center;padding:calc(var(--spacing-base)*1.5)}.hRRUwTCPRpurhMwRNZkg .BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-green-50)}.Z6q3IxY_uR1y2lAPTkVF .BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-red)}.eWgNBUaexiR66ZI1Px4U .BnI88X_e8ItF1c9Uozmj{fill:var(--jp-yellow-50);background-color:var(--jp-yellow-5)}.ST8sowTbBVLRPrk4ZQrn{font-size:14px;padding:calc(var(--spacing-base)*1.75)}.eWgNBUaexiR66ZI1Px4U .ST8sowTbBVLRPrk4ZQrn{background-color:var(--jp-yellow-5);color:var(--jp-gray-90)}.lMkO08Vd8YQMfwrwaI8u{fill:var(--jp-gray);align-items:center;background:#0000;border:none;cursor:pointer;display:flex;justify-content:center;padding:calc(var(--spacing-base)*1.5)}._Wc3apZobag_9Ag_THTb{display:flex;justify-content:space-between}.WQVtrU6q0L1Igcj7wCrQ{margin:0;padding:0}.UujoBFTnQNY2cWU2SIsH{font-size:var(--font-headline-medium);font-weight:700;line-height:52px}.TeGO5V_thHw5lDAm1_2M{font-weight:700}.TeGO5V_thHw5lDAm1_2M,.WolQzb2MsSgiNmLtc7_j{font-size:var(--font-headline-small);line-height:40px}.WolQzb2MsSgiNmLtc7_j{font-weight:400}.hUB0JT8p1T2Hw28N6qC8{font-weight:500}.gKZWDv5chz3_O3Syp74H,.hUB0JT8p1T2Hw28N6qC8{font-size:var(--font-title-medium);line-height:32px}.gKZWDv5chz3_O3Syp74H{font-weight:600}.zY2No8Ga4b8shbOQGhnv{font-size:var(--font-title-small);font-weight:500;line-height:30px}.tIj0D1t8Cc892ikmgFPZ{font-size:var(--font-body);font-weight:400;line-height:24px}.KdcN0BnOaVeVhyLRKqhS{font-size:var(--font-body-small);font-weight:400;line-height:24px}.dso3Rh3tl3Xv1GumBktz{font-weight:400}.dso3Rh3tl3Xv1GumBktz,.mQ1UlbN9u4Mg9byO8m7v{font-size:var(--font-body-extra-small);line-height:20px}.mQ1UlbN9u4Mg9byO8m7v{font-weight:700}.PItlW5vRExLnTj4a8eLE{font-size:var(--font-body-extra-small);font-weight:600;line-height:16px}.TwRpPlktzxhmFVeua7P5{margin:calc(var( --spacing-base )*0)}.zVfqx7gyb3o9mxfGynn1{margin-left:calc(var( --spacing-base )*0);margin-right:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy{margin-bottom:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy,.xqDIp6cNVr_E6RXaiPyD{margin-top:calc(var( --spacing-base )*0)}.S8EwaXk1kyPizt6x4WH2{margin-right:calc(var( --spacing-base )*0)}.ODX5Vr1TARoLFkDDFooD{margin-bottom:calc(var( --spacing-base )*0)}.cphJ8dCpfimnky7P2FHg{margin-left:calc(var( --spacing-base )*0)}.PFgIhNxIyiSuNvQjAIYj{margin:calc(var( --spacing-base )*1)}.M2jKmUzDxvJjjVEPU3zn{margin-left:calc(var( --spacing-base )*1);margin-right:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk{margin-bottom:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk,.rcTN5uw9xIEeMEGL3Xi_{margin-top:calc(var( --spacing-base )*1)}.CQSkybjq2TcRM1Xo9COV{margin-right:calc(var( --spacing-base )*1)}.hfqOWgq6_MEGdFE82eOY{margin-bottom:calc(var( --spacing-base )*1)}.I8MxZQYTbuu595yfesWA{margin-left:calc(var( --spacing-base )*1)}.kQkc6rmdpvLKPkyoJtVQ{margin:calc(var( --spacing-base )*2)}.j6vFPxWuu4Jan2ldoxpp{margin-left:calc(var( --spacing-base )*2);margin-right:calc(var( --spacing-base )*2)}.hqr39dC4H_AbactPAkCG{margin-bottom:calc(var( --spacing-base )*2)}.c3dQnMi16C6J6Ecy4283,.hqr39dC4H_AbactPAkCG{margin-top:calc(var( --spacing-base )*2)}.YNZmHOuRo6hU7zzKfPdP{margin-right:calc(var( --spacing-base )*2)}.Db8lbak1_wunpPk8NwKU{margin-bottom:calc(var( --spacing-base )*2)}.ftsYE5J9hLzquQ0tA5dY{margin-left:calc(var( --spacing-base )*2)}.Det4MHzLUW7EeDnafPzq{margin:calc(var( --spacing-base )*3)}.h_8EEAztC29Vve1datb5{margin-left:calc(var( --spacing-base )*3);margin-right:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM{margin-bottom:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM,.soADBBkcIKCBXzCTuV9_{margin-top:calc(var( --spacing-base )*3)}.zSX59ziEaEWGjnpZa4uV{margin-right:calc(var( --spacing-base )*3)}.yrVTnq_WBMbejg89c2ZQ{margin-bottom:calc(var( --spacing-base )*3)}.UKtHPJnI2cXBWtPDm5hM{margin-left:calc(var( --spacing-base )*3)}.guexok_Tqd5Tf52hRlbT{margin:calc(var( --spacing-base )*4)}.oS1E2KfTBZkJ3F0tN7T6{margin-left:calc(var( --spacing-base )*4);margin-right:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd{margin-bottom:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd,.ot2kkMcYHv53hLZ4LSn0{margin-top:calc(var( --spacing-base )*4)}.A1krOZZhlQ6Sp8Cy4bly{margin-right:calc(var( --spacing-base )*4)}.pkDbXXXL32237M0hokEh{margin-bottom:calc(var( --spacing-base )*4)}.XXv4kDTGvEnQeuGKOPU3{margin-left:calc(var( --spacing-base )*4)}.yGqHk1a57gaISwkXwXe6{margin:calc(var( --spacing-base )*5)}.X8cghM358X3DkXLc9aNK{margin-left:calc(var( --spacing-base )*5);margin-right:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f{margin-bottom:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f,.yqeuzwyGQ7zG0avrGqi_{margin-top:calc(var( --spacing-base )*5)}.g9emeCkuHvYhveiJbfXO{margin-right:calc(var( --spacing-base )*5)}.Lvk3dqcyHbZ07QCRlrUQ{margin-bottom:calc(var( --spacing-base )*5)}.r3yQECDQ9qX0XZzXlVAg{margin-left:calc(var( --spacing-base )*5)}.aQhlPwht2Cz1X_63Miw0{margin:calc(var( --spacing-base )*6)}.JyHb0vK3wJgpblL9s5j8{margin-left:calc(var( --spacing-base )*6);margin-right:calc(var( --spacing-base )*6)}.cY2gULL1lAv6WPNIRuf3{margin-bottom:calc(var( --spacing-base )*6)}.NBWQ9Lwhh_fnry3lg_p7,.cY2gULL1lAv6WPNIRuf3{margin-top:calc(var( --spacing-base )*6)}.yIOniNe5E40C8fWvBm5V{margin-right:calc(var( --spacing-base )*6)}.t30usboNSyqfQWIwHvT3{margin-bottom:calc(var( --spacing-base )*6)}.Nm_TyFkYCMhOoghoToKJ{margin-left:calc(var( --spacing-base )*6)}.C4qJKoBXpgKtpmrqtEKB{margin:calc(var( --spacing-base )*7)}.S93Srbu6NQ_PBr7DmTiD{margin-left:calc(var( --spacing-base )*7);margin-right:calc(var( --spacing-base )*7)}.fJj8k6gGJDks3crUZxOS{margin-bottom:calc(var( --spacing-base )*7)}.cW6D6djs7Ppm7fD7TeoV,.fJj8k6gGJDks3crUZxOS{margin-top:calc(var( --spacing-base )*7)}.DuCnqNfcxcP3Z__Yo5Ro{margin-right:calc(var( --spacing-base )*7)}.im8407m2fw5vOg7O2zsw{margin-bottom:calc(var( --spacing-base )*7)}.G0fbeBgvz2sh3uTP9gNl{margin-left:calc(var( --spacing-base )*7)}.kvW3sBCxRxUqz1jrVMJl{margin:calc(var( --spacing-base )*8)}.tOjEqjLONQdkiYx_XRnw{margin-left:calc(var( --spacing-base )*8);margin-right:calc(var( --spacing-base )*8)}.op5hFSx318zgxsoZZNLN{margin-bottom:calc(var( --spacing-base )*8)}.c9WfNHP6TFKWIfLxv52J,.op5hFSx318zgxsoZZNLN{margin-top:calc(var( --spacing-base )*8)}.sBA75QqcqRwwYSHJh2wc{margin-right:calc(var( --spacing-base )*8)}.GpL6idrXmSOM6jB8Ohsf{margin-bottom:calc(var( --spacing-base )*8)}.HbtWJoQwpgGycz8dGzeT{margin-left:calc(var( --spacing-base )*8)}.uxX3khU88VQ_Ah49Ejsa{padding:calc(var( --spacing-base )*0)}.KX0FhpBKwKzs9fOUdbNz{padding-left:calc(var( --spacing-base )*0);padding-right:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz{padding-bottom:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz,.emxLHRjQuJsImnPbQIzE{padding-top:calc(var( --spacing-base )*0)}.kJ8WzlpTVgdViXt8ukP9{padding-right:calc(var( --spacing-base )*0)}.tg_UIUI11VBzrTAn2AzJ{padding-bottom:calc(var( --spacing-base )*0)}.uczvl8kaz84oPQJ2DB2R{padding-left:calc(var( --spacing-base )*0)}.o7UHPcdVK3lt7q3lqV4o{padding:calc(var( --spacing-base )*1)}.IDqEOxvDoYrFYxELPmtX{padding-left:calc(var( --spacing-base )*1);padding-right:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2{padding-bottom:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2,.npy3hw4A5QSkDicb2CJJ{padding-top:calc(var( --spacing-base )*1)}.LgbptTApNY5NwLQvEFAt{padding-right:calc(var( --spacing-base )*1)}.WZQy2SZuZso59bUsXXyl{padding-bottom:calc(var( --spacing-base )*1)}.o331apInxNunbYB3SfPE{padding-left:calc(var( --spacing-base )*1)}.fMPIyD9Vqki1Lrc_yJnG{padding:calc(var( --spacing-base )*2)}.i2pMcTcdrr10IQoiSm_L{padding-left:calc(var( --spacing-base )*2);padding-right:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH{padding-bottom:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH,.o9bGieUKcYc8o0Ij9oZX{padding-top:calc(var( --spacing-base )*2)}.SwZcFez1RDqWsOFjB5iG{padding-right:calc(var( --spacing-base )*2)}.eHpLc_idmuEqeqCTvqkN{padding-bottom:calc(var( --spacing-base )*2)}.vU39i2B4P1fUTMB2l6Vo{padding-left:calc(var( --spacing-base )*2)}.JHWNzBnE29awhdu5BEh1{padding:calc(var( --spacing-base )*3)}.X72lGbb56L3KFzC2xQ9N{padding-left:calc(var( --spacing-base )*3);padding-right:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e{padding-bottom:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e,.srV0KSDC83a2fiimSMMQ{padding-top:calc(var( --spacing-base )*3)}.lUWfkmbQjCskhcNwkyCm{padding-right:calc(var( --spacing-base )*3)}.Ts0dIlc3aTSL7V4cIHis{padding-bottom:calc(var( --spacing-base )*3)}.CzlqQXXhX6MvorArFZ8B{padding-left:calc(var( --spacing-base )*3)}.TqMPkQtR_DdZuKb5vBoV{padding:calc(var( --spacing-base )*4)}.a7UrjhI69Vetlcj9ZVzz{padding-left:calc(var( --spacing-base )*4);padding-right:calc(var( --spacing-base )*4)}.StEhBzGs2Gi5dDEkjhAv{padding-bottom:calc(var( --spacing-base )*4)}.FGneZfZyvYrt1dG0zcnm,.StEhBzGs2Gi5dDEkjhAv{padding-top:calc(var( --spacing-base )*4)}.APEH216rpdlJWgD2fHc8{padding-right:calc(var( --spacing-base )*4)}.oGwXC3ohCic9XnAj6x69{padding-bottom:calc(var( --spacing-base )*4)}.U6gnT9y42ViPNOcNzBwb{padding-left:calc(var( --spacing-base )*4)}.IpdRLBwnHqbqFrixgbYC{padding:calc(var( --spacing-base )*5)}.HgNeXvkBa9o3bQ5fvFZm{padding-left:calc(var( --spacing-base )*5);padding-right:calc(var( --spacing-base )*5)}.tJtFZM3XfPG9v9TSDfN1{padding-bottom:calc(var( --spacing-base )*5)}.PdifHW45QeXYfK568uD8,.tJtFZM3XfPG9v9TSDfN1{padding-top:calc(var( --spacing-base )*5)}.mbLkWTTZ0Za_BBbFZ5b2{padding-right:calc(var( --spacing-base )*5)}.vVWpZpLlWrkTt0hMk8XU{padding-bottom:calc(var( --spacing-base )*5)}.RxfaJj5a1Nt6IavEo5Zl{padding-left:calc(var( --spacing-base )*5)}.SppJULDGdnOGcjZNCYBy{padding:calc(var( --spacing-base )*6)}.palY2nLwdoyooPUm9Hhk{padding-left:calc(var( --spacing-base )*6);padding-right:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_{padding-bottom:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_,.YEEJ9b90ueQaPfiU8aeN{padding-top:calc(var( --spacing-base )*6)}.QE0ssnsKvWJMqlhPbY5u{padding-right:calc(var( --spacing-base )*6)}.n8yA3jHlMRyLd5UIfoND{padding-bottom:calc(var( --spacing-base )*6)}.tXHmxYnHzbwtfxEaG51n{padding-left:calc(var( --spacing-base )*6)}.kBTsPKkO_3g_tLkj77Um{padding:calc(var( --spacing-base )*7)}.RyhrFx6Y1FGDrGAAyaxm{padding-left:calc(var( --spacing-base )*7);padding-right:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO{padding-bottom:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO,.vQVSq6SvWKbOMu6r4H6b{padding-top:calc(var( --spacing-base )*7)}.oBy5__aEADMsH46mrgFX{padding-right:calc(var( --spacing-base )*7)}.KVEXoJqf1s92j0JMdNmN{padding-bottom:calc(var( --spacing-base )*7)}.ZMXGNrNaKW3k_3TLz0Fq{padding-left:calc(var( --spacing-base )*7)}.tuiR9PhkHXhGyEgzRZRI{padding:calc(var( --spacing-base )*8)}.U7454qyWkQNa2iaSJziu{padding-left:calc(var( --spacing-base )*8);padding-right:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8{padding-bottom:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8,.X1rm9DQ1zLGLfogja5Gn{padding-top:calc(var( --spacing-base )*8)}.JS7G6kAuqJo5GIuF8S5t{padding-right:calc(var( --spacing-base )*8)}.Y8F9ga1TDCMbM1lj4gUz{padding-bottom:calc(var( --spacing-base )*8)}.AJuyNGrI63BOWql719H8{padding-left:calc(var( --spacing-base )*8)}.zI5tJ_qhWE6Oe6Lk75GY{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;border-radius:var(--jp-border-radius);font-weight:600;justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo{height:calc(var(--spacing-base)*5);padding:var(--spacing-base);width:calc(var(--spacing-base)*5)}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo>svg:first-child{margin:0;padding:0}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo.Na39I683LAaSA99REg14{height:calc(var(--spacing-base)*4);min-width:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*4)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body);height:auto;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK{padding:var(--spacing-base) calc(var(--spacing-base)*2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body-extra-small);height:auto;line-height:20px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK>svg:first-child{margin-right:calc(var(--spacing-base)/2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo)>.components-spinner{height:20px}.zI5tJ_qhWE6Oe6Lk75GY.lZAo6_oGfclXOO9CC6Rd{font-weight:400}.zI5tJ_qhWE6Oe6Lk75GY.xJDOiJxTt0R_wSl8Ipz_{min-width:100%}.zI5tJ_qhWE6Oe6Lk75GY.is-primary:disabled,.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:disabled{background:var(--jp-gray);color:var(--jp-gray-20)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary{background:var(--jp-white);box-shadow:inset 0 0 0 1.51px var(--jp-black)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:active:not(:disabled),.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:hover:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-link.Na39I683LAaSA99REg14,.zI5tJ_qhWE6Oe6Lk75GY.is-link.ipS7tKy9GntCS4R3vekF{padding:0}.zI5tJ_qhWE6Oe6Lk75GY.is-link:hover:not(:disabled){text-decoration-thickness:3px}.zI5tJ_qhWE6Oe6Lk75GY.is-link:focus:not(:disabled){text-decoration-line:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:not(:disabled){background:var(--jp-red-50);box-shadow:inset 0 0 0 1px var(--jp-red-50);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:hover:not(:disabled){background:var(--jp-red-60);box-shadow:inset 0 0 0 1px var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:focus:not(:disabled){background:var(--jp-red-70);box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:active:not(:disabled){background:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:not(:disabled){background:var(--jp-white);box-shadow:inset 0 0 0 1.5px var(--jp-red-50);color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:hover:not(:disabled){background:var(--jp-red-0);box-shadow:inset 0 0 0 1.5px var(--jp-red-60);color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:active:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:not(:disabled){color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:hover:not(:disabled){box-shadow:none;color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6{position:relative}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6.has-icon{justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>:not(.components-spinner){visibility:hidden}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>.components-spinner{margin:0;position:absolute}.CDuBjJp_8jxzx5j6Nept{margin-left:calc(var(--spacing-base)/2)}.kdsaL7c4bpTwf_A4fIUT{padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6);text-align:center}.b0eN3as5AgxQW7EAkarg{margin-bottom:0}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid #0000;border-radius:50%;box-sizing:border-box;margin:auto}.jp-components-spinner__outer{border-top-color:#fff}.jp-components-spinner__inner{border-right-color:#fff;border-top-color:#fff;height:100%;opacity:.4;width:100%}.JiJhrZaThvWCpM2AfGen{border-radius:32px;flex-shrink:0;font-size:12px;font-style:normal;font-weight:600;line-height:16px;padding:calc(var(--spacing-base)/2);position:relative;text-align:center;width:60px}._7SGksgOpcPbHfPPpQTV{background:var(--jp-red-5);color:var(--jp-red-60)}.pGNquShR54adQ61sx3lP{background:var(--jp-yellow-5);color:var(--jp-yellow-60)}.IM5kkexAfwGLM6zz0Exd{background:var(--jp-gray-0);color:var(--jp-gray-50)}.NHzH3tt6CypjZ92CvK9x{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;padding:calc(var(--spacing-base)*2)}.NHzH3tt6CypjZ92CvK9x:first-of-type{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius)}.NHzH3tt6CypjZ92CvK9x:last-of-type{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius)}.NHzH3tt6CypjZ92CvK9x+.NHzH3tt6CypjZ92CvK9x{border-top:0}.D9zvYDUrOP_zwSm0yJMs{margin-right:calc(var(--spacing-base)*2);min-width:24px}._XISfmbjoVlqhB61hHYn{width:100%}.AQDPBnMZFu7BOBuo8mYW{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.cZ9s5eCAZe3R82Y6Ru3z{color:var(--jp-gray-80);font-size:14px;line-height:21px}.AKnbWQiViZ2O_dwCV8Fw,.W6alQ2_S5Rh06djX9m27{align-self:center;margin-left:calc(var(--spacing-base)*2);margin-right:var(--spacing-base)}.uUEJGMrSV3XoBwX5xEwA{display:flex;justify-content:space-between}.sQkG5Cu80gPaeFj3L_wa{margin-bottom:calc(var(--spacing-base)*5)}.oIl6GCMeUnzE0inXbuj9{display:flex;justify-content:space-between}.RP2MVoGqaCFXPKZhhxQ1{margin-bottom:calc(var(--spacing-base)*5)}.YpEs8b7KE7fzVuXUbOEb{display:flex;justify-content:space-between}.EqpwvErHtRi_WQkJKgi1{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;margin-bottom:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2)}.EicvN1QaJu5OJLzdUN5A{margin-right:calc(var(--spacing-base)*2);min-width:24px}.b7ynAmUwGlxK_vxyIN0y{width:100%}.uSV9HYRxjL4S6zIZDlqP{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.XpW8Mvw_XFEbqxUdw155{color:var(--jp-gray-80);font-size:14px;line-height:21px}.Fkj60BmQ5sUo9zHcJwVv{align-self:center;margin-left:calc(var(--spacing-base)*2);margin-right:var(--spacing-base)}.XLzPr74ad3osCq9kxy2q{display:flex;justify-content:space-between}.jNlU3vgp4xEGwmX5aTyK{background-color:var(--jp-gray-5)}.gE8s4nh3f7iGIBrFeyCT{list-style-type:disc;padding-left:calc(var(--spacing-base)*2.5)}.L9hh_sX51PzO41icwJlh{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;margin-bottom:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2)}.o8E4Bv6U0d7USFxSjRCj{margin-right:calc(var(--spacing-base)*2);min-width:24px}.sT31awD6bHO8KJewvmaO{width:100%}.VVTRIG51r8ORUIBPs5gN{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.AiaWRbRLFT9xvP9vn5jA{color:var(--jp-gray-80);font-size:14px;line-height:21px}.MP1wWkqvqfvAc7Izl7x4{align-self:center;margin-left:calc(var(--spacing-base)*2);margin-right:var(--spacing-base)}.i9X_KxEJiGpRT7q_RU6i{display:flex;justify-content:space-between}.WtVEv641JBaLl929sZq2{align-items:flex-start;background-color:#00000040;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding-top:calc(var(--spacing-base)*12 + 2px);position:fixed;right:0;top:0;z-index:1000001}.G0aPt7WmA1rkUE0wcTno{background:var(--jp-white);border:1px solid var(--jp-gray);border-radius:calc(var(--jp-border-radius)*2);box-shadow:0 8px 20px #00000040;padding:calc(var(--spacing-base)*4);position:relative;width:616px}.VkrhWjfEIlIwYEumycbP{background:none;border:none;cursor:pointer;padding:0;position:absolute;right:calc(var(--spacing-base)*3);top:calc(var(--spacing-base)*3)}.yFzeV4cmWRbZKk5tIyEw{display:block}.gridicon{fill:currentColor;display:inline-block}.gridicon.needs-offset g{transform:translate(1px,1px)}.gridicon.needs-offset-x g{transform:translate(1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}:root{--font-title-large:36px;--font-title-small:24px;--font-body:16px;--font-label:12px;--jp-black:#000;--jp-black-80:#2c3338;--jp-white:#fff;--jp-white-off:#f9f9f6;--jp-gray:#dcdcde;--jp-gray-0:#f6f7f7;--jp-gray-5:#dcdcde;--jp-gray-10:#c3c4c7;--jp-gray-20:#a7aaad;--jp-gray-30:#8c8f94;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-70:#3c434a;--jp-gray-80:#2c3338;--jp-gray-90:#1d2327;--jp-gray-100:#101517;--jp-gray-off:#e2e2df;--jp-yellow-5:#f5e6b3;--jp-yellow-10:#f2cf75;--jp-yellow-40:#c08c00;--jp-orange-20:#faa754;--jp-blue-5:#ced9f2;--jp-red-0:#f7ebec;--jp-red-50:#d63638;--jp-red-60:#b32d2e;--jp-red-80:#8a2424;--jp-red:#d63639;--jp-pink:#c9356e;--jp-green-0:#f0f2eb;--jp-green-5:#d0e6b8;--jp-green-10:#9dd977;--jp-green-20:#64ca43;--jp-green-30:#2fb41f;--jp-green-40:#069e08;--jp-green-50:#008710;--jp-green-60:#007117;--jp-green-70:#005b18;--jp-green-80:#004515;--jp-green-90:#003010;--jp-green-100:#001c09;--jp-green:#069e08;--jp-green-primary:var(--jp-green-40);--jp-green-secondary:var(--jp-green-30);--jp-border-radius:4px;--jp-border-radius-rna:8px;--jp-menu-border-height:1px;--jp-underline-thickness:2px;--jp-modal-padding-large:32px;--jp-modal-padding:24px;--jp-modal-padding-small:16px;--jp-modal-radius:8px;--jp-button-padding:8px;--jp-button-radius:4px;--jp-gap:16px;--jp-highlight:#3858e9}:where(body){font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}.jp-wrap{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.jp-row{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.jp-row{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.jp-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.sm-col-span-1{grid-column-end:span 1}.sm-col-span-2{grid-column-end:span 2}.sm-col-span-3{grid-column-end:span 3}.sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.md-col-span-1{grid-column-end:span 1}.md-col-span-2{grid-column-end:span 2}.md-col-span-3{grid-column-end:span 3}.md-col-span-4{grid-column-end:span 4}.md-col-span-5{grid-column-end:span 5}.md-col-span-6{grid-column-end:span 6}.md-col-span-7{grid-column-end:span 7}.md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.lg-col-span-1{grid-column-end:span 1}.lg-col-span-2{grid-column-end:span 2}.lg-col-span-3{grid-column-end:span 3}.lg-col-span-4{grid-column-end:span 4}.lg-col-span-5{grid-column-end:span 5}.lg-col-span-6{grid-column-end:span 6}.lg-col-span-7{grid-column-end:span 7}.lg-col-span-8{grid-column-end:span 8}.lg-col-span-9{grid-column-end:span 9}.lg-col-span-10{grid-column-end:span 10}.lg-col-span-11{grid-column-end:span 11}.lg-col-span-12{grid-column-end:span 12}}@media(max-width:960px){.md-col-span-0{display:none}}@media(max-width:600px){.sm-col-span-0{display:none}}.jp-cut{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);margin:32px 0;padding:16px 64px 16px 24px;position:relative;text-decoration:none}.jp-cut,.jp-cut span{display:block}.jp-cut span:last-of-type{font-weight:600}.jp-cut:focus span:last-of-type,.jp-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(8px)}.jp-cut:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.components-popover:not(.is-without-arrow):before{border-color:var(--jp-gray)}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-right:-62px}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-left:-62px}.icon-tooltip-helper .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.icon-tooltip-helper .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.icon-tooltip-helper.is-wide .components-popover__content{width:440px}.icon-tooltip-wrapper{color:var(--jp-black);display:inline-block;position:relative}.icon-tooltip-wrapper .components-button.is-link:focus:not(:disabled){box-shadow:none}.icon-tooltip-helper{height:18px;left:-53px;pointer-events:none;position:absolute;top:0;width:124px}.icon-tooltip-container{pointer-events:all}.icon-tooltip-container .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;margin:0 10px;max-width:90vw;outline:none;padding:24px;white-space:normal;width:304px}.icon-tooltip-title{font-size:16px;font-weight:600;line-height:19px}.icon-tooltip-title:not(:last-child){margin-bottom:8px}.icon-tooltip-content{font-size:14px;font-weight:400;line-height:24px}.icon-tooltip-content ul{list-style-type:disc;margin:0 0 0 1rem}.icon-tooltip-content ul li:last-child{margin-bottom:0}.terms-of-service{color:var(--jp-black);font-size:var(--font-body)}.terms-of-service .terms-of-service__link{color:var(--jp-green-50);text-decoration:underline;white-space:nowrap}.p4qz2tkq0p9hxucJ6Qk2{--padding:calc(var(--spacing-base)*4);color:var(--jp-black)}.lbNDyXioOwvyvbALtCBm{--gap:calc(var(--spacing-base)*3);padding:var(--padding) 0;position:relative}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm{column-gap:var(--gap);display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--columns),1fr);grid-template-rows:repeat(var(--rows),minmax(min-content,max-content))}.cLaNK_XcbTGlRQ4Tp43Q{margin-top:var(--padding)}.s2Lsn4kbm6BrS3DSndRB .cLaNK_XcbTGlRQ4Tp43Q{display:contents}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>*{background:var(--jp-white);position:relative}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>:after{bottom:0;box-shadow:0 4px 24px #0000000d;content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.cLaNK_XcbTGlRQ4Tp43Q>:first-child{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius);border-width:1px 1px 0}.cLaNK_XcbTGlRQ4Tp43Q>:last-child{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius);border-width:0 1px 1px}.DAkZc1P9A3K12fjEliMg{display:flex;flex-direction:column;justify-content:space-between;padding:var(--padding)}.WUBuYABl8nymjs9NnCEL{align-items:center;display:flex;padding-bottom:calc(var(--spacing-base)*2);position:relative}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)){padding-top:calc(var(--spacing-base)*2)}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{background-color:var(--jp-gray);content:"";height:1px;left:var(--padding);position:absolute;right:var(--padding);top:0;z-index:5}.s2Lsn4kbm6BrS3DSndRB .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{left:0;right:unset;width:calc(100% + var(--gap))}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm>:last-child .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{width:100%}.ANtCFeb41NhA8PA3H7ZN,.WUBuYABl8nymjs9NnCEL:last-of-type{padding-bottom:var(--padding)}.Ql2gy_148yW8Vw5vhaKD{padding-left:var(--padding);padding-right:var(--padding)}.EAQrAnQEW1z1BfdY5gbC{margin:0 var(--spacing-base);fill:var(--jp-gray);flex-shrink:0}.EAQrAnQEW1z1BfdY5gbC.JDSTlLoOC_4aUoH2oNM2{fill:var(--jp-green-40)}.EAQrAnQEW1z1BfdY5gbC.zNdQRJ1w7BvaQOYyqzHK{fill:var(--jp-red-50)}.lr7vbX95SKtoe7DarJcZ{margin-left:auto}.s2Lsn4kbm6BrS3DSndRB .lr7vbX95SKtoe7DarJcZ{margin:0 var(--spacing-base);top:1px}.WUBuYABl8nymjs9NnCEL .KRrGp2xdkeBOxLZeuQ6X{fill:var(--jp-gray-20);flex-shrink:0}.H_ZJiRVJg0LiMXPGOcmt{text-align:center;width:fit-content}.H_ZJiRVJg0LiMXPGOcmt>a{color:#000}.s2Lsn4kbm6BrS3DSndRB .H_ZJiRVJg0LiMXPGOcmt{grid-column:2;overflow:hidden;padding-left:var(--padding);padding-right:var(--padding);white-space:nowrap}.x21z_DixObRDsDaWotP1{align-items:right;display:flex;justify-content:right;margin:0 calc(var(--spacing-base)*4)}.dovianZYLKhnbnh9I06o{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-end}.lljtQMhW7lq5tE5SDJEf{align-items:flex-start;display:flex;flex-basis:0;flex-grow:2}.lljtQMhW7lq5tE5SDJEf .NubApIV1vQCRUNprfm6b{margin-left:auto}.dhFQXpZfMwVI8vuYHnwC{align-items:flex-start;display:inline-flex;flex:0 0 auto;position:relative}.dhFQXpZfMwVI8vuYHnwC:first-child{margin-right:calc(var(--spacing-base)*2)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k{color:var(--jp-gray-20)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.C64ZjjUAqJC1T2Sa7apS{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:calc(var(--spacing-base)*3)}.UpZDGew6Ay1hPoP6eI7b{color:var(--jp-gray-40);font-size:var(--font-body-small);line-height:20px}.UpZDGew6Ay1hPoP6eI7b:after{content:""}.NubApIV1vQCRUNprfm6b{background-color:var(--jp-yellow-10);border-radius:4px;font-size:13px;font-weight:600;margin-left:var(--spacing-base);padding-left:var(--spacing-base);padding-right:var(--spacing-base)}.TDiiPbuW1Z0_05u_pvcK{font-weight:400}.UL3B1tQ854mN7r6taB61{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.IG56Hw7ZR_7rKVsM78qw:focus:not(:disabled){box-shadow:none}.jp-dashboard-footer{align-items:center;color:var(--jp-black);display:flex;flex-wrap:wrap;font-size:var(--font-body-extra-small);line-height:1.333;max-width:1128px;width:100%}.jp-dashboard-footer a{text-decoration:none}.jp-dashboard-footer a:any-link,.jp-dashboard-footer a[role=button]{color:inherit}.jp-dashboard-footer a:hover{text-decoration:underline;text-decoration-thickness:1.5px}.jp-dashboard-footer a:focus{border-radius:2px;box-shadow:none;outline:1.5px solid currentColor;outline-offset:3px}.jp-dashboard-footer.is-sm>ul{gap:.125rem}.jp-dashboard-footer.is-md,.jp-dashboard-footer.is-sm>ul{align-items:flex-start;flex-direction:column}.jp-dashboard-footer>ul{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0;width:100%}.jp-dashboard-footer>ul>li{margin-bottom:0}.jp-dashboard-footer>ul>li>a{align-items:center;display:flex;gap:.25rem;min-height:44px}.jp-dashboard-footer__accessible-external-link{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px}.jp-dashboard-footer__jp-item{font-weight:600;padding-inline-end:1rem}.jp-dashboard-footer.is-sm .jp-dashboard-footer__jp-item{padding-bottom:1rem}.jp-dashboard-footer.is-lg .jp-dashboard-footer__a8c-item{margin-inline-start:auto}.jp-dashboard-footer.is-sm .jp-dashboard-footer__a8c-item{padding-top:1rem}.jp-dashboard-footer__a8c-item>a,.jp-dashboard-footer__jp-item>a{text-decoration:none}@media(max-width:599px){.RuVLl3q4lxTQa3wbhBJB{grid-column-end:span 1}.f9LZTRG4MMK42rS89afW{grid-column-start:1}.bHe_zKxjjpUwHw_MdYE1{grid-column-end:2}.QZbNrOqE2aNSn50xVhpU{grid-column-end:span 2}.ev7W3z7zVYPeHAlYqZjf{grid-column-start:2}.NJWd1m_e7lOiPYru2ZMP{grid-column-end:3}.Xc6nt1Qc1DI0Z2A3gt1r{grid-column-end:span 3}.UIcN_GXiPRoIsin8Kohg{grid-column-start:3}.GRKCyqb5LufCSCgykKFc{grid-column-end:4}.i_qTq8gqhhC3vIUepVRB{grid-column-end:span 4}.G3qaZ3Jpbvam_1XvGxgc{grid-column-start:4}.VRCNYKZtO9zukEwmgP1y{grid-column-end:5}}@media(min-width:600px)and (max-width:959px){.tRm008K_WJL79WoNZTNL{grid-column-end:span 1}.l5T2P_bgKts4tdaRkS1d{grid-column-start:1}.zOCxfLZpF6BlgC7a_Yq1{grid-column-end:2}.F80DdgVn0m5OpvtSQWka{grid-column-end:span 2}.oI1c7JYfiJtMQHbhngtU{grid-column-start:2}.pMQtA_4jh1_1lVknqEP5{grid-column-end:3}.VenqMpdgyKQVUNNQcfqd{grid-column-end:span 3}.seNYL99uoczf9V4MxBxT{grid-column-start:3}.YKfF1HFhI9KygA5l3b2J{grid-column-end:4}.yAi0Cv1xDWkoqsaUhvhR{grid-column-end:span 4}.ubhnyZOnkgxNhh6XtVWv{grid-column-start:4}.RGOPGQbWMJ9Ei5oFxS7X{grid-column-end:5}.Sz1E2aWbX483ijdi6yge{grid-column-end:span 5}.tku6_bRYrX9tMbgYGmIl{grid-column-start:5}.b5JHttOhSEcI1WBlqAjk{grid-column-end:6}.FboSx5MoKTAWbxXyYlCw{grid-column-end:span 6}.Jhs8yEEmodG30edbJvag{grid-column-start:6}.IpzbbKVqEqPcfIGkXkwt{grid-column-end:7}.mhCPwfAZ4Kmm_empzJAq{grid-column-end:span 7}.x034ilrJF7rO9UJB2rI1{grid-column-start:7}.Wt8t2e16viRrOJ1lLA5v{grid-column-end:8}.S6pIrEy9AMLKx9bgh_Ae{grid-column-end:span 8}.kEfI4tGyuWfHTlRnvIab{grid-column-start:8}.PUzX4RRsKq1dnsz3gebS{grid-column-end:9}}@media(min-width:960px){.X_pdcLJikd8LS_YAdJlB{grid-column-end:span 1}.tl936d14Huby4khYp05X{grid-column-start:1}.hnge0LnR69d3NXEtEE1t{grid-column-end:2}.fj0NUMuyZQcPNgKcjp5Z{grid-column-end:span 2}.R2ncBX7a2NigdYCcV1OX{grid-column-start:2}.t8vMSDVYno9k9itRwnXb{grid-column-end:3}.wsDuEN2GqHx6qzo8dUdk{grid-column-end:span 3}.cIEVPUweWtLBy3xaXnMx{grid-column-start:3}.fajUWBwu1m2B479j3jmz{grid-column-end:4}.YR0c7fQTgMkDdWzwSyLp{grid-column-end:span 4}.xlwp8BmplxkKNMI7gamo{grid-column-start:4}._C4O1w9DUqx1m3gPf8aA{grid-column-end:5}.Z54F1hAErckAIrKlxnXW{grid-column-end:span 5}.ezSDWkRHmKSxDJXxuiOH{grid-column-start:5}.T0ChoeAjGJjkkNrYhD4g{grid-column-end:6}.qtMoMPF6yHvGJnWHSsde{grid-column-end:span 6}.gdoywN5VPiWERfIBqkph{grid-column-start:6}.wUev_VH5uf_pwFFlbnAU{grid-column-end:7}.egIPDFJsOpownTClq9XP{grid-column-end:span 7}.yGhp9yoAW7k0kQik9AB7{grid-column-start:7}.SJ43U9mR5wUg5V2qBeQA{grid-column-end:8}.cTuyHfMwSUJxN_HdIEgd{grid-column-end:span 8}.smCr8DaIagcumdvdldiK{grid-column-start:8}.T03NHzQJvzwL6wAfIiTL{grid-column-end:9}.pMvxM3RJGjqyNdf9qg1Y{grid-column-end:span 9}.iIVpNRwEnQ_JI5gpp9EN{grid-column-start:9}.ZbQ4u4vGSX5rJOje4uGL{grid-column-end:10}.gKb5wuIDAlKGbrjK2vxy{grid-column-end:span 10}.Z7pINdImE2WJiYnZBTqm{grid-column-start:10}.ZTxp6qpvwurMdOnLLSz1{grid-column-end:11}.NnQTlbfnxPDR6cQ7rygg{grid-column-end:span 11}.O137wZd6Yl0olSA9PsXR{grid-column-start:11}.zf2OJtQ2MPz6SDoh6CB0{grid-column-end:12}.U3H6UHW6HqRt9hdzVg3O{grid-column-end:span 12}.zynnNeS_ZBTxABcVpUQH{grid-column-start:12}.vI8tltFZtFUNAy9Iag9s{grid-column-end:13}}.SqdhUZkXCRuIpErj1B3z{--max-container-width:1128px;--vertical-gutter:24px;--horizontal-spacing:8px;column-gap:var(--vertical-gutter);display:grid;margin:0 auto;max-width:var(--max-container-width);width:100%}@media(max-width:599px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 16px}}@media(min-width:600px)and (max-width:959px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(8,minmax(0,1fr));padding:0 18px}}@media(min-width:960px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(12,minmax(0,1fr));padding:0 24px}}.SqdhUZkXCRuIpErj1B3z.OZC_9a1LhpWF9dv15Gdh{max-width:none;padding:unset}.sexr0jUxC1jVixdKiDnC{margin-left:-20px}@media(max-width:782px){.sexr0jUxC1jVixdKiDnC{margin-left:-10px}}.sexr0jUxC1jVixdKiDnC.vKQ11sLeAM45M04P1ccj{background-color:var(--jp-white)}.vMa4i_Dza2t5Zi_Bw9Nf{background:var(--jp-white-off);padding-top:1px}.lyrXe0pA852TUmyekDb5{display:flex}.KgEeDTKgTC5ZjzYlbTqN{color:var(--jp-black);font-size:var(--font-body);line-height:1.5;margin-right:calc(var(--spacing-base)*4);padding:var(--spacing-base) 0;text-decoration:none}.KgEeDTKgTC5ZjzYlbTqN:last-child{margin-right:0}.KgEeDTKgTC5ZjzYlbTqN:focus,.KgEeDTKgTC5ZjzYlbTqN:hover{border-bottom-color:var(--jp-green);box-shadow:none;color:var(--jp-green)}.Lv4WoNVkeJntqvUyG4dX{border-bottom:1px solid var(--jp-black)}.vvXnRXxrU1kP1KsdSr4J{margin-top:calc(var(--spacing-base)*3*-1)}.aDCTkUFaJEeZzYYE6qv5{background-color:var(--jp-green);border-radius:32px;color:var(--jp-white);font-size:12px;letter-spacing:-2%;line-height:1;margin-left:var(--spacing-base);padding:calc(var(--spacing-base)/2) var(--spacing-base);position:relative;top:-1px}.uQlXhcfYn9tbnK27_Gct{align-items:center;display:flex}.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:checked,.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:indeterminate{background:var(--jp-green-40);border-color:var(--jp-green-40)}.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--jp-green-40)}.PO9zDOaSkcv_RqpfZF_v,.e5YHJiYcvfgdEEJsS_YM{margin-bottom:calc(var(--spacing-base)*7);margin-top:calc(var(--spacing-base)*7)}@media(max-width:599px){.PO9zDOaSkcv_RqpfZF_v{margin-top:0}}svg.V6B8ltQ7TH3UKzUC_qy1{color:var(--jp-black);height:32px;margin:0;width:32px}.C9hcvYAbgHPhN2Tl22xg{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.C9hcvYAbgHPhN2Tl22xg .XkbIpr2gzB4XEhHgzkY4{margin-right:calc(var(--spacing-base)/2)}.BfcZn0_X33Ajdd1Gl18G{display:flex}.BfcZn0_X33Ajdd1Gl18G>.rBmVJIeTNpd0RJWaRGuJ{display:flex;margin-left:calc(var(--spacing-base)/2);fill:var(--jp-gray-20)}.jVq5444f1Xh6nNkz0Qe_{margin-top:calc(var(--spacing-base)*4)}.amF9cOnMiv2nHbkMXQiQ{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.FodE_7RbLD8zeBSd6eVR{display:flex;flex-wrap:wrap;margin-left:auto}.FodE_7RbLD8zeBSd6eVR>:first-child{margin-right:calc(var(--spacing-base)*3)}.twyPhW_K164HITnDrwEg{padding:calc(var(--spacing-base)*2);width:250px}.tbcd9xc_TjcFdokOt3F_{font-size:18px}@media(max-width:599px){.pnoqLV3l30xuvj2hLlJc{width:90%}.FodE_7RbLD8zeBSd6eVR{margin-top:calc(var(--spacing-base)*3)}.FodE_7RbLD8zeBSd6eVR>:first-child{margin-bottom:var(--spacing-base);margin-right:0}}.bZ4b33s2MdcOjaDKBbeV{--spacing-base:8px;--wp-admin-border-width-focus:1.5px;align-items:center;display:flex;white-space:nowrap}.UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-gray-50);border-radius:50%;flex-shrink:0;height:.666em;width:.666em}.QuS0vdcr87FsiBvSSrvA{font-weight:600;line-height:1.666;margin-left:calc(var(--spacing-base)/2)}.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ a,.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ span{color:var(--jp-green-50)}.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-green-50)}.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y a,.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y span{color:var(--jp-gray-50)}.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-gray-50)}.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww a,.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww span{color:var(--jp-red-50)}.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-red-50)}.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 a,.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 span{color:var(--jp-yellow-30)}.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-yellow-30)}.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a a,.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a span{color:var(--jp-blue-40)}.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-blue-40)}.IunwKwdvL271DxBIniPb[type=checkbox]{display:none}.svA9WxEcOByd5S2fZonA{border:2px solid var(--jp-black);border-radius:100px;box-sizing:border-box;cursor:pointer;display:inline-block;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:48px}.svA9WxEcOByd5S2fZonA:after{background:var(--jp-black);border-radius:50%;content:"";display:block;height:16px;left:0;position:relative;transition:all .2s ease;width:16px}.IunwKwdvL271DxBIniPb:checked+.svA9WxEcOByd5S2fZonA:after{left:22px}.IunwKwdvL271DxBIniPb:checked:disabled+.svA9WxEcOByd5S2fZonA{background-color:var(--jp-black);border-color:var(--jp-black)}.IunwKwdvL271DxBIniPb:checked:disabled+.svA9WxEcOByd5S2fZonA:after{background-color:var(--jp-white)}.IunwKwdvL271DxBIniPb:checked:not(:disabled)+.svA9WxEcOByd5S2fZonA{background-color:var(--jp-green);border-color:var(--jp-green)}.IunwKwdvL271DxBIniPb:checked:not(:disabled)+.svA9WxEcOByd5S2fZonA:after{background-color:var(--jp-white)}.IunwKwdvL271DxBIniPb:disabled+span.svA9WxEcOByd5S2fZonA{cursor:default;opacity:.25}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n+.svA9WxEcOByd5S2fZonA{border-radius:8px;height:16px;width:24px}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n+.svA9WxEcOByd5S2fZonA:after{height:12px;width:12px}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n:checked+.svA9WxEcOByd5S2fZonA:after{left:8px}.Clxt94RgGnDrhORZZyPr,.K2OG1vK5PSOYDWKtqKKG{margin-bottom:calc(var(--spacing-base)*7);margin-top:calc(var(--spacing-base)*7)}.msOlyh2T7D6uhbM6AROg{align-items:center;background:none;border:2px solid var(--jp-green-40);border-radius:var(--jp-border-radius);color:var(--jp-gray-80);display:flex;gap:calc(var(--spacing-base)*3);justify-content:space-between;padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);position:relative;text-align:left;width:100%}.msOlyh2T7D6uhbM6AROg a,.msOlyh2T7D6uhbM6AROg button{all:unset;color:var(--jp-gray-80);cursor:pointer}.msOlyh2T7D6uhbM6AROg a:after,.msOlyh2T7D6uhbM6AROg button:after{content:"";height:100%;left:0;position:absolute;top:0;width:100%}.msOlyh2T7D6uhbM6AROg:focus-within{border-color:var(--jp-black)}.msOlyh2T7D6uhbM6AROg:focus-within .cPN7USVqSBpxUswfDtUZ,.msOlyh2T7D6uhbM6AROg:hover .cPN7USVqSBpxUswfDtUZ{transform:translateX(calc(var(--spacing-base)*2))}.msOlyh2T7D6uhbM6AROg:focus-within .EmnJAyEzzn1QpA8HtypY,.msOlyh2T7D6uhbM6AROg:hover .EmnJAyEzzn1QpA8HtypY{text-decoration:underline;text-decoration-thickness:2px}.EmnJAyEzzn1QpA8HtypY,.msOlyh2T7D6uhbM6AROg .EmnJAyEzzn1QpA8HtypY{font-weight:700}.cPN7USVqSBpxUswfDtUZ{fill:var(--jp-green-40);pointer-events:none;transition:transform .1s ease-out}.vV7YZikAz0oHYsuvtxMq{display:inline;margin:0 0 0 calc(var(--spacing-base)/3);vertical-align:middle}.vV7YZikAz0oHYsuvtxMq svg{position:relative;z-index:10}.T1YaMupeZmBIpXZHY9EZ{display:inline}.rigH8UdiDrmmSLQMUurD{background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-border-radius);color:var(--jp-black);display:block;font-size:var(--font-body);letter-spacing:-.02em;line-height:1.5;padding:var(--spacing-base) calc(var(--spacing-base)*1.5);transition:box-shadow .1s ease-out;width:100%}.rigH8UdiDrmmSLQMUurD::placeholder{color:var(--jp-gray-20)}.rigH8UdiDrmmSLQMUurD:focus{box-shadow:0 0 0 2px var(--jp-green-5)}.rigH8UdiDrmmSLQMUurD:focus,.rigH8UdiDrmmSLQMUurD:hover:not(:disabled){border:1px solid var(--jp-green)}.rigH8UdiDrmmSLQMUurD:disabled{background-color:var(--jp-gray-0);color:var(--jp-gray-30)}.V8FDM08CpcwQs4UwN2nI{color:var(--jp-black);display:block;font-size:var(--font-title-small);font-weight:600;margin-bottom:var(--spacing-base)}.L1LjeCYPldBcTLILS13l{max-width:calc(744px + var(--spacing-base)*6);width:100%}.JWWznnb8sAKHIOhE59_z{display:flex}.JWWznnb8sAKHIOhE59_z:not(:first-child){margin-top:calc(var(--spacing-base)*7)}.kV5wl2UResIqqBdSTuQr{margin-right:calc(var(--spacing-base)*2);padding-top:calc(var(--spacing-base)/2)}@media(min-width:600px){.kV5wl2UResIqqBdSTuQr{margin-right:calc(var(--spacing-base)*5)}}.oePuSIKcH_JzEhDJcHh8{width:100%}.mxYw7vghJF8H8C0FjvPz{align-items:center;display:flex}.lyiOCAyjT_eQyDg8Ier_ .oePuSIKcH_JzEhDJcHh8{opacity:.5}.IclfL4iNXTZfBAbHZdog>:last-child{margin-top:calc(var(--spacing-base)*2)}@media(min-width:600px){.IclfL4iNXTZfBAbHZdog{display:flex;justify-content:space-between}}.bOadM4auwszaOl0el95T{display:flex;flex-wrap:wrap;margin-top:calc(var(--spacing-base)*2)}.G7vkgqk8AEd6pRbNUyE4{color:var(--jp-green-50);margin-right:calc(var(--spacing-base)/2)}.qnlbRElIsj4nB45F5s3a{color:var(--jp-gray-50)}.TvvdPGzRa_ubn3BnQOnQ{color:var(--jp-red-50)}.ciEDIqQimh9OqgCN4t3c{display:flex;flex-wrap:wrap}.qQ3tqN6Pi9DJ2xYLvfvA{color:var(--jp-gray-50)}.xmutRBXpbSs8i1QMo5FT{margin-right:calc(var(--spacing-base)/2)}.kQ5SrYe6QmF63mEYQ26R,.xmutRBXpbSs8i1QMo5FT{color:var(--jp-green-50)}.yAFMUkq1ot9DZF05RUwG{margin-top:calc(var(--spacing-base)*3)}@media(min-width:600px){.yAFMUkq1ot9DZF05RUwG{padding-left:calc(var(--spacing-base)*11)}}.EbfrbByI7NQ2_MD_gDXp{align-items:center;border:1px solid var(--jp-gray-30);border-radius:4px;color:var(--jp-gray-30);display:flex;font-size:12px;height:21px;margin-bottom:calc(var(--spacing-base)*2);margin-left:var(--spacing-base);padding:calc(var(--spacing-base)/2)}.hCwaBLH_6dELyWWwB8S1{padding:calc(var(--spacing-base)*3);width:304px}.V3U9oKSdRmKjOQ523C86{display:flex;justify-content:space-between}.OSrT4pA4vIGzg9EE6rcv{margin:calc(var(--spacing-base)*-1) calc(var(--spacing-base)*-3)}.OSrT4pA4vIGzg9EE6rcv:focus,.OSrT4pA4vIGzg9EE6rcv:focus:not(:disabled){box-shadow:none}.rbL50q3wwzE6X7VBHcmW{display:flex;justify-content:flex-end}.gF7LiE_q_elhMrhdypAl{color:var(--jp-gray-50)}.gF7LiE_q_elhMrhdypAl:before{background:var(--jp-gray-50);border-radius:50%;content:"";display:inline-block;height:8px;margin-right:var(--spacing-base);width:8px}.gF7LiE_q_elhMrhdypAl.fbJbqf_YrPpMG4JKF79U{color:var(--jp-green-40)}.gF7LiE_q_elhMrhdypAl.fbJbqf_YrPpMG4JKF79U:before{background:var(--jp-green-40)}.g593fzjQCE_4rNiiwLdg{line-height:1;margin-bottom:calc(var(--spacing-base)*1.5)}.CIp_BwDbLdjYPSVrreqg{align-items:flex-start;justify-content:space-between}.CIp_BwDbLdjYPSVrreqg,.m2epTt5F7wBQNcMdguwQ{display:flex;margin-top:calc(var(--spacing-base)*2)}.m2epTt5F7wBQNcMdguwQ{justify-content:right}.HrEvG7sxsWbTLD0sk477{border-bottom:2px solid var(--jp-gray-5);margin-top:calc(var(--spacing-base)*7)}.VHYulMcpzbr10HWR0iSE{align-items:flex-start;border:1px solid var(--jp-black);border-color:var(--jp-gray-5);border-left-width:6px;border-radius:4px;display:flex;font-size:var(--font-body);padding:24px 31px 27px 18px}.FGpSkMCiIHQjszcV0dbn{margin-right:20px}.FGpSkMCiIHQjszcV0dbn,.KoWZcCwhW13xvkEb0QON{height:calc(var(--spacing-base)*3);width:calc(var(--spacing-base)*3)}.KoWZcCwhW13xvkEb0QON{background-color:#0000;border:none;cursor:pointer;outline:none}@media screen and (max-width:600px){.VHYulMcpzbr10HWR0iSE{box-shadow:0 4px 8px #00000008,0 1px 2px #0000000f;padding-top:68px;position:relative}.FGpSkMCiIHQjszcV0dbn{left:24px;position:absolute;top:24px}.KoWZcCwhW13xvkEb0QON{position:absolute;right:24px;top:24px}}.smrfczkC53EaFM8OJUXs{flex-grow:1}.IKYRWoPwt9xOVEx1wzNS{font-weight:600;margin-bottom:8px}.qM0qY6mPYp1MPN54A3Kg{align-items:center;display:flex;margin-top:20px}.qM0qY6mPYp1MPN54A3Kg a,.qM0qY6mPYp1MPN54A3Kg a:active,.qM0qY6mPYp1MPN54A3Kg a:focus,.qM0qY6mPYp1MPN54A3Kg a:hover{color:var(--jp-black)}.qM0qY6mPYp1MPN54A3Kg>*{margin-right:24px}.A5YkDkkXuiYgavrY6Nux{border-left-color:var(--jp-red)}.A5YkDkkXuiYgavrY6Nux .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-red)}.cT5rwuPMZzWvi5o6shMl{border-left-color:var(--jp-yellow-20)}.cT5rwuPMZzWvi5o6shMl .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-yellow-20)}.yo0O3uvNomPsYUXFCpAS{border-left-color:var(--black)}.yo0O3uvNomPsYUXFCpAS .y_IPyP1wIAOhyNaqvXJq{fill:var(--black)}.oZdDFf1jBLkzn5ICCC6x{border-left-color:var(--jp-green)}.oZdDFf1jBLkzn5ICCC6x .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-green)}.EU0Rvu4PDqVtnCAmbgHg{height:56px;margin-bottom:calc(var(--spacing-base)*8);width:48px}.EU0Rvu4PDqVtnCAmbgHg>svg{left:-40px;position:relative;top:-36px}.MeZ8EJKfFWG5h1abL4gD{padding:calc(var(--spacing-base)*7) 0}.vzMlFr1AXWqefpRrb976{align-items:center;display:flex;justify-content:space-between;margin-bottom:calc(var(--spacing-base)*3)}.gYSOMa4xxLXmsNzvFPkW{background-color:var(--jp-gray-5);border-radius:calc(var(--spacing-base)*3);width:100%}.hNJWdt5qmZkWYAH_vjIp{background-color:var(--jp-green-40);border-radius:calc(var(--spacing-base)*3);height:9px;transition:width .2s}.DHMUfGyHbl5BgD5vjxVz{color:var(--jp-gray-90);font-weight:600;line-height:24px;margin-left:auto;padding-left:var(--spacing-base)}.XqQBRzrxyMhhZvPXIHgk .components-button{box-shadow:inset 0 0 0 1.5px var(--jp-gray);position:relative}.XqQBRzrxyMhhZvPXIHgk .components-button:first-child{border-radius:var(--jp-border-radius) 0 0 var(--jp-border-radius)}.XqQBRzrxyMhhZvPXIHgk .components-button:last-child{border-radius:0 var(--jp-border-radius) var(--jp-border-radius) 0}.XqQBRzrxyMhhZvPXIHgk .components-button:hover{z-index:1}.XqQBRzrxyMhhZvPXIHgk .components-button+.components-button{margin-left:-1.5px}.ttGgvvtxu52J_2mCCopL{padding:calc(var(--spacing-base)*7) 0}.HKtrpPFSTSG9Xek34vBa,.UZsYf4noF2SMuyOqGWPA{align-items:center;display:flex}.HKtrpPFSTSG9Xek34vBa{height:100%}.HKtrpPFSTSG9Xek34vBa img{object-fit:cover;width:100%}.dgFk23NY71PPMar8DEME,.t_Av4raklvnsBRBA4hms{margin-top:calc(var(--spacing-base)*3 + 1px)}.t_Av4raklvnsBRBA4hms{display:flex;justify-content:flex-end}.B5k6PdQs1UVDzb2J98wR>:first-child{flex:1}@media(min-width:960px){.B5k6PdQs1UVDzb2J98wR{align-items:flex-start;display:flex}}._h9h7RagEFrCDu7S2Vfi{display:flex;flex-direction:column;gap:var(--spacing-base)}._h9h7RagEFrCDu7S2Vfi>:last-child{margin-top:calc(var(--spacing-base)*2)}.sSzimfzP9ZeilBh2H0Um{align-items:center;color:var(--jp-black);display:flex;margin-bottom:0}.X7CVf27QOnW2yuV332eo{margin-left:-4px;margin-right:var(--spacing-base)}.SaA9v6DNQOHPx1EK90y9{align-items:flex-end;flex-direction:column}.SaA9v6DNQOHPx1EK90y9,.kadiUBzNiR_qFA1y7Eig{display:flex;gap:calc(var(--spacing-base)*2)}.cuoSlhSNrqf1dozY22Xb{fill:#000}.JLquNpQVlysAamuh5lJO,.lAIiifeLMmZAPlQ9n9ZR{fill:var(--jp-green-primary)}.cbOwD8Y4tFjwimmtchQI{fill:#757575}.cbOwD8Y4tFjwimmtchQI.aLWBKY0yRghEk7tNCgK3{fill:var(--color-bluesky)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw{fill:var(--color-facebook)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.af4Y_zItXvLAOEoSDPSv{fill:var(--color-twitter)}.cbOwD8Y4tFjwimmtchQI.f68aqF3XSD1OBvXR1get{fill:var(--color-linkedin)}.cbOwD8Y4tFjwimmtchQI.xFI0dt3UiXRlRQdqPWkx{fill:var(--color-tumblr)}.cbOwD8Y4tFjwimmtchQI.q7JEoyymveP6kF747M43{fill:var(--color-gplus)}.cbOwD8Y4tFjwimmtchQI.DKOBOTVmTLbh26gUH_73{fill:var(--color-mastodon)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw{fill:var(--color-nextdoor)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.cL3m0xBYTYhIKI7lCqDB{fill:var(--color-instagram)}.cbOwD8Y4tFjwimmtchQI.fftumuc_lJ6v0tq4UMVR{fill:var(--color-whatsapp)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI{fill:var(--color-threads)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI.social-logo{border-radius:40%}._fUXxnSp5pagKBp9gSN7 *{box-sizing:border-box}.GqFcAwJvIrg1v7f6QUfw{display:flex;flex-direction:column;min-height:230px;padding:calc(var(--spacing-base)*3);width:304px}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S{display:flex;justify-content:space-between;margin-bottom:calc(var(--spacing-base)*2)}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .KnqJLKwSceJTwFJrPGHq{max-width:226px}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .PJU0_yA9jNf7ao0jhHut{background-color:var(--jp-white);color:var(--jp-gray-90);flex-shrink:0;height:calc(var(--spacing-base)*3);min-width:unset;width:calc(var(--spacing-base)*3)}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .PJU0_yA9jNf7ao0jhHut:hover:not(:focus){box-shadow:none}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY{align-items:flex-end;display:flex;flex-grow:1;height:calc(var(--spacing-base)*6);justify-content:flex-end;margin-top:calc(var(--spacing-base)*2)}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY .Q7fUcDUGhteXEr18rZPC{color:var(--jp-gray-60);flex-grow:1;margin-bottom:var(--spacing-base)}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY .S5LAeskUiEQ0JlPhr0Ze{flex-shrink:0}.OtDl6kocO_m2s9sRHaqX{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;max-height:600px;width:100%}.BjwJh1S1YVPI7AjmTx6a+.BjwJh1S1YVPI7AjmTx6a{margin-top:calc(var(--spacing-base)*5)}.YWfK8VTp2wnByBauYPKg{background-color:var(--jp-gray-0);overflow-x:scroll;padding:calc(var(--spacing-base)*3)}.pkw2LnOTd8VvQ3oT8sXQ{justify-content:flex-end;margin-top:calc(var(--spacing-base)*3);padding-top:calc(var(--spacing-base)*3)}.ap6lG79CncSqdigJS_WA{margin-top:calc(var(--spacing-base)*4)}.uym7dGHhp6ifjF57yOAO{align-items:flex-end;display:flex;margin-bottom:calc(var(--spacing-base)*2.25)}.e_2eFTR8RyHwmfeqJL4F{flex:1;margin-bottom:0}.IKQVU01PrDMMV5UFLOKv{display:flex;gap:calc(var(--spacing-base)*2)}.pkw2LnOTd8VvQ3oT8sXQ{border-top:1px solid var(--jp-gray);display:flex;justify-content:right;padding-top:calc(var(--spacing-base)*4);width:100%}.pkw2LnOTd8VvQ3oT8sXQ>:last-child{margin-left:calc(var(--spacing-base)*2)}.qazuloIt0teplSEwxRN0{background-color:#fff;border:1px solid var(--jp-gray);border-bottom:none;color:var(--jp-gray-50);display:grid;grid-template-columns:repeat(9,1fr);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);width:100%}.qazuloIt0teplSEwxRN0>span:first-child{grid-column:1/7}.qazuloIt0teplSEwxRN0>span:not(:first-child){text-align:center}.iJ_biSBRDribuNKX0Zuw{margin:calc(var(--spacing-base)*4) calc(var(--spacing-base)*8);text-align:center}@media(max-width:599px){.uym7dGHhp6ifjF57yOAO{margin-bottom:calc(var(--spacing-base)*3)}.e_2eFTR8RyHwmfeqJL4F{display:none}.pkw2LnOTd8VvQ3oT8sXQ{justify-content:center}.pkw2LnOTd8VvQ3oT8sXQ>*{width:50%}}.v640YfEL85A9rCvyHSzW{align-items:center;display:flex;gap:4px;justify-content:center;margin-bottom:calc(var(--spacing-base)*2);margin-top:calc(var(--spacing-base)*4)}.v640YfEL85A9rCvyHSzW button{font-size:var(--font-body);height:auto;line-height:32px;min-width:32px;padding:0 var(--spacing-base);width:auto}.v640YfEL85A9rCvyHSzW button.gfxpe4zp6ShFsIsce8Ii,.v640YfEL85A9rCvyHSzW button.gfxpe4zp6ShFsIsce8Ii:hover:not(:disabled){background:none;color:var(--jp-black)}.x8UuVEhWucPfdq0hEJg6{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius)}.x8UuVEhWucPfdq0hEJg6>:not(:last-child){border-bottom:1px solid var(--jp-gray)}.eb6Ovfvm1yONz4mdOwbH{background-color:var(--jp-white)}.jF9LXpXR3TxZVDw7TVXT{align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:repeat(9,1fr);margin:0;outline-color:var(--jp-black);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);text-align:start;width:100%}.jF9LXpXR3TxZVDw7TVXT>:first-of-type{grid-column:1/8}.jF9LXpXR3TxZVDw7TVXT>:last-of-type{grid-column:9}.jF9LXpXR3TxZVDw7TVXT:hover{background:var(--jp-gray-0)}.lNQgAfpwdAUSOLZd8dlD{align-items:center;display:flex;font-size:var(--font-body-small);font-weight:400}.WRQwDYPdffWznX158azR{margin-right:var(--spacing-base)}.dJx9pvlYjDnKn11n5wo8{font-weight:600;margin-bottom:var(--spacing-base);margin-left:calc(var(--spacing-base)*4)}.EKcbLuSblRc7UpzgsFXw{align-items:center}.ILMBWlMLcXc0n97IisrG{overflow:hidden;transform-origin:top center}.T8XIzCNJBQy1UETN5gjU{max-height:0;padding:0;transform:scaleY(0);transition:all .1s}.kWoHGiaZSbq9XJVyUOMC{max-height:1000px;padding:calc(var(--spacing-base)*4) calc(var(--spacing-base)*7);transform:scaleY(1);transition:max-height .3s,transform .2s}.HQgjxePFDRJHamBAGcVU{background-color:var(--jp-white);border-radius:var(--jp-border-radius);box-shadow:0 0 40px #00000014;margin:0;padding:var(--spacing-base) 0}.KtdsNIMumOoHNWMLmuAJ{align-items:center;display:flex;justify-content:space-between;margin:0;padding:calc(var(--spacing-base)*2);text-align:left}.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2{cursor:pointer;outline-color:var(--jp-black)}.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2:focus:not(.owofT85W_XvVdb5vr1GN),.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2:hover:not(.owofT85W_XvVdb5vr1GN){background-color:var(--jp-gray-0)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN{background-color:var(--jp-black)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .NESnw2xCLrBpP6WlYZL4{color:var(--jp-white)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .aohnd_y_1lrMuww8NH63{fill:var(--jp-white)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .Rnas_2_2_eLZSYfZ347E{background-color:var(--jp-red);border:1px solid var(--jp-red);color:var(--jp-white)}.NESnw2xCLrBpP6WlYZL4{align-items:center;display:flex;overflow-x:hidden;padding-right:var(--spacing-base)}.m4_14yNRByDyO9yf9pGg{display:block;overflow-x:hidden;text-overflow:ellipsis}.aohnd_y_1lrMuww8NH63{margin-right:calc(var(--spacing-base)*2)}.Rnas_2_2_eLZSYfZ347E{align-items:center;border:1px solid var(--jp-red-60);border-radius:50%;box-sizing:border-box;color:var(--jp-red-60);display:flex;justify-content:center;min-width:30px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.X8NRHUTBa_4wDvoHN9TT{fill:var(--jp-green-50)}.CsuOteurQlJm4IjXqyZ0{fill:var(--jp-gray-20)}.fvbewglUxEvV1o04yzzp{--icon-size:28px;--item-spacing:calc(var( --spacing-base )*2);--left-spacing:calc(var( --icon-size ) + var( --item-spacing ));list-style:none}.DINy59MKjwiQanaoDTiV{padding:calc(var(--spacing-base)*2)}.XoacHJljw8zRW_fkBSyg{padding:0}.mXM4WZRePVTa07dhQ6MD{margin-left:var(--left-spacing)}.sI3V8khLdCqxkhJQ_XnI{display:flex;justify-content:flex-start;padding:calc(var(--spacing-base)*2)}.hgdxMuIvZwTZ0sfXaols{padding:calc(var(--spacing-base)*2);width:250px}.UErHS2HAh1gszGfYuVIf{align-items:center;background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-border-radius);display:flex;justify-content:space-between;padding:calc(var(--spacing-base)*2);width:100%}.lEhH1hvCcxLVFMHI8Gwv{display:flex;justify-content:flex-start}.c57Vj4QhAHwcK_HZMxtN{margin-right:var(--spacing-base)}.LumryWNddoF092fZgN2O{font-size:var(--font-body);line-height:1.5}.NFMwU3H5k2qArZe2TTp9{background-color:var(--jp-gray-10);font-weight:600;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.G5W9M8qfo3sGl2OIbwg9{background-color:var(--jp-gray-0);display:flex;flex-direction:row;font-family:Courier\ 10 Pitch,Courier,monospace;overflow-x:scroll;white-space:pre}.Bx4RDCUR316fm_jgGS8N{background-color:var(--jp-gray-10);color:var(--jp-gray-50);display:flex;flex-direction:column;padding:0 var(--spacing-base);text-align:right}.GhN0JvAyRQI3SnVWp2Ot{display:flex;flex-direction:column;flex-grow:1;overflow-x:visible}.GhN0JvAyRQI3SnVWp2Ot del,.GhN0JvAyRQI3SnVWp2Ot div,.GhN0JvAyRQI3SnVWp2Ot ins{padding:0 var(--spacing-base);text-decoration:none}.GhN0JvAyRQI3SnVWp2Ot del{background-color:var(--jp-red-0);color:var(--jp-red-60)}.GhN0JvAyRQI3SnVWp2Ot ins{background-color:var(--jp-green-5);color:var(--jp-green-60)}.xpPHTch5ul0xuZaUoTNa{background-color:var(--jp-gray-0);display:flex;flex-direction:row;font-family:monospace;overflow-x:scroll;padding:0}.AMOpkL9LURkyTK8316cw{background-color:var(--jp-red-0)}.i0_0xMrNWoak1brIaDQq{display:flex;flex-direction:column;text-align:right}.C9fLawPLkMNSZthfwxj6{background-color:var(--jp-gray-10);color:var(--font-body);padding:0 calc(var(--spacing-base)/2)}.C9fLawPLkMNSZthfwxj6.AMOpkL9LURkyTK8316cw{background-color:var(--jp-red-50);color:var(--jp-white)}.ogixgg8fRGekmYGtevh1{display:flex;flex:1;flex-direction:column;overflow-x:visible;white-space:pre}.jYPCgKMDRKfT3vnx0mdG{padding-left:var(--spacing-base)}.UEQ1NqkrwNmaQR7qdEK3{background-color:var(--jp-red);border-radius:calc(var(--jp-border-radius)/2);color:var(--jp-white);padding:calc(var(--spacing-base)/4) calc(var(--spacing-base)/2)}.sfXsfklfkeSRtE9ivQwF{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:inline-block;width:100%}.sfXsfklfkeSRtE9ivQwF>:not(:last-child){border-bottom:1px solid var(--jp-gray)}.ozRrKPlj1QFGUyd3oVke{background-color:var(--jp-white)}.PyvnSHQuuUkZvVsArigy{align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:repeat(9,1fr);margin:0;outline-color:var(--jp-black);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);text-align:start;width:100%}.PyvnSHQuuUkZvVsArigy>:first-of-type{grid-column:1/7}.PyvnSHQuuUkZvVsArigy>:last-of-type{grid-column:9}.PyvnSHQuuUkZvVsArigy>:not(:first-child){margin:auto}.PyvnSHQuuUkZvVsArigy:hover{background:var(--jp-gray-0)}.u9Xod5s8bCRNj9MR1Drl{align-items:center;display:flex;font-size:var(--font-body-small);font-weight:400}.IbeyulkpO9kjYJ4OkYUD{margin-right:var(--spacing-base)}.KiCgmjHm2f0JDU3cMsgf{font-weight:600}.KiCgmjHm2f0JDU3cMsgf,.kh5zuLR1zNf7KCsxhAZ5{margin-bottom:var(--spacing-base);margin-left:calc(var(--spacing-base)*4)}.kh5zuLR1zNf7KCsxhAZ5{font-size:var(--font-body-small);font-weight:400}.z1z63g62c73XbcPk9DWc{background-color:var(--jp-gray-50);display:inline-block;height:4px;margin:2px 12px;width:4px}.kJ8t3FAtd5VAYjk31SfA{align-items:center}.JP0IJZcYRohfgntEozjm{overflow:hidden;transform-origin:top center}.y7c6zi2wjEnbW3F29fmP{max-height:0;padding:0;transform:scaleY(0);transition:all .1s}.wQWiN_J0SqgduvadyGnm{max-height:1000px;padding:calc(var(--spacing-base)*4) calc(var(--spacing-base)*7);transform:scaleY(1);transition:max-height .3s,transform .2s}.v1fUFCBPmd6miSCf_ehK{fill:var(--jp-green-40)}.oR9QG6gRLvyzqiuIarmu{border-radius:32px;flex-shrink:0;font-size:12px;font-style:normal;font-weight:600;line-height:16px;margin-left:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);position:relative;text-align:center;width:60px}.oR9QG6gRLvyzqiuIarmu.bZ8KDXMWoim85Zv31E7E{background-color:#008a20;color:var(--jp-white)}.oR9QG6gRLvyzqiuIarmu.uYEkrN4rh8n5cs3aPrYC{background-color:var(--jp-gray-50);color:var(--jp-white)}.WOX88CWB12lzxcMcl_ns{color:#008a20}@media(max-width:599px){.PyvnSHQuuUkZvVsArigy{display:grid;grid-auto-rows:minmax(auto,auto)}.PyvnSHQuuUkZvVsArigy>:first-child{grid-column:1/8;grid-row:1}.PyvnSHQuuUkZvVsArigy>:nth-child(2){grid-row:2;padding-left:calc(var(--spacing-base)*4)}.PyvnSHQuuUkZvVsArigy>:nth-child(3){grid-row:2}.PyvnSHQuuUkZvVsArigy>:nth-child(3) span{margin-top:var(--spacing-base);position:absolute}.PyvnSHQuuUkZvVsArigy>:last-child{grid-column:10;grid-row:1/3}.oR9QG6gRLvyzqiuIarmu{display:none}}@media(max-width:1200px){.kh5zuLR1zNf7KCsxhAZ5{display:grid}.z1z63g62c73XbcPk9DWc{display:none}}.aEAAkNfx0ERh4LEvCBVw>:first-child{flex:1}@media(min-width:960px){.aEAAkNfx0ERh4LEvCBVw{align-items:flex-start;display:flex}}.f3l2VSMBpGpf6Ta1jP5f{align-items:center;color:var(--jp-black);display:flex}.v4n86Hu06mIkxqFkfYY2{margin-left:-4px;margin-right:var(--spacing-base)}.fTSgXuIQCZFFBxzFCE0q{align-items:flex-end;display:flex;flex-direction:column;gap:calc(var(--spacing-base)*2)}.KmIjHqrMs3duMPaUf50k{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;max-height:600px;width:100%}.DJS67UCXVaM7nIMJePYQ{align-items:flex-end;display:flex;justify-content:flex-end;margin-bottom:calc(var(--spacing-base)*2.25)}.s4378tf2MiM0bMIxQZkI{flex:1;margin-bottom:0}.jifq7nsF5kZYrcpGQ35V{display:flex;gap:calc(var(--spacing-base)*2)}@media(max-width:599px){.DJS67UCXVaM7nIMJePYQ{margin-bottom:calc(var(--spacing-base)*3)}.s4378tf2MiM0bMIxQZkI{display:none}}*{box-sizing:border-box}#jetpack-protect-root{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;--actions-size:28px}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js
new file mode 100644
index 00000000..1fc941e9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js
@@ -0,0 +1,69 @@
+/*! For license information please see index.js.LICENSE.txt */
+(()=>{var e={9826:(e,t,a)=>{"use strict";a.d(t,{i:()=>n});const c={AED:{symbol:"د.إ.",grouping:",",decimal:".",precision:2},AFN:{symbol:"؋",grouping:",",decimal:".",precision:2},ALL:{symbol:"Lek",grouping:".",decimal:",",precision:2},AMD:{symbol:"֏",grouping:",",decimal:".",precision:2},ANG:{symbol:"ƒ",grouping:",",decimal:".",precision:2},AOA:{symbol:"Kz",grouping:",",decimal:".",precision:2},ARS:{symbol:"$",grouping:".",decimal:",",precision:2},AUD:{symbol:"A$",grouping:",",decimal:".",precision:2},AWG:{symbol:"ƒ",grouping:",",decimal:".",precision:2},AZN:{symbol:"₼",grouping:" ",decimal:",",precision:2},BAM:{symbol:"КМ",grouping:".",decimal:",",precision:2},BBD:{symbol:"Bds$",grouping:",",decimal:".",precision:2},BDT:{symbol:"৳",grouping:",",decimal:".",precision:0},BGN:{symbol:"лв.",grouping:" ",decimal:",",precision:2},BHD:{symbol:"د.ب.",grouping:",",decimal:".",precision:3},BIF:{symbol:"FBu",grouping:",",decimal:".",precision:0},BMD:{symbol:"$",grouping:",",decimal:".",precision:2},BND:{symbol:"$",grouping:".",decimal:",",precision:0},BOB:{symbol:"Bs",grouping:".",decimal:",",precision:2},BRL:{symbol:"R$",grouping:".",decimal:",",precision:2},BSD:{symbol:"$",grouping:",",decimal:".",precision:2},BTC:{symbol:"Ƀ",grouping:",",decimal:".",precision:2},BTN:{symbol:"Nu.",grouping:",",decimal:".",precision:1},BWP:{symbol:"P",grouping:",",decimal:".",precision:2},BYR:{symbol:"р.",grouping:" ",decimal:",",precision:2},BZD:{symbol:"BZ$",grouping:",",decimal:".",precision:2},CAD:{symbol:"C$",grouping:",",decimal:".",precision:2},CDF:{symbol:"FC",grouping:",",decimal:".",precision:2},CHF:{symbol:"CHF",grouping:"'",decimal:".",precision:2},CLP:{symbol:"$",grouping:".",decimal:",",precision:2},CNY:{symbol:"¥",grouping:",",decimal:".",precision:2},COP:{symbol:"$",grouping:".",decimal:",",precision:2},CRC:{symbol:"₡",grouping:".",decimal:",",precision:2},CUC:{symbol:"CUC",grouping:",",decimal:".",precision:2},CUP:{symbol:"$MN",grouping:",",decimal:".",precision:2},CVE:{symbol:"$",grouping:",",decimal:".",precision:2},CZK:{symbol:"Kč",grouping:" ",decimal:",",precision:2},DJF:{symbol:"Fdj",grouping:",",decimal:".",precision:0},DKK:{symbol:"kr.",grouping:"",decimal:",",precision:2},DOP:{symbol:"RD$",grouping:",",decimal:".",precision:2},DZD:{symbol:"د.ج.",grouping:",",decimal:".",precision:2},EGP:{symbol:"ج.م.",grouping:",",decimal:".",precision:2},ERN:{symbol:"Nfk",grouping:",",decimal:".",precision:2},ETB:{symbol:"ETB",grouping:",",decimal:".",precision:2},EUR:{symbol:"€",grouping:".",decimal:",",precision:2},FJD:{symbol:"FJ$",grouping:",",decimal:".",precision:2},FKP:{symbol:"£",grouping:",",decimal:".",precision:2},GBP:{symbol:"£",grouping:",",decimal:".",precision:2},GEL:{symbol:"Lari",grouping:" ",decimal:",",precision:2},GHS:{symbol:"₵",grouping:",",decimal:".",precision:2},GIP:{symbol:"£",grouping:",",decimal:".",precision:2},GMD:{symbol:"D",grouping:",",decimal:".",precision:2},GNF:{symbol:"FG",grouping:",",decimal:".",precision:0},GTQ:{symbol:"Q",grouping:",",decimal:".",precision:2},GYD:{symbol:"G$",grouping:",",decimal:".",precision:2},HKD:{symbol:"HK$",grouping:",",decimal:".",precision:2},HNL:{symbol:"L.",grouping:",",decimal:".",precision:2},HRK:{symbol:"kn",grouping:".",decimal:",",precision:2},HTG:{symbol:"G",grouping:",",decimal:".",precision:2},HUF:{symbol:"Ft",grouping:".",decimal:",",precision:0},IDR:{symbol:"Rp",grouping:".",decimal:",",precision:0},ILS:{symbol:"₪",grouping:",",decimal:".",precision:2},INR:{symbol:"₹",grouping:",",decimal:".",precision:2},IQD:{symbol:"د.ع.",grouping:",",decimal:".",precision:2},IRR:{symbol:"﷼",grouping:",",decimal:"/",precision:2},ISK:{symbol:"kr.",grouping:".",decimal:",",precision:0},JMD:{symbol:"J$",grouping:",",decimal:".",precision:2},JOD:{symbol:"د.ا.",grouping:",",decimal:".",precision:3},JPY:{symbol:"¥",grouping:",",decimal:".",precision:0},KES:{symbol:"S",grouping:",",decimal:".",precision:2},KGS:{symbol:"сом",grouping:" ",decimal:"-",precision:2},KHR:{symbol:"៛",grouping:",",decimal:".",precision:0},KMF:{symbol:"CF",grouping:",",decimal:".",precision:2},KPW:{symbol:"₩",grouping:",",decimal:".",precision:0},KRW:{symbol:"₩",grouping:",",decimal:".",precision:0},KWD:{symbol:"د.ك.",grouping:",",decimal:".",precision:3},KYD:{symbol:"$",grouping:",",decimal:".",precision:2},KZT:{symbol:"₸",grouping:" ",decimal:"-",precision:2},LAK:{symbol:"₭",grouping:",",decimal:".",precision:0},LBP:{symbol:"ل.ل.",grouping:",",decimal:".",precision:2},LKR:{symbol:"₨",grouping:",",decimal:".",precision:0},LRD:{symbol:"L$",grouping:",",decimal:".",precision:2},LSL:{symbol:"M",grouping:",",decimal:".",precision:2},LYD:{symbol:"د.ل.",grouping:",",decimal:".",precision:3},MAD:{symbol:"د.م.",grouping:",",decimal:".",precision:2},MDL:{symbol:"lei",grouping:",",decimal:".",precision:2},MGA:{symbol:"Ar",grouping:",",decimal:".",precision:0},MKD:{symbol:"ден.",grouping:".",decimal:",",precision:2},MMK:{symbol:"K",grouping:",",decimal:".",precision:2},MNT:{symbol:"₮",grouping:" ",decimal:",",precision:2},MOP:{symbol:"MOP$",grouping:",",decimal:".",precision:2},MRO:{symbol:"UM",grouping:",",decimal:".",precision:2},MTL:{symbol:"₤",grouping:",",decimal:".",precision:2},MUR:{symbol:"₨",grouping:",",decimal:".",precision:2},MVR:{symbol:"MVR",grouping:",",decimal:".",precision:1},MWK:{symbol:"MK",grouping:",",decimal:".",precision:2},MXN:{symbol:"MX$",grouping:",",decimal:".",precision:2},MYR:{symbol:"RM",grouping:",",decimal:".",precision:2},MZN:{symbol:"MT",grouping:",",decimal:".",precision:0},NAD:{symbol:"N$",grouping:",",decimal:".",precision:2},NGN:{symbol:"₦",grouping:",",decimal:".",precision:2},NIO:{symbol:"C$",grouping:",",decimal:".",precision:2},NOK:{symbol:"kr",grouping:" ",decimal:",",precision:2},NPR:{symbol:"₨",grouping:",",decimal:".",precision:2},NZD:{symbol:"NZ$",grouping:",",decimal:".",precision:2},OMR:{symbol:"﷼",grouping:",",decimal:".",precision:3},PAB:{symbol:"B/.",grouping:",",decimal:".",precision:2},PEN:{symbol:"S/.",grouping:",",decimal:".",precision:2},PGK:{symbol:"K",grouping:",",decimal:".",precision:2},PHP:{symbol:"₱",grouping:",",decimal:".",precision:2},PKR:{symbol:"₨",grouping:",",decimal:".",precision:2},PLN:{symbol:"zł",grouping:" ",decimal:",",precision:2},PYG:{symbol:"₲",grouping:".",decimal:",",precision:2},QAR:{symbol:"﷼",grouping:",",decimal:".",precision:2},RON:{symbol:"lei",grouping:".",decimal:",",precision:2},RSD:{symbol:"Дин.",grouping:".",decimal:",",precision:2},RUB:{symbol:"₽",grouping:" ",decimal:",",precision:2},RWF:{symbol:"RWF",grouping:" ",decimal:",",precision:2},SAR:{symbol:"﷼",grouping:",",decimal:".",precision:2},SBD:{symbol:"S$",grouping:",",decimal:".",precision:2},SCR:{symbol:"₨",grouping:",",decimal:".",precision:2},SDD:{symbol:"LSd",grouping:",",decimal:".",precision:2},SDG:{symbol:"£",grouping:",",decimal:".",precision:2},SEK:{symbol:"kr",grouping:",",decimal:".",precision:2},SGD:{symbol:"S$",grouping:",",decimal:".",precision:2},SHP:{symbol:"£",grouping:",",decimal:".",precision:2},SLL:{symbol:"Le",grouping:",",decimal:".",precision:2},SOS:{symbol:"S",grouping:",",decimal:".",precision:2},SRD:{symbol:"$",grouping:",",decimal:".",precision:2},STD:{symbol:"Db",grouping:",",decimal:".",precision:2},SVC:{symbol:"₡",grouping:",",decimal:".",precision:2},SYP:{symbol:"£",grouping:",",decimal:".",precision:2},SZL:{symbol:"E",grouping:",",decimal:".",precision:2},THB:{symbol:"฿",grouping:",",decimal:".",precision:2},TJS:{symbol:"TJS",grouping:" ",decimal:";",precision:2},TMT:{symbol:"m",grouping:" ",decimal:",",precision:0},TND:{symbol:"د.ت.",grouping:",",decimal:".",precision:3},TOP:{symbol:"T$",grouping:",",decimal:".",precision:2},TRY:{symbol:"TL",grouping:".",decimal:",",precision:2},TTD:{symbol:"TT$",grouping:",",decimal:".",precision:2},TVD:{symbol:"$T",grouping:",",decimal:".",precision:2},TWD:{symbol:"NT$",grouping:",",decimal:".",precision:2},TZS:{symbol:"TSh",grouping:",",decimal:".",precision:2},UAH:{symbol:"₴",grouping:" ",decimal:",",precision:2},UGX:{symbol:"USh",grouping:",",decimal:".",precision:2},USD:{symbol:"$",grouping:",",decimal:".",precision:2},UYU:{symbol:"$U",grouping:".",decimal:",",precision:2},UZS:{symbol:"сўм",grouping:" ",decimal:",",precision:2},VEB:{symbol:"Bs.",grouping:",",decimal:".",precision:2},VEF:{symbol:"Bs. F.",grouping:".",decimal:",",precision:2},VND:{symbol:"₫",grouping:".",decimal:",",precision:1},VUV:{symbol:"VT",grouping:",",decimal:".",precision:0},WST:{symbol:"WS$",grouping:",",decimal:".",precision:2},XAF:{symbol:"F",grouping:",",decimal:".",precision:2},XCD:{symbol:"$",grouping:",",decimal:".",precision:2},XOF:{symbol:"F",grouping:" ",decimal:",",precision:2},XPF:{symbol:"F",grouping:",",decimal:".",precision:2},YER:{symbol:"﷼",grouping:",",decimal:".",precision:2},ZAR:{symbol:"R",grouping:" ",decimal:",",precision:2},ZMW:{symbol:"ZK",grouping:",",decimal:".",precision:2},WON:{symbol:"₩",grouping:",",decimal:".",precision:2}};function n(e){return c[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},7397:(e,t,a)=>{"use strict";a.d(t,{vA:()=>r});var c=a(9826),n=a(8506);function r(e,t,a={}){const r=(0,c.i)(t);if(!r||isNaN(e))return null;const{decimal:l,grouping:s,precision:i,symbol:o}={...r,...a},m=e<0?"-":"",p=Math.abs(e),d=Math.floor(p);return{sign:m,symbol:o,integer:(0,n.A)(p,i,l,s).split(l)[0],fraction:i>0?(0,n.A)(p-d,i,l,s).slice(1):""}}},8506:(e,t,a)=>{"use strict";function c(e,t=0,a=".",c=","){const n=(e+"").replace(/[^0-9+\-Ee.]/g,""),r=isFinite(+n)?+n:0,l=isFinite(+t)?Math.abs(t):0,s=(l?function(e,t){const a=Math.pow(10,t);return""+(Math.round(e*a)/a).toFixed(t)}(r,l):""+Math.round(r)).split(".");return s[0].length>3&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,c)),(s[1]||"").lengthc})},1113:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var c=a(6087);const n=(0,c.forwardRef)((function({icon:e,size:t=24,...a},n){return(0,c.cloneElement)(e,{width:t,height:t,...a,ref:n})}))},1797:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"m14.5 6.5-1 1 3.7 3.7H4v1.6h13.2l-3.7 3.7 1 1 5.6-5.5z"})})},3883:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"})})},7350:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)(c.Path,{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"})})},8888:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"})})},9115:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})})},8248:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)(c.Path,{d:"M6.5 12.4L12 8l5.5 4.4-.9 1.2L12 10l-4.5 3.6-1-1.2z"})})},1249:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"})})},991:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"})})},4314:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)(c.Path,{d:"M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z"})})},2072:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,n.jsx)(c.Path,{d:"M17.2 10.9c-.5-1-1.2-2.1-2.1-3.2-.6-.9-1.3-1.7-2.1-2.6L12 4l-1 1.1c-.6.9-1.3 1.7-2 2.6-.8 1.2-1.5 2.3-2 3.2-.6 1.2-1 2.2-1 3 0 3.4 2.7 6.1 6.1 6.1s6.1-2.7 6.1-6.1c0-.8-.3-1.8-1-3zm-5.1 7.6c-2.5 0-4.6-2.1-4.6-4.6 0-.3.1-1 .8-2.3.5-.9 1.1-1.9 2-3.1.7-.9 1.3-1.7 1.8-2.3.7.8 1.3 1.6 1.8 2.3.8 1.1 1.5 2.2 2 3.1.7 1.3.8 2 .8 2.3 0 2.5-2.1 4.6-4.6 4.6z"})})},3512:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"})})},1651:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"m3 5c0-1.10457.89543-2 2-2h13.5c1.1046 0 2 .89543 2 2v13.5c0 1.1046-.8954 2-2 2h-13.5c-1.10457 0-2-.8954-2-2zm2-.5h6v6.5h-6.5v-6c0-.27614.22386-.5.5-.5zm-.5 8v6c0 .2761.22386.5.5.5h6v-6.5zm8 0v6.5h6c.2761 0 .5-.2239.5-.5v-6zm0-8v6.5h6.5v-6c0-.27614-.2239-.5-.5-.5z",fillRule:"evenodd",clipRule:"evenodd"})})},748:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M12 4.75a7.25 7.25 0 100 14.5 7.25 7.25 0 000-14.5zM3.25 12a8.75 8.75 0 1117.5 0 8.75 8.75 0 01-17.5 0zM12 8.75a1.5 1.5 0 01.167 2.99c-.465.052-.917.44-.917 1.01V14h1.5v-.845A3 3 0 109 10.25h1.5a1.5 1.5 0 011.5-1.5zM11.25 15v1.5h1.5V15h-1.5z"})})},9783:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z"})})},435:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,n.jsx)(c.Path,{d:"M10.5 4v4h3V4H15v4h1.5a1 1 0 011 1v4l-3 4v2a1 1 0 01-1 1h-3a1 1 0 01-1-1v-2l-3-4V9a1 1 0 011-1H9V4h1.5zm.5 12.5v2h2v-2l3-4v-3H8v3l3 4z"})})},311:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24",children:(0,n.jsx)(c.Path,{d:"M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1.13 9.38l.35-6.46H8.52l.35 6.46h2.26zm-.09 3.36c.24-.23.37-.55.37-.96 0-.42-.12-.74-.36-.97s-.59-.35-1.06-.35-.82.12-1.07.35-.37.55-.37.97c0 .41.13.73.38.96.26.23.61.34 1.06.34s.8-.11 1.05-.34z"})})},4648:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(5573),n=a(790);const r=(0,n.jsx)(c.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24",children:(0,n.jsx)(c.Path,{d:"M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z"})})},6185:e=>{"use strict";function t(e){return e&&"object"==typeof e?n(e)||r(e)?e:c(e)?function(e,t){if(e.map)return e.map(t);for(var a=[],c=0;c{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const a="color: "+this.color;t.splice(1,0,a,"color: inherit");let c=0,n=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(c++,"%c"===e&&(n=c))})),t.splice(n,0,a)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=a(3212)(t);const{formatters:c}=e.exports;c.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},3212:(e,t,a)=>{e.exports=function(e){function t(e){let a,n,r,l=null;function s(...e){if(!s.enabled)return;const c=s,n=Number(new Date),r=n-(a||n);c.diff=r,c.prev=a,c.curr=n,a=n,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let l=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,n)=>{if("%%"===a)return"%";l++;const r=t.formatters[n];if("function"==typeof r){const t=e[l];a=r.call(c,t),e.splice(l,1),l--}return a})),t.formatArgs.call(c,e);(c.log||t.log).apply(c,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=c,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==l?l:(n!==t.namespaces&&(n=t.namespaces,r=t.enabled(e)),r),set:e=>{l=e}}),"function"==typeof t.init&&t.init(s),s}function c(e,a){const c=t(this.namespace+(void 0===a?":":a)+e);return c.log=this.log,c}function n(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(n),...t.skips.map(n).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let a;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const c=("string"==typeof e?e:"").split(/[\s,]+/),n=c.length;for(a=0;a{t[a]=e[a]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let a=0;for(let t=0;t{"use strict";t.i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.split(/\r\n|[\n\v\f\r\x85]/),c=e.match(/\r\n|[\n\v\f\r\x85]/g)||[],n=[],r=0;function l(){var e={};for(n.push(e);r{"use strict";a.d(t,{AO:()=>u,Rr:()=>h,TM:()=>o,rc:()=>c});var c,n=a(7790);!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(c||(c={}));var r=function(e){return e};var l="beforeunload",s="hashchange",i="popstate";function o(e){void 0===e&&(e={});var t=e.window,a=void 0===t?document.defaultView:t,o=a.history;function g(){var e=h(a.location.hash.substr(1)),t=e.pathname,c=void 0===t?"/":t,n=e.search,l=void 0===n?"":n,s=e.hash,i=void 0===s?"":s,m=o.state||{};return[m.idx,r({pathname:c,search:l,hash:i,state:m.usr||null,key:m.key||"default"})]}var v=null;function f(){if(v)b.call(v),v=null;else{var e=c.Pop,t=g(),a=t[0],n=t[1];if(b.length){if(null!=a){var r=y-a;r&&(v={action:e,location:n,retry:function(){x(-1*r)}},x(r))}}else S(e)}}a.addEventListener(i,f),a.addEventListener(s,(function(){u(g()[1])!==u(w)&&f()}));var E=c.Pop,A=g(),y=A[0],w=A[1],k=p(),b=p();function _(e){return function(){var e=document.querySelector("base"),t="";if(e&&e.getAttribute("href")){var c=a.location.href,n=c.indexOf("#");t=-1===n?c:c.slice(0,n)}return t}()+"#"+("string"==typeof e?e:u(e))}function R(e,t){return void 0===t&&(t=null),r((0,n.A)({pathname:w.pathname,hash:"",search:""},"string"==typeof e?h(e):e,{state:t,key:d()}))}function C(e,t){return[{usr:e.state,key:e.key,idx:t},_(e)]}function j(e,t,a){return!b.length||(b.call({action:e,location:t,retry:a}),!1)}function S(e){E=e;var t=g();y=t[0],w=t[1],k.call({action:E,location:w})}function x(e){o.go(e)}null==y&&(y=0,o.replaceState((0,n.A)({},o.state,{idx:y}),""));var N={get action(){return E},get location(){return w},createHref:_,push:function e(t,n){var r=c.Push,l=R(t,n);if(j(r,l,(function(){e(t,n)}))){var s=C(l,y+1),i=s[0],m=s[1];try{o.pushState(i,"",m)}catch(e){a.location.assign(m)}S(r)}},replace:function e(t,a){var n=c.Replace,r=R(t,a);if(j(n,r,(function(){e(t,a)}))){var l=C(r,y),s=l[0],i=l[1];o.replaceState(s,"",i),S(n)}},go:x,back:function(){x(-1)},forward:function(){x(1)},listen:function(e){return k.push(e)},block:function(e){var t=b.push(e);return 1===b.length&&a.addEventListener(l,m),function(){t(),b.length||a.removeEventListener(l,m)}}};return N}function m(e){e.preventDefault(),e.returnValue=""}function p(){var e=[];return{get length(){return e.length},push:function(t){return e.push(t),function(){e=e.filter((function(e){return e!==t}))}},call:function(t){e.forEach((function(e){return e&&e(t)}))}}}function d(){return Math.random().toString(36).substr(2,8)}function u(e){var t=e.pathname,a=void 0===t?"/":t,c=e.search,n=void 0===c?"":c,r=e.hash,l=void 0===r?"":r;return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),l&&"#"!==l&&(a+="#"===l.charAt(0)?l:"#"+l),a}function h(e){var t={};if(e){var a=e.indexOf("#");a>=0&&(t.hash=e.substr(a),e=e.substr(0,a));var c=e.indexOf("?");c>=0&&(t.search=e.substr(c),e=e.substr(0,c)),e&&(t.pathname=e)}return t}},8579:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={wrapper:"GqFcAwJvIrg1v7f6QUfw",header:"OENx8kmm62tkWGukzP2S",title:"KnqJLKwSceJTwFJrPGHq","close-button":"PJU0_yA9jNf7ao0jhHut",footer:"rrORM3zqHfGvqiPduEXY",steps:"Q7fUcDUGhteXEr18rZPC","action-button":"S5LAeskUiEQ0JlPhr0Ze"}},2021:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"admin-page":"sexr0jUxC1jVixdKiDnC",background:"vKQ11sLeAM45M04P1ccj"}},6888:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"section-hero":"vMa4i_Dza2t5Zi_Bw9Nf"}},2258:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={button:"zI5tJ_qhWE6Oe6Lk75GY","is-icon-button":"tuBt2DLqimiImoqVzPqo",small:"Na39I683LAaSA99REg14",normal:"ipS7tKy9GntCS4R3vekF",icon:"paGLQwtPEaJmtArCcmyK",regular:"lZAo6_oGfclXOO9CC6Rd","full-width":"xJDOiJxTt0R_wSl8Ipz_",loading:"q_tVWqMjl39RcY6WtQA6","external-icon":"CDuBjJp_8jxzx5j6Nept"}},2127:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={cut:"msOlyh2T7D6uhbM6AROg",icon:"cPN7USVqSBpxUswfDtUZ",cta:"EmnJAyEzzn1QpA8HtypY",iconContainer:"vV7YZikAz0oHYsuvtxMq",description:"T1YaMupeZmBIpXZHY9EZ"}},3689:()=>{},4803:()=>{},2300:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"star-icon":"cuoSlhSNrqf1dozY22Xb",jetpack:"lAIiifeLMmZAPlQ9n9ZR","checkmark-icon":"JLquNpQVlysAamuh5lJO",socialIcon:"cbOwD8Y4tFjwimmtchQI",bluesky:"aLWBKY0yRghEk7tNCgK3",facebook:"aHOlEBGD5EA8NKRw3xTw",instagram:"cL3m0xBYTYhIKI7lCqDB",twitter:"af4Y_zItXvLAOEoSDPSv",linkedin:"f68aqF3XSD1OBvXR1get",tumblr:"xFI0dt3UiXRlRQdqPWkx",google:"q7JEoyymveP6kF747M43",mastodon:"DKOBOTVmTLbh26gUH_73",nextdoor:"n5XodNsuMfMAAvqHFmbw",whatsapp:"fftumuc_lJ6v0tq4UMVR",threads:"inzgC27qxdt7hSdhTWRI"}},4206:()=>{},8403:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)"}},7371:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)",smCols:"4",mdCols:"8",lgCols:"12","col-sm-1":"RuVLl3q4lxTQa3wbhBJB","col-sm-1-start":"f9LZTRG4MMK42rS89afW","col-sm-1-end":"bHe_zKxjjpUwHw_MdYE1","col-sm-2":"QZbNrOqE2aNSn50xVhpU","col-sm-2-start":"ev7W3z7zVYPeHAlYqZjf","col-sm-2-end":"NJWd1m_e7lOiPYru2ZMP","col-sm-3":"Xc6nt1Qc1DI0Z2A3gt1r","col-sm-3-start":"UIcN_GXiPRoIsin8Kohg","col-sm-3-end":"GRKCyqb5LufCSCgykKFc","col-sm-4":"i_qTq8gqhhC3vIUepVRB","col-sm-4-start":"G3qaZ3Jpbvam_1XvGxgc","col-sm-4-end":"VRCNYKZtO9zukEwmgP1y","col-md-1":"tRm008K_WJL79WoNZTNL","col-md-1-start":"l5T2P_bgKts4tdaRkS1d","col-md-1-end":"zOCxfLZpF6BlgC7a_Yq1","col-md-2":"F80DdgVn0m5OpvtSQWka","col-md-2-start":"oI1c7JYfiJtMQHbhngtU","col-md-2-end":"pMQtA_4jh1_1lVknqEP5","col-md-3":"VenqMpdgyKQVUNNQcfqd","col-md-3-start":"seNYL99uoczf9V4MxBxT","col-md-3-end":"YKfF1HFhI9KygA5l3b2J","col-md-4":"yAi0Cv1xDWkoqsaUhvhR","col-md-4-start":"ubhnyZOnkgxNhh6XtVWv","col-md-4-end":"RGOPGQbWMJ9Ei5oFxS7X","col-md-5":"Sz1E2aWbX483ijdi6yge","col-md-5-start":"tku6_bRYrX9tMbgYGmIl","col-md-5-end":"b5JHttOhSEcI1WBlqAjk","col-md-6":"FboSx5MoKTAWbxXyYlCw","col-md-6-start":"Jhs8yEEmodG30edbJvag","col-md-6-end":"IpzbbKVqEqPcfIGkXkwt","col-md-7":"mhCPwfAZ4Kmm_empzJAq","col-md-7-start":"x034ilrJF7rO9UJB2rI1","col-md-7-end":"Wt8t2e16viRrOJ1lLA5v","col-md-8":"S6pIrEy9AMLKx9bgh_Ae","col-md-8-start":"kEfI4tGyuWfHTlRnvIab","col-md-8-end":"PUzX4RRsKq1dnsz3gebS","col-lg-1":"X_pdcLJikd8LS_YAdJlB","col-lg-1-start":"tl936d14Huby4khYp05X","col-lg-1-end":"hnge0LnR69d3NXEtEE1t","col-lg-2":"fj0NUMuyZQcPNgKcjp5Z","col-lg-2-start":"R2ncBX7a2NigdYCcV1OX","col-lg-2-end":"t8vMSDVYno9k9itRwnXb","col-lg-3":"wsDuEN2GqHx6qzo8dUdk","col-lg-3-start":"cIEVPUweWtLBy3xaXnMx","col-lg-3-end":"fajUWBwu1m2B479j3jmz","col-lg-4":"YR0c7fQTgMkDdWzwSyLp","col-lg-4-start":"xlwp8BmplxkKNMI7gamo","col-lg-4-end":"_C4O1w9DUqx1m3gPf8aA","col-lg-5":"Z54F1hAErckAIrKlxnXW","col-lg-5-start":"ezSDWkRHmKSxDJXxuiOH","col-lg-5-end":"T0ChoeAjGJjkkNrYhD4g","col-lg-6":"qtMoMPF6yHvGJnWHSsde","col-lg-6-start":"gdoywN5VPiWERfIBqkph","col-lg-6-end":"wUev_VH5uf_pwFFlbnAU","col-lg-7":"egIPDFJsOpownTClq9XP","col-lg-7-start":"yGhp9yoAW7k0kQik9AB7","col-lg-7-end":"SJ43U9mR5wUg5V2qBeQA","col-lg-8":"cTuyHfMwSUJxN_HdIEgd","col-lg-8-start":"smCr8DaIagcumdvdldiK","col-lg-8-end":"T03NHzQJvzwL6wAfIiTL","col-lg-9":"pMvxM3RJGjqyNdf9qg1Y","col-lg-9-start":"iIVpNRwEnQ_JI5gpp9EN","col-lg-9-end":"ZbQ4u4vGSX5rJOje4uGL","col-lg-10":"gKb5wuIDAlKGbrjK2vxy","col-lg-10-start":"Z7pINdImE2WJiYnZBTqm","col-lg-10-end":"ZTxp6qpvwurMdOnLLSz1","col-lg-11":"NnQTlbfnxPDR6cQ7rygg","col-lg-11-start":"O137wZd6Yl0olSA9PsXR","col-lg-11-end":"zf2OJtQ2MPz6SDoh6CB0","col-lg-12":"U3H6UHW6HqRt9hdzVg3O","col-lg-12-start":"zynnNeS_ZBTxABcVpUQH","col-lg-12-end":"vI8tltFZtFUNAy9Iag9s"}},2420:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)",container:"SqdhUZkXCRuIpErj1B3z",fluid:"OZC_9a1LhpWF9dv15Gdh"}},7410:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={container:"VHYulMcpzbr10HWR0iSE","icon-wrapper":"FGpSkMCiIHQjszcV0dbn","close-button":"KoWZcCwhW13xvkEb0QON","main-content":"smrfczkC53EaFM8OJUXs",title:"IKYRWoPwt9xOVEx1wzNS","action-bar":"qM0qY6mPYp1MPN54A3Kg","is-error":"A5YkDkkXuiYgavrY6Nux",icon:"y_IPyP1wIAOhyNaqvXJq","is-warning":"cT5rwuPMZzWvi5o6shMl","is-info":"yo0O3uvNomPsYUXFCpAS","is-success":"oZdDFf1jBLkzn5ICCC6x"}},3142:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={container:"p4qz2tkq0p9hxucJ6Qk2",table:"lbNDyXioOwvyvbALtCBm","is-viewport-large":"s2Lsn4kbm6BrS3DSndRB",card:"cLaNK_XcbTGlRQ4Tp43Q","is-primary":"CYt1X0eH1icRjhtJ28jx",header:"DAkZc1P9A3K12fjEliMg",item:"WUBuYABl8nymjs9NnCEL","last-feature":"ANtCFeb41NhA8PA3H7ZN",value:"Ql2gy_148yW8Vw5vhaKD",icon:"EAQrAnQEW1z1BfdY5gbC","icon-check":"JDSTlLoOC_4aUoH2oNM2","icon-cross":"zNdQRJ1w7BvaQOYyqzHK",popover:"lr7vbX95SKtoe7DarJcZ","popover-icon":"KRrGp2xdkeBOxLZeuQ6X",tos:"H_ZJiRVJg0LiMXPGOcmt","tos-container":"x21z_DixObRDsDaWotP1"}},3407:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={container:"dovianZYLKhnbnh9I06o","price-container":"lljtQMhW7lq5tE5SDJEf","promo-label":"NubApIV1vQCRUNprfm6b",price:"dhFQXpZfMwVI8vuYHnwC","is-not-off-price":"eD7hzxFmdtG_MgmBtl_k",footer:"C64ZjjUAqJC1T2Sa7apS",legend:"UpZDGew6Ay1hPoP6eI7b",symbol:"TDiiPbuW1Z0_05u_pvcK"}},8325:()=>{},416:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={status:"bZ4b33s2MdcOjaDKBbeV",status__indicator:"UzkzDaqt2mXprJh2OXRz",status__label:"QuS0vdcr87FsiBvSSrvA","is-active":"bGx0wbQAwuY7k8P3PHVQ","is-inactive":"wR8Cz8uHgObTQavolv5y","is-error":"IzbBYGwBKhSYFUQlIMww","is-action":"Kdvp_HJf89IBrZuCaLm8","is-initializing":"hVf5vsbBWm8OFye7cy7a"}},9634:()=>{},4495:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={reset:"WQVtrU6q0L1Igcj7wCrQ","headline-medium":"UujoBFTnQNY2cWU2SIsH","headline-small":"TeGO5V_thHw5lDAm1_2M","headline-small-regular":"WolQzb2MsSgiNmLtc7_j","title-medium":"hUB0JT8p1T2Hw28N6qC8","title-medium-semi-bold":"gKZWDv5chz3_O3Syp74H","title-small":"zY2No8Ga4b8shbOQGhnv",body:"tIj0D1t8Cc892ikmgFPZ","body-small":"KdcN0BnOaVeVhyLRKqhS","body-extra-small":"dso3Rh3tl3Xv1GumBktz","body-extra-small-bold":"mQ1UlbN9u4Mg9byO8m7v",label:"PItlW5vRExLnTj4a8eLE","m-0":"TwRpPlktzxhmFVeua7P5","mx-0":"zVfqx7gyb3o9mxfGynn1","my-0":"iSHVzNiB9iVleGljaQxy","mt-0":"xqDIp6cNVr_E6RXaiPyD","mr-0":"S8EwaXk1kyPizt6x4WH2","mb-0":"ODX5Vr1TARoLFkDDFooD","ml-0":"cphJ8dCpfimnky7P2FHg","m-1":"PFgIhNxIyiSuNvQjAIYj","mx-1":"M2jKmUzDxvJjjVEPU3zn","my-1":"io15gAh8tMTNbSEfwJKk","mt-1":"rcTN5uw9xIEeMEGL3Xi_","mr-1":"CQSkybjq2TcRM1Xo9COV","mb-1":"hfqOWgq6_MEGdFE82eOY","ml-1":"I8MxZQYTbuu595yfesWA","m-2":"kQkc6rmdpvLKPkyoJtVQ","mx-2":"j6vFPxWuu4Jan2ldoxpp","my-2":"hqr39dC4H_AbactPAkCG","mt-2":"c3dQnMi16C6J6Ecy4283","mr-2":"YNZmHOuRo6hU7zzKfPdP","mb-2":"Db8lbak1_wunpPk8NwKU","ml-2":"ftsYE5J9hLzquQ0tA5dY","m-3":"Det4MHzLUW7EeDnafPzq","mx-3":"h_8EEAztC29Vve1datb5","my-3":"YXIXJ0h1k47u6hzK8KcM","mt-3":"soADBBkcIKCBXzCTuV9_","mr-3":"zSX59ziEaEWGjnpZa4uV","mb-3":"yrVTnq_WBMbejg89c2ZQ","ml-3":"UKtHPJnI2cXBWtPDm5hM","m-4":"guexok_Tqd5Tf52hRlbT","mx-4":"oS1E2KfTBZkJ3F0tN7T6","my-4":"DN1OhhXi6AoBgEdDSbGd","mt-4":"ot2kkMcYHv53hLZ4LSn0","mr-4":"A1krOZZhlQ6Sp8Cy4bly","mb-4":"pkDbXXXL32237M0hokEh","ml-4":"XXv4kDTGvEnQeuGKOPU3","m-5":"yGqHk1a57gaISwkXwXe6","mx-5":"X8cghM358X3DkXLc9aNK","my-5":"GdfSmGwHlFnN2S6xBn1f","mt-5":"yqeuzwyGQ7zG0avrGqi_","mr-5":"g9emeCkuHvYhveiJbfXO","mb-5":"Lvk3dqcyHbZ07QCRlrUQ","ml-5":"r3yQECDQ9qX0XZzXlVAg","m-6":"aQhlPwht2Cz1X_63Miw0","mx-6":"JyHb0vK3wJgpblL9s5j8","my-6":"cY2gULL1lAv6WPNIRuf3","mt-6":"NBWQ9Lwhh_fnry3lg_p7","mr-6":"yIOniNe5E40C8fWvBm5V","mb-6":"t30usboNSyqfQWIwHvT3","ml-6":"Nm_TyFkYCMhOoghoToKJ","m-7":"C4qJKoBXpgKtpmrqtEKB","mx-7":"S93Srbu6NQ_PBr7DmTiD","my-7":"fJj8k6gGJDks3crUZxOS","mt-7":"cW6D6djs7Ppm7fD7TeoV","mr-7":"DuCnqNfcxcP3Z__Yo5Ro","mb-7":"im8407m2fw5vOg7O2zsw","ml-7":"G0fbeBgvz2sh3uTP9gNl","m-8":"kvW3sBCxRxUqz1jrVMJl","mx-8":"tOjEqjLONQdkiYx_XRnw","my-8":"op5hFSx318zgxsoZZNLN","mt-8":"c9WfNHP6TFKWIfLxv52J","mr-8":"sBA75QqcqRwwYSHJh2wc","mb-8":"GpL6idrXmSOM6jB8Ohsf","ml-8":"HbtWJoQwpgGycz8dGzeT","p-0":"uxX3khU88VQ_Ah49Ejsa","px-0":"KX0FhpBKwKzs9fOUdbNz","py-0":"PfK8vKDyN32dnimlzYjz","pt-0":"emxLHRjQuJsImnPbQIzE","pr-0":"kJ8WzlpTVgdViXt8ukP9","pb-0":"tg_UIUI11VBzrTAn2AzJ","pl-0":"uczvl8kaz84oPQJ2DB2R","p-1":"o7UHPcdVK3lt7q3lqV4o","px-1":"IDqEOxvDoYrFYxELPmtX","py-1":"DdywPW2qSYlu2pt8tpO2","pt-1":"npy3hw4A5QSkDicb2CJJ","pr-1":"LgbptTApNY5NwLQvEFAt","pb-1":"WZQy2SZuZso59bUsXXyl","pl-1":"o331apInxNunbYB3SfPE","p-2":"fMPIyD9Vqki1Lrc_yJnG","px-2":"i2pMcTcdrr10IQoiSm_L","py-2":"eA702gn32kwptiI1obXH","pt-2":"o9bGieUKcYc8o0Ij9oZX","pr-2":"SwZcFez1RDqWsOFjB5iG","pb-2":"eHpLc_idmuEqeqCTvqkN","pl-2":"vU39i2B4P1fUTMB2l6Vo","p-3":"JHWNzBnE29awhdu5BEh1","px-3":"X72lGbb56L3KFzC2xQ9N","py-3":"BzfNhRG8wXdCEB5ocQ6e","pt-3":"srV0KSDC83a2fiimSMMQ","pr-3":"lUWfkmbQjCskhcNwkyCm","pb-3":"Ts0dIlc3aTSL7V4cIHis","pl-3":"CzlqQXXhX6MvorArFZ8B","p-4":"TqMPkQtR_DdZuKb5vBoV","px-4":"a7UrjhI69Vetlcj9ZVzz","py-4":"StEhBzGs2Gi5dDEkjhAv","pt-4":"FGneZfZyvYrt1dG0zcnm","pr-4":"APEH216rpdlJWgD2fHc8","pb-4":"oGwXC3ohCic9XnAj6x69","pl-4":"U6gnT9y42ViPNOcNzBwb","p-5":"IpdRLBwnHqbqFrixgbYC","px-5":"HgNeXvkBa9o3bQ5fvFZm","py-5":"tJtFZM3XfPG9v9TSDfN1","pt-5":"PdifHW45QeXYfK568uD8","pr-5":"mbLkWTTZ0Za_BBbFZ5b2","pb-5":"vVWpZpLlWrkTt0hMk8XU","pl-5":"RxfaJj5a1Nt6IavEo5Zl","p-6":"SppJULDGdnOGcjZNCYBy","px-6":"palY2nLwdoyooPUm9Hhk","py-6":"WYw1JvZC0ppLdvSAPhr_","pt-6":"YEEJ9b90ueQaPfiU8aeN","pr-6":"QE0ssnsKvWJMqlhPbY5u","pb-6":"n8yA3jHlMRyLd5UIfoND","pl-6":"tXHmxYnHzbwtfxEaG51n","p-7":"kBTsPKkO_3g_tLkj77Um","px-7":"RyhrFx6Y1FGDrGAAyaxm","py-7":"CBwRpB0bDN3iEdQPPMJO","pt-7":"vQVSq6SvWKbOMu6r4H6b","pr-7":"oBy5__aEADMsH46mrgFX","pb-7":"KVEXoJqf1s92j0JMdNmN","pl-7":"ZMXGNrNaKW3k_3TLz0Fq","p-8":"tuiR9PhkHXhGyEgzRZRI","px-8":"U7454qyWkQNa2iaSJziu","py-8":"VLYIv2GVocjuN93e8HC8","pt-8":"X1rm9DQ1zLGLfogja5Gn","pr-8":"JS7G6kAuqJo5GIuF8S5t","pb-8":"Y8F9ga1TDCMbM1lj4gUz","pl-8":"AJuyNGrI63BOWql719H8"}},9422:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={global:"_fUXxnSp5pagKBp9gSN7"}},1517:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={navigation:"vvXnRXxrU1kP1KsdSr4J",badge:"aDCTkUFaJEeZzYYE6qv5"}},3940:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={container:"EU0Rvu4PDqVtnCAmbgHg"}},3902:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"button-group":"XqQBRzrxyMhhZvPXIHgk"}},9370:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={loading:"kdsaL7c4bpTwf_A4fIUT",loading__message:"b0eN3as5AgxQW7EAkarg"}},2148:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={footer:"_Wc3apZobag_9Ag_THTb"}},1526:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"diff-viewer":"LumryWNddoF092fZgN2O","diff-viewer__filename":"NFMwU3H5k2qArZe2TTp9","diff-viewer__file":"G5W9M8qfo3sGl2OIbwg9","diff-viewer__line-numbers":"Bx4RDCUR316fm_jgGS8N","diff-viewer__lines":"GhN0JvAyRQI3SnVWp2Ot"}},2938:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"main-content":"MeZ8EJKfFWG5h1abL4gD"}},934:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"footer-checkbox":"uQlXhcfYn9tbnK27_Gct","standalone-mode-section":"e5YHJiYcvfgdEEJsS_YM","share-data-section":"PO9zDOaSkcv_RqpfZF_v"}},1416:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={spinner:"V6B8ltQ7TH3UKzUC_qy1","firewall-subheading":"C9hcvYAbgHPhN2Tl22xg","brute-force-protection-subheading":"XkbIpr2gzB4XEhHgzkY4","firewall-subheading__content":"BfcZn0_X33Ajdd1Gl18G","icon-popover":"rBmVJIeTNpd0RJWaRGuJ","upgrade-button":"jVq5444f1Xh6nNkz0Qe_","firewall-header":"amF9cOnMiv2nHbkMXQiQ","stat-card-wrapper":"FodE_7RbLD8zeBSd6eVR","popover-text":"twyPhW_K164HITnDrwEg","loading-text":"tbcd9xc_TjcFdokOt3F_","firewall-heading":"pnoqLV3l30xuvj2hLlJc"}},4047:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={list:"sQkG5Cu80gPaeFj3L_wa",footer:"oIl6GCMeUnzE0inXbuj9"}},2318:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={list:"RP2MVoGqaCFXPKZhhxQ1",footer:"YpEs8b7KE7fzVuXUbOEb"}},9443:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"form-toggle":"IunwKwdvL271DxBIniPb","form-toggle__switch":"svA9WxEcOByd5S2fZonA","is-compact":"wOd7DeP76v1fczKfah5n"}},4493:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={accordion:"x8UuVEhWucPfdq0hEJg6","accordion-item":"eb6Ovfvm1yONz4mdOwbH","accordion-header":"jF9LXpXR3TxZVDw7TVXT","accordion-header-label":"lNQgAfpwdAUSOLZd8dlD","accordion-header-label-icon":"WRQwDYPdffWznX158azR","accordion-header-description":"dJx9pvlYjDnKn11n5wo8","accordion-header-button":"EKcbLuSblRc7UpzgsFXw","accordion-body":"ILMBWlMLcXc0n97IisrG","accordion-body-close":"T8XIzCNJBQy1UETN5gjU","accordion-body-open":"kWoHGiaZSbq9XJVyUOMC"}},4871:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={threat:"EqpwvErHtRi_WQkJKgi1",threat__icon:"EicvN1QaJu5OJLzdUN5A",threat__summary:"b7ynAmUwGlxK_vxyIN0y",threat__summary__label:"uSV9HYRxjL4S6zIZDlqP",threat__summary__title:"XpW8Mvw_XFEbqxUdw155",threat__severity:"Fkj60BmQ5sUo9zHcJwVv",footer:"XLzPr74ad3osCq9kxy2q"}},840:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"protect-header":"UL3B1tQ854mN7r6taB61","get-started-button":"IG56Hw7ZR_7rKVsM78qw"}},4054:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"marked-lines":"xpPHTch5ul0xuZaUoTNa","marked-lines__marked-line":"AMOpkL9LURkyTK8316cw","marked-lines__line-numbers":"i0_0xMrNWoak1brIaDQq","marked-lines__line-number":"C9fLawPLkMNSZthfwxj6","marked-lines__lines":"ogixgg8fRGekmYGtevh1","marked-lines__line":"jYPCgKMDRKfT3vnx0mdG","marked-lines__mark":"UEQ1NqkrwNmaQR7qdEK3"}},7259:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={modal:"WtVEv641JBaLl929sZq2",modal__window:"G0aPt7WmA1rkUE0wcTno",modal__close:"VkrhWjfEIlIwYEumycbP",modal__close__icon:"yFzeV4cmWRbZKk5tIyEw"}},3066:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={navigation:"HQgjxePFDRJHamBAGcVU","navigation-item":"KtdsNIMumOoHNWMLmuAJ",clickable:"ewyV4ZGn34WDNXmK3ej2",selected:"owofT85W_XvVdb5vr1GN","navigation-item-label":"NESnw2xCLrBpP6WlYZL4","navigation-item-icon":"aohnd_y_1lrMuww8NH63","navigation-item-badge":"Rnas_2_2_eLZSYfZ347E","navigation-item-label-text":"m4_14yNRByDyO9yf9pGg","navigation-item-check-badge":"X8NRHUTBa_4wDvoHN9TT","navigation-item-info-badge":"CsuOteurQlJm4IjXqyZ0","navigation-group":"fvbewglUxEvV1o04yzzp","navigation-group-label":"DINy59MKjwiQanaoDTiV","navigation-group-content":"XoacHJljw8zRW_fkBSyg","navigation-group-list":"mXM4WZRePVTa07dhQ6MD","navigation-group-truncate":"sI3V8khLdCqxkhJQ_XnI","popover-text":"hgdxMuIvZwTZ0sfXaols","navigation-dropdown-button":"UErHS2HAh1gszGfYuVIf","navigation-dropdown-label":"lEhH1hvCcxLVFMHI8Gwv","navigation-dropdown-icon":"c57Vj4QhAHwcK_HZMxtN"}},600:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={notice:"_aiMxmJRAw5jRPbZFX57","notice--info":"eWgNBUaexiR66ZI1Px4U","notice--floating":"ZGELG1CO333FilJXOaeI",notice__icon:"BnI88X_e8ItF1c9Uozmj","notice--success":"hRRUwTCPRpurhMwRNZkg","notice--error":"Z6q3IxY_uR1y2lAPTkVF",notice__message:"ST8sowTbBVLRPrk4ZQrn",notice__close:"lMkO08Vd8YQMfwrwaI8u"}},7489:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={accordion:"sfXsfklfkeSRtE9ivQwF","accordion-item":"ozRrKPlj1QFGUyd3oVke","accordion-header":"PyvnSHQuuUkZvVsArigy","accordion-header-label":"u9Xod5s8bCRNj9MR1Drl","accordion-header-label-icon":"IbeyulkpO9kjYJ4OkYUD","accordion-header-description":"KiCgmjHm2f0JDU3cMsgf","accordion-header-status":"kh5zuLR1zNf7KCsxhAZ5","accordion-header-status-separator":"z1z63g62c73XbcPk9DWc","accordion-header-button":"kJ8t3FAtd5VAYjk31SfA","accordion-body":"JP0IJZcYRohfgntEozjm","accordion-body-close":"y7c6zi2wjEnbW3F29fmP","accordion-body-open":"wQWiN_J0SqgduvadyGnm","icon-check":"v1fUFCBPmd6miSCf_ehK","status-badge":"oR9QG6gRLvyzqiuIarmu",fixed:"bZ8KDXMWoim85Zv31E7E",ignored:"uYEkrN4rh8n5cs3aPrYC","is-fixed":"WOX88CWB12lzxcMcl_ns"}},8744:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"progress-bar":"vzMlFr1AXWqefpRrb976","progress-bar__wrapper":"gYSOMa4xxLXmsNzvFPkW","progress-bar__bar":"hNJWdt5qmZkWYAH_vjIp","progress-bar__percent":"DHMUfGyHbl5BgD5vjxVz"}},4969:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"product-section":"Clxt94RgGnDrhORZZyPr","info-section":"K2OG1vK5PSOYDWKtqKKG"}},2399:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"threat-severity-badge":"JiJhrZaThvWCpM2AfGen","is-critical":"_7SGksgOpcPbHfPPpQTV","is-high":"pGNquShR54adQ61sx3lP","is-low":"IM5kkexAfwGLM6zz0Exd"}},1847:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={mark:"jNlU3vgp4xEGwmX5aTyK",list:"gE8s4nh3f7iGIBrFeyCT"}},4356:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={tabs:"lyrXe0pA852TUmyekDb5",tab:"KgEeDTKgTC5ZjzYlbTqN","tab--active":"Lv4WoNVkeJntqvUyG4dX"}},6578:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={textarea:"rigH8UdiDrmmSLQMUurD",label:"V8FDM08CpcwQs4UwN2nI"}},9054:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={threat:"NHzH3tt6CypjZ92CvK9x",threat__icon:"D9zvYDUrOP_zwSm0yJMs",threat__summary:"_XISfmbjoVlqhB61hHYn",threat__summary__label:"AQDPBnMZFu7BOBuo8mYW",threat__summary__title:"cZ9s5eCAZe3R82Y6Ru3z",threat__severity:"AKnbWQiViZ2O_dwCV8Fw",threat__checkbox:"W6alQ2_S5Rh06djX9m27"}},1476:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={empty:"OtDl6kocO_m2s9sRHaqX","threat-section":"BjwJh1S1YVPI7AjmTx6a","threat-filename":"YWfK8VTp2wnByBauYPKg","threat-footer":"pkw2LnOTd8VvQ3oT8sXQ","threat-item-cta":"ap6lG79CncSqdigJS_WA","list-header":"uym7dGHhp6ifjF57yOAO","list-title":"e_2eFTR8RyHwmfeqJL4F","list-header__controls":"IKQVU01PrDMMV5UFLOKv","accordion-header":"qazuloIt0teplSEwxRN0","manual-scan":"iJ_biSBRDribuNKX0Zuw","pagination-container":"v640YfEL85A9rCvyHSzW",unfocused:"gfxpe4zp6ShFsIsce8Ii"}},6834:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={threat:"L9hh_sX51PzO41icwJlh",threat__icon:"o8E4Bv6U0d7USFxSjRCj",threat__summary:"sT31awD6bHO8KJewvmaO",threat__summary__label:"VVTRIG51r8ORUIBPs5gN",threat__summary__title:"AiaWRbRLFT9xvP9vn5jA",threat__severity:"MP1wWkqvqfvAc7Izl7x4",footer:"i9X_KxEJiGpRT7q_RU6i"}},8340:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={footer:"uUEJGMrSV3XoBwX5xEwA"}},7642:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={container:"L1LjeCYPldBcTLILS13l","toggle-section":"JWWznnb8sAKHIOhE59_z","toggle-section__control":"kV5wl2UResIqqBdSTuQr","toggle-section__content":"oePuSIKcH_JzEhDJcHh8","toggle-section__title":"mxYw7vghJF8H8C0FjvPz","toggle-section--disabled":"lyiOCAyjT_eQyDg8Ier_","toggle-section__details":"IclfL4iNXTZfBAbHZdog","automatic-rules-stats":"bOadM4auwszaOl0el95T","automatic-rules-stats__version":"G7vkgqk8AEd6pRbNUyE4","automatic-rules-stats__last-updated":"qnlbRElIsj4nB45F5s3a","automatic-rules-stats__failed-install":"TvvdPGzRa_ubn3BnQOnQ","manual-rules-stats":"ciEDIqQimh9OqgCN4t3c","manual-rules-stats__no-rules":"qQ3tqN6Pi9DJ2xYLvfvA","manual-rules-stats__block-list-count":"xmutRBXpbSs8i1QMo5FT","manual-rules-stats__allow-list-count":"kQ5SrYe6QmF63mEYQ26R","upgrade-trigger-section":"yAFMUkq1ot9DZF05RUwG",badge:"EbfrbByI7NQ2_MD_gDXp",popover:"hCwaBLH_6dELyWWwB8S1",popover__header:"V3U9oKSdRmKjOQ523C86",popover__button:"OSrT4pA4vIGzg9EE6rcv",popover__footer:"rbL50q3wwzE6X7VBHcmW",status:"gF7LiE_q_elhMrhdypAl",active:"fbJbqf_YrPpMG4JKF79U","allow-list-current-ip":"g593fzjQCE_4rNiiwLdg","allow-list-button-container":"CIp_BwDbLdjYPSVrreqg","block-list-button-container":"m2epTt5F7wBQNcMdguwQ",divider:"HrEvG7sxsWbTLD0sk477"}},5960:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={summary:"aEAAkNfx0ERh4LEvCBVw",summary__title:"f3l2VSMBpGpf6Ta1jP5f",summary__icon:"v4n86Hu06mIkxqFkfYY2",summary__actions:"fTSgXuIQCZFFBxzFCE0q",empty:"KmIjHqrMs3duMPaUf50k","list-header":"DJS67UCXVaM7nIMJePYQ","list-title":"s4378tf2MiM0bMIxQZkI","list-header__controls":"jifq7nsF5kZYrcpGQ35V"}},6359:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={"main-content":"ttGgvvtxu52J_2mCCopL","loading-content":"UZsYf4noF2SMuyOqGWPA",illustration:"HKtrpPFSTSG9Xek34vBa","connection-error-col":"dgFk23NY71PPMar8DEME","history-button-col":"t_Av4raklvnsBRBA4hms","scan-section-header":"B5k6PdQs1UVDzb2J98wR","scan-section-header__content":"_h9h7RagEFrCDu7S2Vfi","scan-section-header__subtitle":"sSzimfzP9ZeilBh2H0Um","scan-section-header__icon":"X7CVf27QOnW2yuV332eo","scan-section-header__controls":"SaA9v6DNQOHPx1EK90y9","scan-section-header__controls__row":"kadiUBzNiR_qFA1y7Eig"}},5490:()=>{},4997:e=>{var t=1e3,a=60*t,c=60*a,n=24*c,r=7*n,l=365.25*n;function s(e,t,a,c){var n=t>=1.5*a;return Math.round(e/a)+" "+c+(n?"s":"")}e.exports=function(e,i){i=i||{};var o=typeof e;if("string"===o&&e.length>0)return function(e){if((e=String(e)).length>100)return;var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!s)return;var i=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return i*l;case"weeks":case"week":case"w":return i*r;case"days":case"day":case"d":return i*n;case"hours":case"hour":case"hrs":case"hr":case"h":return i*c;case"minutes":case"minute":case"mins":case"min":case"m":return i*a;case"seconds":case"second":case"secs":case"sec":case"s":return i*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return i;default:return}}(e);if("number"===o&&isFinite(e))return i.long?function(e){var r=Math.abs(e);if(r>=n)return s(e,r,n,"day");if(r>=c)return s(e,r,c,"hour");if(r>=a)return s(e,r,a,"minute");if(r>=t)return s(e,r,t,"second");return e+" ms"}(e):function(e){var r=Math.abs(e);if(r>=n)return Math.round(e/n)+"d";if(r>=c)return Math.round(e/c)+"h";if(r>=a)return Math.round(e/a)+"m";if(r>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},5762:(e,t,a)=>{"use strict";var c=a(3761);function n(){}function r(){}r.resetWarningCache=n,e.exports=function(){function e(e,t,a,n,r,l){if(l!==c){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:n};return a.PropTypes=a,a}},8120:(e,t,a)=>{e.exports=a(5762)()},3761:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},9959:(e,t,a)=>{"use strict";a.d(t,{I9:()=>m,k2:()=>d});var c=a(1609),n=a(4623),r=a(726);function l(){return l=Object.assign||function(e){for(var t=1;t=0||(n[a]=e[a]);return n}const i=["onClick","reloadDocument","replace","state","target","to"],o=["aria-current","caseSensitive","className","end","style","to","children"];function m(e){let{basename:t,children:a,window:l}=e,s=(0,c.useRef)();null==s.current&&(s.current=(0,n.TM)({window:l}));let i=s.current,[o,m]=(0,c.useState)({action:i.action,location:i.location});return(0,c.useLayoutEffect)((()=>i.listen(m)),[i]),(0,c.createElement)(r.Ix,{basename:t,children:a,location:o.location,navigationType:o.action,navigator:i})}const p=(0,c.forwardRef)((function(e,t){let{onClick:a,reloadDocument:o,replace:m=!1,state:p,target:d,to:u}=e,h=s(e,i),g=(0,r.$P)(u),v=function(e,t){let{target:a,replace:l,state:s}=void 0===t?{}:t,i=(0,r.Zp)(),o=(0,r.zy)(),m=(0,r.x$)(e);return(0,c.useCallback)((t=>{if(!(0!==t.button||a&&"_self"!==a||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(t))){t.preventDefault();let a=!!l||(0,n.AO)(o)===(0,n.AO)(m);i(e,{replace:a,state:s})}}),[o,i,m,l,s,a,e])}(u,{replace:m,state:p,target:d});return(0,c.createElement)("a",l({},h,{href:g,onClick:function(e){a&&a(e),e.defaultPrevented||o||v(e)},ref:t,target:d}))}));const d=(0,c.forwardRef)((function(e,t){let{"aria-current":a="page",caseSensitive:n=!1,className:i="",end:m=!1,style:d,to:u,children:h}=e,g=s(e,o),v=(0,r.zy)(),f=(0,r.x$)(u),E=v.pathname,A=f.pathname;n||(E=E.toLowerCase(),A=A.toLowerCase());let y,w=E===A||!m&&E.startsWith(A)&&"/"===E.charAt(A.length),k=w?a:void 0;y="function"==typeof i?i({isActive:w}):[i,w?"active":null].filter(Boolean).join(" ");let b="function"==typeof d?d({isActive:w}):d;return(0,c.createElement)(p,l({},g,{"aria-current":k,className:y,ref:t,style:b,to:u}),"function"==typeof h?h({isActive:w}):h)}))},726:(e,t,a)=>{"use strict";a.d(t,{$P:()=>u,BV:()=>d,C5:()=>o,Ix:()=>p,Zp:()=>v,g:()=>f,qh:()=>m,x$:()=>E,zy:()=>g});var c=a(1609),n=a(4623);function r(e,t){if(!e)throw new Error(t)}const l=(0,c.createContext)(null);const s=(0,c.createContext)(null);const i=(0,c.createContext)({outlet:null,matches:[]});function o(e){let{to:t,replace:a,state:n}=e;h()||r(!1);let l=v();return(0,c.useEffect)((()=>{l(t,{replace:a,state:n})})),null}function m(e){r(!1)}function p(e){let{basename:t="/",children:a=null,location:i,navigationType:o=n.rc.Pop,navigator:m,static:p=!1}=e;h()&&r(!1);let d=I(t),u=(0,c.useMemo)((()=>({basename:d,navigator:m,static:p})),[d,m,p]);"string"==typeof i&&(i=(0,n.Rr)(i));let{pathname:g="/",search:v="",hash:f="",state:E=null,key:A="default"}=i,y=(0,c.useMemo)((()=>{let e=z(g,d);return null==e?null:{pathname:e,search:v,hash:f,state:E,key:A}}),[d,g,v,f,E,A]);return null==y?null:(0,c.createElement)(l.Provider,{value:u},(0,c.createElement)(s.Provider,{children:a,value:{location:y,navigationType:o}}))}function d(e){let{children:t,location:a}=e;return function(e,t){h()||r(!1);let{matches:a}=(0,c.useContext)(i),l=a[a.length-1],s=l?l.params:{},o=(l&&l.pathname,l?l.pathnameBase:"/");l&&l.route;0;let m,p=g();if(t){var d;let e="string"==typeof t?(0,n.Rr)(t):t;"/"===o||(null==(d=e.pathname)?void 0:d.startsWith(o))||r(!1),m=e}else m=p;let u=m.pathname||"/",v="/"===o?u:u.slice(o.length)||"/",f=function(e,t,a){void 0===a&&(a="/");let c="string"==typeof t?(0,n.Rr)(t):t,r=z(c.pathname||"/",a);if(null==r)return null;let l=y(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let a=e.length===t.length&&e.slice(0,-1).every(((e,a)=>e===t[a]));return a?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(l);let s=null;for(let e=0;null==s&&eObject.assign({},e,{params:Object.assign({},s,e.params),pathname:P([o,e.pathname]),pathnameBase:"/"===e.pathnameBase?o:P([o,e.pathnameBase])}))),a)}(A(t),a)}function u(e){h()||r(!1);let{basename:t,navigator:a}=(0,c.useContext)(l),{hash:s,pathname:i,search:o}=E(e),m=i;if("/"!==t){let a=function(e){return""===e||""===e.pathname?"/":"string"==typeof e?(0,n.Rr)(e).pathname:e.pathname}(e),c=null!=a&&a.endsWith("/");m="/"===i?t+(c?"/":""):P([t,i])}return a.createHref({pathname:m,search:o,hash:s})}function h(){return null!=(0,c.useContext)(s)}function g(){return h()||r(!1),(0,c.useContext)(s).location}function v(){h()||r(!1);let{basename:e,navigator:t}=(0,c.useContext)(l),{matches:a}=(0,c.useContext)(i),{pathname:n}=g(),s=JSON.stringify(a.map((e=>e.pathnameBase))),o=(0,c.useRef)(!1);return(0,c.useEffect)((()=>{o.current=!0})),(0,c.useCallback)((function(a,c){if(void 0===c&&(c={}),!o.current)return;if("number"==typeof a)return void t.go(a);let r=L(a,JSON.parse(s),n);"/"!==e&&(r.pathname=P([e,r.pathname])),(c.replace?t.replace:t.push)(r,c.state)}),[e,t,s,n])}function f(){let{matches:e}=(0,c.useContext)(i),t=e[e.length-1];return t?t.params:{}}function E(e){let{matches:t}=(0,c.useContext)(i),{pathname:a}=g(),n=JSON.stringify(t.map((e=>e.pathnameBase)));return(0,c.useMemo)((()=>L(e,JSON.parse(n),a)),[e,n,a])}function A(e){let t=[];return c.Children.forEach(e,(e=>{if(!(0,c.isValidElement)(e))return;if(e.type===c.Fragment)return void t.push.apply(t,A(e.props.children));e.type!==m&&r(!1);let a={caseSensitive:e.props.caseSensitive,element:e.props.element,index:e.props.index,path:e.props.path};e.props.children&&(a.children=A(e.props.children)),t.push(a)})),t}function y(e,t,a,c){return void 0===t&&(t=[]),void 0===a&&(a=[]),void 0===c&&(c=""),e.forEach(((e,n)=>{let l={relativePath:e.path||"",caseSensitive:!0===e.caseSensitive,childrenIndex:n,route:e};l.relativePath.startsWith("/")&&(l.relativePath.startsWith(c)||r(!1),l.relativePath=l.relativePath.slice(c.length));let s=P([c,l.relativePath]),i=a.concat(l);e.children&&e.children.length>0&&(!0===e.index&&r(!1),y(e.children,t,i,s)),(null!=e.path||e.index)&&t.push({path:s,score:S(s,e.index),routesMeta:i})})),t}const w=/^:\w+$/,k=3,b=2,_=1,R=10,C=-2,j=e=>"*"===e;function S(e,t){let a=e.split("/"),c=a.length;return a.some(j)&&(c+=C),t&&(c+=b),a.filter((e=>!j(e))).reduce(((e,t)=>e+(w.test(t)?k:""===t?_:R)),c)}function x(e,t){let{routesMeta:a}=e,c={},n="/",r=[];for(let e=0;e(0,c.createElement)(i.Provider,{children:void 0!==n.route.element?n.route.element:a,value:{outlet:a,matches:t.concat(e.slice(0,r+1))}})),null)}function M(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[a,c]=function(e,t,a){void 0===t&&(t=!1);void 0===a&&(a=!0);let c=[],n="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/:(\w+)/g,((e,t)=>(c.push(t),"([^\\/]+)")));e.endsWith("*")?(c.push("*"),n+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n+=a?"\\/*$":"(?:(?=[.~-]|%[0-9A-F]{2})|\\b|\\/|$)";let r=new RegExp(n,t?void 0:"i");return[r,c]}(e.path,e.caseSensitive,e.end),n=t.match(a);if(!n)return null;let r=n[0],l=r.replace(/(.)\/+$/,"$1"),s=n.slice(1);return{params:c.reduce(((e,t,a)=>{if("*"===t){let e=s[a]||"";l=r.slice(0,r.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e){try{return decodeURIComponent(e)}catch(t){return e}}(s[a]||""),e}),{}),pathname:r,pathnameBase:l,pattern:e}}function L(e,t,a){let c,r="string"==typeof e?(0,n.Rr)(e):e,l=""===e||""===r.pathname?"/":r.pathname;if(null==l)c=a;else{let e=t.length-1;if(l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}c=e>=0?t[e]:"/"}let s=function(e,t){void 0===t&&(t="/");let{pathname:a,search:c="",hash:r=""}="string"==typeof e?(0,n.Rr)(e):e,l=a?a.startsWith("/")?a:function(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?a.length>1&&a.pop():"."!==e&&a.push(e)})),a.length>1?a.join("/"):"/"}(a,t):t;return{pathname:l,search:T(c),hash:V(r)}}(r,c);return l&&"/"!==l&&l.endsWith("/")&&!s.pathname.endsWith("/")&&(s.pathname+="/"),s}function z(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=e.charAt(t.length);return a&&"/"!==a?null:e.slice(t.length)||"/"}const P=e=>e.join("/").replace(/\/\/+/g,"/"),I=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),T=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",V=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:""},372:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(6941);const n=a.n(c)()("dops:analytics");let r,l;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const s={initialize:function(e,t,a){s.setUser(e,t),s.setSuperProps(a),s.identifyUser()},setGoogleAnalyticsEnabled:function(e,t=null){this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){l={ID:e,username:t}},setSuperProps:function(e){r=e},assignSuperProps:function(e){r=Object.assign(r||{},e)},mc:{bumpStat:function(e,t){const a=function(e,t){let a="";if("object"==typeof e){for(const t in e)a+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);n("Bumping stats %o",e)}else a="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),n('Bumping stat "%s" in group "%s"',t,e);return a}(e,t);s.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+a+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const a=function(e,t){let a="";if("object"==typeof e){for(const t in e)a+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);n("Built stats %o",e)}else a="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),n('Built stat "%s" in group "%s"',t,e);return a}(e,t);s.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+a+"&t="+Math.random())}},pageView:{record:function(e,t){s.tracks.recordPageView(e),s.ga.recordPageView(e,t)}},purchase:{record:function(e,t,a,c,n,r,l){s.ga.recordPurchase(e,t,a,c,n,r,l)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(r&&(n("- Super Props: %o",r),t=Object.assign(t,r)),n('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):n('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};s.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){s.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){n("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};s.ga.initialized||(l&&(e={userId:"u-"+l.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),s.ga.initialized=!0)},recordPageView:function(e,t){s.ga.initialize(),n("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),this.googleAnalyticsEnabled&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,a,c){s.ga.initialize();let r="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==a&&(r+=" [Option Label: "+a+"]"),void 0!==c&&(r+=" [Option Value: "+c+"]"),n(r),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,a,c)},recordPurchase:function(e,t,a,c,n,r,l){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:c,currency:l}),window.ga("ecommerce:addItem",{id:e,name:t,sku:a,price:n,quantity:r}),window.ga("ecommerce:send")}},identifyUser:function(){l&&window._tkq.push(["identifyUser",l.ID,l.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}},i=s},5932:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>p});var c=a(6439),n=a(3832);function r(e){class t extends Error{constructor(...t){super(...t),this.name=e}}return t}const l=r("JsonParseError"),s=r("JsonParseAfterRedirectError"),i=r("Api404Error"),o=r("Api404AfterRedirectError"),m=r("FetchNetworkError");const p=new function(e,t){let a=e,r=e,l={"X-WP-Nonce":t},s={credentials:"same-origin",headers:l},i={method:"post",credentials:"same-origin",headers:Object.assign({},l,{"Content-type":"application/json"})},o=function(e){const t=e.split("?"),a=t.length>1?t[1]:"",c=a.length?a.split("&"):[];return c.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+c.join("&")};const m={setApiRoot(e){a=e},setWpcomOriginApiUrl(e){r=e},setApiNonce(e){l={"X-WP-Nonce":e},s={credentials:"same-origin",headers:l},i={method:"post",credentials:"same-origin",headers:Object.assign({},l,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{o=e},registerSite:(e,t,n)=>{const r={registration_nonce:e,no_iframe:!0};return(0,c.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,c.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),n&&(r.from=n),h(`${a}jetpack/v4/connection/register`,i,{body:JSON.stringify(r)}).then(d).then(u)},fetchAuthorizationUrl:e=>p((0,n.addQueryArgs)(`${a}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),s).then(d).then(u),fetchSiteConnectionData:()=>p(`${a}jetpack/v4/connection/data`,s).then(u),fetchSiteConnectionStatus:()=>p(`${a}jetpack/v4/connection`,s).then(u),fetchSiteConnectionTest:()=>p(`${a}jetpack/v4/connection/test`,s).then(d).then(u),fetchUserConnectionData:()=>p(`${a}jetpack/v4/connection/data`,s).then(u),fetchUserTrackingSettings:()=>p(`${a}jetpack/v4/tracking/settings`,s).then(d).then(u),updateUserTrackingSettings:e=>h(`${a}jetpack/v4/tracking/settings`,i,{body:JSON.stringify(e)}).then(d).then(u),disconnectSite:()=>h(`${a}jetpack/v4/connection`,i,{body:JSON.stringify({isActive:!1})}).then(d).then(u),fetchConnectUrl:()=>p(`${a}jetpack/v4/connection/url`,s).then(d).then(u),unlinkUser:()=>h(`${a}jetpack/v4/connection/user`,i,{body:JSON.stringify({linked:!1})}).then(d).then(u),reconnect:()=>h(`${a}jetpack/v4/connection/reconnect`,i).then(d).then(u),fetchConnectedPlugins:()=>p(`${a}jetpack/v4/connection/plugins`,s).then(d).then(u),setHasSeenWCConnectionModal:()=>h(`${a}jetpack/v4/seen-wc-connection-modal`,i).then(d).then(u),fetchModules:()=>p(`${a}jetpack/v4/module/all`,s).then(d).then(u),fetchModule:e=>p(`${a}jetpack/v4/module/${e}`,s).then(d).then(u),activateModule:e=>h(`${a}jetpack/v4/module/${e}/active`,i,{body:JSON.stringify({active:!0})}).then(d).then(u),deactivateModule:e=>h(`${a}jetpack/v4/module/${e}/active`,i,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>h(`${a}jetpack/v4/module/${e}`,i,{body:JSON.stringify(t)}).then(d).then(u),updateSettings:e=>h(`${a}jetpack/v4/settings`,i,{body:JSON.stringify(e)}).then(d).then(u),getProtectCount:()=>p(`${a}jetpack/v4/module/protect/data`,s).then(d).then(u),resetOptions:e=>h(`${a}jetpack/v4/options/${e}`,i,{body:JSON.stringify({reset:!0})}).then(d).then(u),activateVaultPress:()=>h(`${a}jetpack/v4/plugins`,i,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(d).then(u),getVaultPressData:()=>p(`${a}jetpack/v4/module/vaultpress/data`,s).then(d).then(u),installPlugin:(e,t)=>{const c={slug:e,status:"active"};return t&&(c.source=t),h(`${a}jetpack/v4/plugins`,i,{body:JSON.stringify(c)}).then(d).then(u)},activateAkismet:()=>h(`${a}jetpack/v4/plugins`,i,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(d).then(u),getAkismetData:()=>p(`${a}jetpack/v4/module/akismet/data`,s).then(d).then(u),checkAkismetKey:()=>p(`${a}jetpack/v4/module/akismet/key/check`,s).then(d).then(u),checkAkismetKeyTyped:e=>h(`${a}jetpack/v4/module/akismet/key/check`,i,{body:JSON.stringify({api_key:e})}).then(d).then(u),fetchStatsData:e=>p(function(e){let t=`${a}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),s).then(d).then(u).then(v),getPluginUpdates:()=>p(`${a}jetpack/v4/updates/plugins`,s).then(d).then(u),getPlans:()=>p(`${a}jetpack/v4/plans`,s).then(d).then(u),fetchSettings:()=>p(`${a}jetpack/v4/settings`,s).then(d).then(u),updateSetting:e=>h(`${a}jetpack/v4/settings`,i,{body:JSON.stringify(e)}).then(d).then(u),fetchSiteData:()=>p(`${a}jetpack/v4/site`,s).then(d).then(u).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>p(`${a}jetpack/v4/site/features`,s).then(d).then(u).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>p(`${a}jetpack/v4/site/products`,s).then(d).then(u),fetchSitePurchases:()=>p(`${a}jetpack/v4/site/purchases`,s).then(d).then(u).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>p(`${a}jetpack/v4/site/benefits`,s).then(d).then(u).then((e=>JSON.parse(e.data))),fetchSiteDiscount:()=>p(`${a}jetpack/v4/site/discount`,s).then(d).then(u).then((e=>e.data)),fetchSetupQuestionnaire:()=>p(`${a}jetpack/v4/setup/questionnaire`,s).then(d).then(u),fetchRecommendationsData:()=>p(`${a}jetpack/v4/recommendations/data`,s).then(d).then(u),fetchRecommendationsProductSuggestions:()=>p(`${a}jetpack/v4/recommendations/product-suggestions`,s).then(d).then(u),fetchRecommendationsUpsell:()=>p(`${a}jetpack/v4/recommendations/upsell`,s).then(d).then(u),fetchRecommendationsConditional:()=>p(`${a}jetpack/v4/recommendations/conditional`,s).then(d).then(u),saveRecommendationsData:e=>h(`${a}jetpack/v4/recommendations/data`,i,{body:JSON.stringify({data:e})}).then(d),fetchProducts:()=>p(`${a}jetpack/v4/products`,s).then(d).then(u),fetchRewindStatus:()=>p(`${a}jetpack/v4/rewind`,s).then(d).then(u).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>p(`${a}jetpack/v4/scan`,s).then(d).then(u).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>h(`${a}jetpack/v4/notice/${e}`,i,{body:JSON.stringify({dismissed:!0})}).then(d).then(u),fetchPluginsData:()=>p(`${a}jetpack/v4/plugins`,s).then(d).then(u),fetchIntroOffers:()=>p(`${a}jetpack/v4/intro-offers`,s).then(d).then(u),fetchVerifySiteGoogleStatus:e=>p(null!==e?`${a}jetpack/v4/verify-site/google/${e}`:`${a}jetpack/v4/verify-site/google`,s).then(d).then(u),verifySiteGoogle:e=>h(`${a}jetpack/v4/verify-site/google`,i,{body:JSON.stringify({keyring_id:e})}).then(d).then(u),submitSurvey:e=>h(`${a}jetpack/v4/marketing/survey`,i,{body:JSON.stringify(e)}).then(d).then(u),saveSetupQuestionnaire:e=>h(`${a}jetpack/v4/setup/questionnaire`,i,{body:JSON.stringify(e)}).then(d).then(u),updateLicensingError:e=>h(`${a}jetpack/v4/licensing/error`,i,{body:JSON.stringify(e)}).then(d).then(u),updateLicenseKey:e=>h(`${a}jetpack/v4/licensing/set-license`,i,{body:JSON.stringify({license:e})}).then(d).then(u),getUserLicensesCounts:()=>p(`${a}jetpack/v4/licensing/user/counts`,s).then(d).then(u),getUserLicenses:()=>p(`${a}jetpack/v4/licensing/user/licenses`,s).then(d).then(u),updateLicensingActivationNoticeDismiss:e=>h(`${a}jetpack/v4/licensing/user/activation-notice-dismiss`,i,{body:JSON.stringify({last_detached_count:e})}).then(d).then(u),updateRecommendationsStep:e=>h(`${a}jetpack/v4/recommendations/step`,i,{body:JSON.stringify({step:e})}).then(d),confirmIDCSafeMode:()=>h(`${a}jetpack/v4/identity-crisis/confirm-safe-mode`,i).then(d),startIDCFresh:e=>h(`${a}jetpack/v4/identity-crisis/start-fresh`,i,{body:JSON.stringify({redirect_uri:e})}).then(d).then(u),migrateIDC:()=>h(`${a}jetpack/v4/identity-crisis/migrate`,i).then(d),attachLicenses:e=>h(`${a}jetpack/v4/licensing/attach-licenses`,i,{body:JSON.stringify({licenses:e})}).then(d).then(u),fetchSearchPlanInfo:()=>p(`${r}jetpack/v4/search/plan`,s).then(d).then(u),fetchSearchSettings:()=>p(`${r}jetpack/v4/search/settings`,s).then(d).then(u),updateSearchSettings:e=>h(`${r}jetpack/v4/search/settings`,i,{body:JSON.stringify(e)}).then(d).then(u),fetchSearchStats:()=>p(`${r}jetpack/v4/search/stats`,s).then(d).then(u),fetchWafSettings:()=>p(`${a}jetpack/v4/waf`,s).then(d).then(u),updateWafSettings:e=>h(`${a}jetpack/v4/waf`,i,{body:JSON.stringify(e)}).then(d).then(u),fetchWordAdsSettings:()=>p(`${a}jetpack/v4/wordads/settings`,s).then(d).then(u),updateWordAdsSettings:e=>h(`${a}jetpack/v4/wordads/settings`,i,{body:JSON.stringify(e)}),fetchSearchPricing:()=>p(`${r}jetpack/v4/search/pricing`,s).then(d).then(u),fetchMigrationStatus:()=>p(`${a}jetpack/v4/migration/status`,s).then(d).then(u),fetchBackupUndoEvent:()=>p(`${a}jetpack/v4/site/backup/undo-event`,s).then(d).then(u),fetchBackupPreflightStatus:()=>p(`${a}jetpack/v4/site/backup/preflight`,s).then(d).then(u)};function p(e,t){return fetch(o(e),t)}function h(e,t,a){return fetch(e,Object.assign({},t,a)).catch(g)}function v(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}Object.assign(this,m)};function d(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new o(e.redirected):new i})):e.json().catch((e=>h(e))).then((t=>{const a=new Error(`${t.message} (Status ${e.status})`);throw a.response=t,a.name="ApiError",a}))}function u(e){return e.json().catch((t=>h(t,e.redirected,e.url)))}function h(e,t,a){throw t?new s(a):new l}function g(){throw new m}},1330:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(6427),n=a(7723),r=a(991),l=a(1112),s=a(442),i=a(7425),o=a(723),m=a(8579);const __=n.__,p=({hideCloseButton:e=!1,title:t,children:a,step:p=null,totalSteps:d=null,buttonContent:u=null,buttonDisabled:h=!1,buttonHref:g=null,buttonExternalLink:v=!1,offset:f=32,onClose:E,onClick:A,...y})=>{const[w]=(0,s.A)("sm");if(!t||!a||!u)return null;y.position||(y.position=w?"top center":"middle right");const k={...y,offset:f,onClose:E},b=Number.isFinite(p)&&Number.isFinite(d);let _=null;return b&&(_=(0,n.sprintf)(/* translators: 1 Current step, 2 Total steps */
+__("%1$d of %2$d","jetpack-protect"),p,d)),React.createElement(c.Popover,k,React.createElement(o.Ay,null,React.createElement("div",{className:m.A.wrapper},React.createElement("div",{className:m.A.header},React.createElement(i.Ay,{variant:"title-small",className:m.A.title},t),!e&&React.createElement(React.Fragment,null,React.createElement(l.A,{size:"small",variant:"tertiary","aria-label":"close",className:m.A["close-button"],icon:r.A,iconSize:16,onClick:E}))),a,React.createElement("div",{className:m.A.footer},b&&React.createElement(i.Ay,{variant:"body",className:m.A.steps},_),React.createElement(l.A,{variant:"primary",className:m.A["action-button"],disabled:h,onClick:A,isExternalLink:v,href:g},u)))))}},2947:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var c=a(7723),n=a(3022),r=a(8250),l=a(7142),s=a(8509),i=a(5918),o=a(2021);const __=c.__,m=({children:e,moduleName:t=__("Jetpack","jetpack-protect"),moduleNameHref:a,showHeader:c=!0,showFooter:m=!0,showBackground:p=!0,header:d})=>{const u=(0,n.A)(o.A["admin-page"],{[o.A.background]:p});return React.createElement("div",{className:u},c&&React.createElement(i.A,{horizontalSpacing:5},React.createElement(s.A,null,d||React.createElement(l.A,null))),React.createElement(i.A,{fluid:!0,horizontalSpacing:0},React.createElement(s.A,null,e)),m&&React.createElement(i.A,{horizontalSpacing:5},React.createElement(s.A,null,React.createElement(r.A,{moduleName:t,moduleNameHref:a}))))}},766:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(1609),n=a.n(c),r=a(6888);const l=({children:e})=>n().createElement("div",{className:r.A["section-hero"]},e)},8907:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(6072),n=a.n(c),r=a(7723),l=a(3022),s=a(1609),i=a.n(s);const __=r.__,o=({title:e=__("An Automattic Airline","jetpack-protect"),height:t=7,className:a,...c})=>i().createElement("svg",n()({role:"img",x:"0",y:"0",viewBox:"0 0 935 38.2",enableBackground:"new 0 0 935 38.2","aria-labelledby":"jp-automattic-byline-logo-title",height:t,className:(0,l.A)("jp-automattic-byline-logo",a)},c),i().createElement("desc",{id:"jp-automattic-byline-logo-title"},e),i().createElement("path",{d:"M317.1 38.2c-12.6 0-20.7-9.1-20.7-18.5v-1.2c0-9.6 8.2-18.5 20.7-18.5 12.6 0 20.8 8.9 20.8 18.5v1.2C337.9 29.1 329.7 38.2 317.1 38.2zM331.2 18.6c0-6.9-5-13-14.1-13s-14 6.1-14 13v0.9c0 6.9 5 13.1 14 13.1s14.1-6.2 14.1-13.1V18.6zM175 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7L157 1.3h5.5L182 36.8H175zM159.7 8.2L152 23.1h15.7L159.7 8.2zM212.4 38.2c-12.7 0-18.7-6.9-18.7-16.2V1.3h6.6v20.9c0 6.6 4.3 10.5 12.5 10.5 8.4 0 11.9-3.9 11.9-10.5V1.3h6.7V22C231.4 30.8 225.8 38.2 212.4 38.2zM268.6 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H268.6zM397.3 36.8V8.7l-1.8 3.1 -14.9 25h-3.3l-14.7-25 -1.8-3.1v28.1h-6.5V1.3h9.2l14 24.4 1.7 3 1.7-3 13.9-24.4h9.1v35.5H397.3zM454.4 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7l19.2-35.5h5.5l19.5 35.5H454.4zM439.1 8.2l-7.7 14.9h15.7L439.1 8.2zM488.4 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H488.4zM537.3 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H537.3zM569.3 36.8V4.6c2.7 0 3.7-1.4 3.7-3.4h2.8v35.5L569.3 36.8 569.3 36.8zM628 11.3c-3.2-2.9-7.9-5.7-14.2-5.7 -9.5 0-14.8 6.5-14.8 13.3v0.7c0 6.7 5.4 13 15.3 13 5.9 0 10.8-2.8 13.9-5.7l4 4.2c-3.9 3.8-10.5 7.1-18.3 7.1 -13.4 0-21.6-8.7-21.6-18.3v-1.2c0-9.6 8.9-18.7 21.9-18.7 7.5 0 14.3 3.1 18 7.1L628 11.3zM321.5 12.4c1.2 0.8 1.5 2.4 0.8 3.6l-6.1 9.4c-0.8 1.2-2.4 1.6-3.6 0.8l0 0c-1.2-0.8-1.5-2.4-0.8-3.6l6.1-9.4C318.7 11.9 320.3 11.6 321.5 12.4L321.5 12.4z"}),i().createElement("path",{d:"M37.5 36.7l-4.7-8.9H11.7l-4.6 8.9H0L19.4 0.8H25l19.7 35.9H37.5zM22 7.8l-7.8 15.1h15.9L22 7.8zM82.8 36.7l-23.3-24 -2.3-2.5v26.6h-6.7v-36H57l22.6 24 2.3 2.6V0.8h6.7v35.9H82.8z"}),i().createElement("path",{d:"M719.9 37l-4.8-8.9H694l-4.6 8.9h-7.1l19.5-36h5.6l19.8 36H719.9zM704.4 8l-7.8 15.1h15.9L704.4 8zM733 37V1h6.8v36H733zM781 37c-1.8 0-2.6-2.5-2.9-5.8l-0.2-3.7c-0.2-3.6-1.7-5.1-8.4-5.1h-12.8V37H750V1h19.6c10.8 0 15.7 4.3 15.7 9.9 0 3.9-2 7.7-9 9 7 0.5 8.5 3.7 8.6 7.9l0.1 3c0.1 2.5 0.5 4.3 2.2 6.1V37H781zM778.5 11.8c0-2.6-2.1-5.1-7.9-5.1h-13.8v10.8h14.4c5 0 7.3-2.4 7.3-5.2V11.8zM794.8 37V1h6.8v30.4h28.2V37H794.8zM836.7 37V1h6.8v36H836.7zM886.2 37l-23.4-24.1 -2.3-2.5V37h-6.8V1h6.5l22.7 24.1 2.3 2.6V1h6.8v36H886.2zM902.3 37V1H935v5.6h-26v9.2h20v5.5h-20v10.1h26V37H902.3z"}))},1112:(e,t,a)=>{"use strict";a.d(t,{A:()=>h});var c=a(6072),n=a.n(c),r=a(6427),l=a(7723),s=a(1113),i=a(3512),o=a(3022),m=a(1609),p=a.n(m),d=a(2258);const __=l.__,u=(0,m.forwardRef)(((e,t)=>{const{children:a,variant:c="primary",size:l="normal",weight:m="bold",icon:u,iconSize:h,disabled:g,isDestructive:v,isLoading:f,isExternalLink:E,className:A,text:y,fullWidth:w,...k}=e,b=(0,o.A)(d.A.button,A,{[d.A.normal]:"normal"===l,[d.A.small]:"small"===l,[d.A.icon]:Boolean(u),[d.A.loading]:f,[d.A.regular]:"regular"===m,[d.A["full-width"]]:w,[d.A["is-icon-button"]]:Boolean(u)&&!a});k.ref=t;const _="normal"===l?20:16,R=E&&p().createElement(p().Fragment,null,p().createElement(s.A,{size:_,icon:i.A,className:d.A["external-icon"]}),p().createElement(r.VisuallyHidden,{as:"span"},/* translators: accessibility text */
+__("(opens in a new tab)","jetpack-protect"))),C=E?"_blank":void 0,j=a?.[0]&&null!==a[0]&&"components-tooltip"!==a?.[0]?.props?.className;return p().createElement(r.Button,n()({target:C,variant:c,className:(0,o.A)(b,{"has-text":!!u&&j}),icon:E?void 0:u,iconSize:h,disabled:g,"aria-disabled":g,isDestructive:v,text:y},k),f&&p().createElement(r.Spinner,null),p().createElement("span",null,a),R)}));u.displayName="Button";const h=u},4437:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(1113),n=a(1797),r=a(3022),l=a(597),s=a(7425),i=a(2127);const o=({description:e,cta:t,onClick:a,href:o,openInNewTab:m=!1,className:p,tooltipText:d=""})=>{const u=void 0!==o?"a":"button",h="a"===u?{href:o,...m&&{target:"_blank"}}:{onClick:a};return React.createElement("div",{className:(0,r.A)(i.A.cut,p)},React.createElement("div",null,React.createElement("div",null,React.createElement(s.Ay,{className:i.A.description},e),d&&React.createElement(l.A,{className:i.A.iconContainer,iconSize:16,offset:4},React.createElement(s.Ay,{variant:"body-small"},d))),React.createElement("div",null,React.createElement(u,h,React.createElement(s.Ay,{className:i.A.cta},t)))),React.createElement(c.A,{icon:n.A,className:i.A.icon,size:30}))}},1883:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(7723),n=a(3022),r=a(1609);a(3689);const __=c.__;class l extends r.Component{static defaultProps={"aria-hidden":"false",focusable:"true"};needsOffset(e,t){return["gridicons-arrow-left","gridicons-arrow-right","gridicons-calendar","gridicons-cart","gridicons-folder","gridicons-info","gridicons-info-outline","gridicons-posts","gridicons-star-outline","gridicons-star"].indexOf(e)>=0&&t%18==0}getSVGDescription(e){if("description"in this.props)return this.props.description;switch(e){default:return"";case"gridicons-audio":return __("Has audio.","jetpack-protect");case"gridicons-arrow-left":return __("Arrow left","jetpack-protect");case"gridicons-arrow-right":return __("Arrow right","jetpack-protect");case"gridicons-calendar":return __("Is an event.","jetpack-protect");case"gridicons-cart":return __("Is a product.","jetpack-protect");case"chevron-down":return __("Show filters","jetpack-protect");case"gridicons-comment":return __("Matching comment.","jetpack-protect");case"gridicons-cross":return __("Close.","jetpack-protect");case"gridicons-filter":return __("Toggle search filters.","jetpack-protect");case"gridicons-folder":return __("Category","jetpack-protect");case"gridicons-info":case"gridicons-info-outline":return __("Information.","jetpack-protect");case"gridicons-image-multiple":return __("Has multiple images.","jetpack-protect");case"gridicons-image":return __("Has an image.","jetpack-protect");case"gridicons-page":return __("Page","jetpack-protect");case"gridicons-post":return __("Post","jetpack-protect");case"gridicons-jetpack-search":case"gridicons-search":return __("Magnifying Glass","jetpack-protect");case"gridicons-tag":return __("Tag","jetpack-protect");case"gridicons-video":return __("Has a video.","jetpack-protect")}}renderIcon(e){switch(e){default:return null;case"gridicons-audio":return React.createElement("g",null,React.createElement("path",{d:"M8 4v10.184C7.686 14.072 7.353 14 7 14c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3V7h7v4.184c-.314-.112-.647-.184-1-.184-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3V4H8z"}));case"gridicons-arrow-left":return React.createElement("g",null,React.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}));case"gridicons-arrow-right":return React.createElement("g",null,React.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"}));case"gridicons-block":return React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM4 12c0-4.418 3.582-8 8-8 1.848 0 3.545.633 4.9 1.686L5.686 16.9C4.633 15.545 4 13.848 4 12zm8 8c-1.848 0-3.546-.633-4.9-1.686L18.314 7.1C19.367 8.455 20 10.152 20 12c0 4.418-3.582 8-8 8z"}));case"gridicons-calendar":return React.createElement("g",null,React.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.105 0-2 .896-2 2v13c0 1.104.895 2 2 2h14c1.104 0 2-.896 2-2V6c0-1.104-.896-2-2-2zm0 15H5V8h14v11z"}));case"gridicons-cart":return React.createElement("g",null,React.createElement("path",{d:"M9 20c0 1.1-.9 2-2 2s-1.99-.9-1.99-2S5.9 18 7 18s2 .9 2 2zm8-2c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm.396-5c.937 0 1.75-.65 1.952-1.566L21 5H7V4c0-1.105-.895-2-2-2H3v2h2v11c0 1.105.895 2 2 2h12c0-1.105-.895-2-2-2H7v-2h10.396z"}));case"gridicons-checkmark":return React.createElement("g",null,React.createElement("path",{d:"M11 17.768l-4.884-4.884 1.768-1.768L11 14.232l8.658-8.658C17.823 3.39 15.075 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-1.528-.353-2.97-.966-4.266L11 17.768z"}));case"gridicons-chevron-left":return React.createElement("g",null,React.createElement("path",{d:"M16.443 7.41L15.0399 6L9.06934 12L15.0399 18L16.443 16.59L11.8855 12L16.443 7.41Z"}));case"gridicons-chevron-right":return React.createElement("g",null,React.createElement("path",{d:"M10.2366 6L8.8335 7.41L13.391 12L8.8335 16.59L10.2366 18L16.2072 12L10.2366 6Z"}));case"gridicons-chevron-down":return React.createElement("g",null,React.createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"}));case"gridicons-comment":return React.createElement("g",null,React.createElement("path",{d:"M3 6v9c0 1.105.895 2 2 2h9v5l5.325-3.804c1.05-.75 1.675-1.963 1.675-3.254V6c0-1.105-.895-2-2-2H5c-1.105 0-2 .895-2 2z"}));case"gridicons-computer":return React.createElement("g",null,React.createElement("path",{d:"M20 2H4c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h6v2H7v2h10v-2h-3v-2h6c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm0 14H4V4h16v12z"}));case"gridicons-cross":return React.createElement("g",null,React.createElement("path",{d:"M18.36 19.78L12 13.41l-6.36 6.37-1.42-1.42L10.59 12 4.22 5.64l1.42-1.42L12 10.59l6.36-6.36 1.41 1.41L13.41 12l6.36 6.36z"}));case"gridicons-filter":return React.createElement("g",null,React.createElement("path",{d:"M10 19h4v-2h-4v2zm-4-6h12v-2H6v2zM3 5v2h18V5H3z"}));case"gridicons-folder":return React.createElement("g",null,React.createElement("path",{d:"M18 19H6c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2h7c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2z"}));case"gridicons-image":return React.createElement("g",null,React.createElement("path",{d:"M13 9.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5zM22 6v12c0 1.105-.895 2-2 2H4c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h16c1.105 0 2 .895 2 2zm-2 0H4v7.444L8 9l5.895 6.55 1.587-1.85c.798-.932 2.24-.932 3.037 0L20 15.426V6z"}));case"gridicons-image-multiple":return React.createElement("g",null,React.createElement("path",{d:"M15 7.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5S17.328 9 16.5 9 15 8.328 15 7.5zM4 20h14c0 1.105-.895 2-2 2H4c-1.1 0-2-.9-2-2V8c0-1.105.895-2 2-2v14zM22 4v12c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2V4c0-1.105.895-2 2-2h12c1.105 0 2 .895 2 2zM8 4v6.333L11 7l4.855 5.395.656-.73c.796-.886 2.183-.886 2.977 0l.513.57V4H8z"}));case"gridicons-info":return React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}));case"gridicons-info-outline":return React.createElement("g",null,React.createElement("path",{d:"M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8m0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z"}));case"gridicons-jetpack-search":return React.createElement("g",null,React.createElement("path",{d:"M0 9.257C0 4.15 4.151 0 9.257 0c5.105 0 9.256 4.151 9.256 9.257a9.218 9.218 0 01-2.251 6.045l.034.033h1.053L24 22.01l-1.986 1.989-6.664-6.662v-1.055l-.033-.033a9.218 9.218 0 01-6.06 2.264C4.15 18.513 0 14.362 0 9.257zm4.169 1.537h4.61V1.82l-4.61 8.973zm5.547-3.092v8.974l4.61-8.974h-4.61z"}));case"gridicons-phone":return React.createElement("g",null,React.createElement("path",{d:"M16 2H8c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h8c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-3 19h-2v-1h2v1zm3-2H8V5h8v14z"}));case"gridicons-pages":return React.createElement("g",null,React.createElement("path",{d:"M16 8H8V6h8v2zm0 2H8v2h8v-2zm4-6v12l-6 6H6c-1.105 0-2-.895-2-2V4c0-1.105.895-2 2-2h12c1.105 0 2 .895 2 2zm-2 10V4H6v16h6v-4c0-1.105.895-2 2-2h4z"}));case"gridicons-posts":return React.createElement("g",null,React.createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"}));case"gridicons-search":return React.createElement("g",null,React.createElement("path",{d:"M21 19l-5.154-5.154C16.574 12.742 17 11.42 17 10c0-3.866-3.134-7-7-7s-7 3.134-7 7 3.134 7 7 7c1.42 0 2.742-.426 3.846-1.154L19 21l2-2zM5 10c0-2.757 2.243-5 5-5s5 2.243 5 5-2.243 5-5 5-5-2.243-5-5z"}));case"gridicons-star-outline":return React.createElement("g",null,React.createElement("path",{d:"M12 6.308l1.176 3.167.347.936.997.042 3.374.14-2.647 2.09-.784.62.27.963.91 3.25-2.813-1.872-.83-.553-.83.552-2.814 1.87.91-3.248.27-.962-.783-.62-2.648-2.092 3.374-.14.996-.04.347-.936L12 6.308M12 2L9.418 8.953 2 9.257l5.822 4.602L5.82 21 12 16.89 18.18 21l-2.002-7.14L22 9.256l-7.418-.305L12 2z"}));case"gridicons-star":return React.createElement("g",null,React.createElement("path",{d:"M12 2l2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304"}));case"gridicons-tag":return React.createElement("g",null,React.createElement("path",{d:"M20 2.007h-7.087c-.53 0-1.04.21-1.414.586L2.592 11.5c-.78.78-.78 2.046 0 2.827l7.086 7.086c.78.78 2.046.78 2.827 0l8.906-8.906c.376-.374.587-.883.587-1.413V4.007c0-1.105-.895-2-2-2zM17.007 9c-1.105 0-2-.895-2-2s.895-2 2-2 2 .895 2 2-.895 2-2 2z"}));case"gridicons-video":return React.createElement("g",null,React.createElement("path",{d:"M20 4v2h-2V4H6v2H4V4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2v-2h2v2h12v-2h2v2c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zM6 16H4v-3h2v3zm0-5H4V8h2v3zm4 4V9l4.5 3-4.5 3zm10 1h-2v-3h2v3zm0-5h-2V8h2v3z"}));case"gridicons-lock":return React.createElement(React.Fragment,null,React.createElement("g",{id:"lock"},React.createElement("path",{d:"M18,8h-1V7c0-2.757-2.243-5-5-5S7,4.243,7,7v1H6c-1.105,0-2,0.895-2,2v10c0,1.105,0.895,2,2,2h12c1.105,0,2-0.895,2-2V10 C20,8.895,19.105,8,18,8z M9,7c0-1.654,1.346-3,3-3s3,1.346,3,3v1H9V7z M13,15.723V18h-2v-2.277c-0.595-0.346-1-0.984-1-1.723 c0-1.105,0.895-2,2-2s2,0.895,2,2C14,14.738,13.595,15.376,13,15.723z"})),React.createElement("g",{id:"Layer_1"}));case"gridicons-external":return React.createElement("g",null,React.createElement("path",{d:"M19 13v6c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h6v2H5v12h12v-6h2zM13 3v2h4.586l-7.793 7.793 1.414 1.414L19 6.414V11h2V3h-8z"}))}}render(){const{size:e=24,className:t=""}=this.props,a=this.props.height||e,c=this.props.width||e,r=this.props.style||{height:a,width:c},l="gridicons-"+this.props.icon,s=(0,n.A)("gridicon",l,t,{"needs-offset":this.needsOffset(l,e)}),i=this.getSVGDescription(l);return React.createElement("svg",{className:s,focusable:this.props.focusable,height:a,onClick:this.props.onClick,style:r,viewBox:"0 0 24 24",width:c,xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.props["aria-hidden"]},i?React.createElement("desc",null,i):null,this.renderIcon(l))}}const s=l},597:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var c=a(6427),n=a(3022),r=a(1609),l=a.n(r),s=a(1112),i=a(1883);a(4803);const o=e=>({"top-end":"top left",top:"top center","top-start":"top right","bottom-end":"bottom left",bottom:"bottom center","bottom-start":"bottom right"}[e]),m=({className:e="",iconClassName:t="",placement:a="bottom-end",animate:m=!0,iconCode:p="info-outline",iconSize:d=18,offset:u=10,title:h,children:g,popoverAnchorStyle:v="icon",forceShow:f=!1,wide:E=!1,inline:A=!0,shift:y=!1})=>{const[w,k]=(0,r.useState)(!1),b=(0,r.useCallback)((()=>k(!1)),[k]),_=(0,r.useCallback)((e=>{e.preventDefault(),k(!w)}),[w,k]),R={position:o(a),placement:a,animate:m,noArrow:!1,resize:!1,flip:!1,offset:u,focusOnMount:"container",onClose:b,className:"icon-tooltip-container",inline:A,shift:y},C="wrapper"===v,j=(0,n.A)("icon-tooltip-wrapper",e),S={left:C?0:-(62-d/2)+"px"},x=C&&f;return l().createElement("div",{className:j,"data-testid":"icon-tooltip_wrapper"},!C&&l().createElement(s.A,{variant:"link",onMouseDown:_},l().createElement(i.A,{className:t,icon:p,size:d})),l().createElement("div",{className:(0,n.A)("icon-tooltip-helper",{"is-wide":E}),style:S},(x||w)&&l().createElement(c.Popover,R,l().createElement("div",null,h&&l().createElement("div",{className:"icon-tooltip-title"},h),l().createElement("div",{className:"icon-tooltip-content"},g)))))}},8478:(e,t,a)=>{"use strict";a.d(t,{Wy:()=>m});var c=a(6072),n=a.n(c),r=a(6427),l=a(3022),s=(a(4705),a(2300));const i=({className:e,size:t=24,viewBox:a="0 0 24 24",opacity:c=1,color:i="#2C3338",children:o})=>{const m={className:(0,l.A)(s.A.iconWrapper,e),width:t,height:t,viewBox:a,opacity:c,fill:void 0};return i&&(m.fill=i),React.createElement(r.SVG,n()({},m,{fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg"}),React.createElement(r.G,{opacity:c},o))},o={...{"anti-spam":({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M13.2,4.7l4.7,12.8c0.4,1.1,1,1.5,2.1,1.6c0.1,0,0.1,0,0.1,0l0.1,0.1l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1 s0,0.1-0.1,0.1c-0.1,0-0.1,0.1-0.1,0.1s-0.1,0-0.2,0h-5.1c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1 c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1l0.1-0.1c0,0,0.1,0,0.2,0c0.5,0,1.1-0.2,1.1-0.8c0-0.3-0.1-0.5-0.2-0.8l-1.1-3.1 c-0.1-0.2-0.1-0.2-0.2-0.2h-4.3c-0.7,0-1.5,0-1.9,0.9l-1.1,2.4C7.1,17.6,7,17.8,7,18.1c0,0.8,1,0.9,1.6,0.9c0.1,0,0.1,0,0.2,0 L8.8,19l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1s-0.1,0.1-0.1,0.1l-0.1,0.1c-0.1,0-0.1,0-0.2,0H4.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1L4,19c0,0,0.1,0,0.1,0C5.2,19,5.5,18.5,6,17.5 l5.4-12.4c0.2-0.5,0.8-1,1.3-1C13,4.2,13.1,4.4,13.2,4.7z M9.1,13.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0.1,0.1,0.1,0.1h4.4 c0.3,0,0.4-0.1,0.4-0.3c0-0.1,0-0.2-0.1-0.3l-1.2-3.5c-0.3-0.8-0.8-1.9-0.8-2.7c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.1,0.1 c-0.1,0.6-0.4,1.2-0.7,1.7L9.1,13.1z"}),React.createElement(r.Path,{d:"M13.2,4.7l4.7,12.8c0.4,1.1,1,1.5,2.1,1.6c0.1,0,0.1,0,0.1,0l0.1,0.1l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1 s0,0.1-0.1,0.1c-0.1,0-0.1,0.1-0.1,0.1s-0.1,0-0.2,0h-5.1c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1 c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1l0.1-0.1c0,0,0.1,0,0.2,0c0.5,0,1.1-0.2,1.1-0.8c0-0.3-0.1-0.5-0.2-0.8l-1.1-3.1 c-0.1-0.2-0.1-0.2-0.2-0.2h-4.3c-0.7,0-1.5,0-1.9,0.9l-1.1,2.4C7.1,17.6,7,17.8,7,18.1c0,0.8,1,0.9,1.6,0.9c0.1,0,0.1,0,0.2,0 L8.8,19l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1s-0.1,0.1-0.1,0.1l-0.1,0.1c-0.1,0-0.1,0-0.2,0H4.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1L4,19c0,0,0.1,0,0.1,0C5.2,19,5.5,18.5,6,17.5 l5.4-12.4c0.2-0.5,0.8-1,1.3-1C13,4.2,13.1,4.4,13.2,4.7z M9.1,13.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0.1,0.1,0.1,0.1h4.4 c0.3,0,0.4-0.1,0.4-0.3c0-0.1,0-0.2-0.1-0.3l-1.2-3.5c-0.3-0.8-0.8-1.9-0.8-2.7c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.1,0.1 c-0.1,0.6-0.4,1.2-0.7,1.7L9.1,13.1z"}),React.createElement(r.Path,{d:"M21.6,12.5c0,0.6-0.3,1-0.9,1c-0.6,0-0.8-0.3-0.8-0.8c0-0.6,0.4-1,0.9-1C21.3,11.7,21.6,12.1,21.6,12.5z"}),React.createElement(r.Path,{d:"M4.1,12.5c0,0.6-0.3,1-0.9,1s-0.8-0.3-0.8-0.8c0-0.6,0.4-1,0.9-1S4.1,12.1,4.1,12.5z"})),backup:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M2.1,5.8c0-0.1,0-0.1,0-0.2c0-0.2,0.1-0.5,0.1-0.7c0.1-0.4,0.4-0.6,0.7-0.8l8.3-2.9c0.1-0.1,0.3-0.1,0.4-0.1l0.5,0.1 l8.3,2.9c0.3,0.2,0.5,0.4,0.7,0.7c0.2,0.2,0.2,0.4,0.2,0.7c0,0.1,0,0.1,0,0.2v0.1c-0.1,0.5-0.2,0.9-0.3,1.4 c-0.2,0.4-0.3,1.2-0.7,2.2c-0.3,1-0.7,2.1-1.1,3.1c-0.5,1-1,2.1-1.6,3.3s-1.4,2.3-2.2,3.5c-0.9,1.1-1.8,2.2-2.8,3.1 c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4c-1.2-1.1-2.4-2.4-3.5-4c-1-1.6-1.9-3-2.5-4.3c-0.6-1.3-1.1-2.7-1.6-4 C2.8,8.7,2.5,7.6,2.3,7C2.3,6.5,2.1,6.1,2.1,5.8z M2.9,5.9c0,0.2,0.1,0.4,0.1,0.8C3.1,7,3.2,7.5,3.5,8.2C3.7,9,3.9,9.7,4.2,10.6 c0.3,0.7,0.7,1.7,1.1,2.7c0.4,1,1,2,1.5,2.9c0.5,1,1.2,1.9,1.9,2.9c0.8,1,1.6,1.9,2.4,2.6c0.2,0.2,0.4,0.2,0.5,0.2 c0.2,0,0.4-0.1,0.5-0.2c1.2-1,2.2-2.3,3.2-3.8c1-1.5,1.8-2.8,2.3-4c0.6-1.3,1.1-2.5,1.5-3.9c0.4-1.3,0.7-2.2,0.9-2.8 c0.1-0.5,0.2-1,0.3-1.3c0-0.1,0-0.1,0-0.1c0-0.2,0-0.3-0.1-0.4C20.3,5.2,20.2,5.1,20,5L12,2.1c0,0-0.1,0-0.2,0s-0.1,0-0.1,0h-0.2 l-8,2.8C3.2,5,3.1,5.2,3,5.3C2.9,5.5,2.9,5.6,2.9,5.8C2.9,5.8,2.9,5.8,2.9,5.9z M5.9,6.7h3l2.8,7l2.8-7h3c-0.1,0.1-0.2,0.5-0.3,0.8 C17,7.8,17,8.2,16.8,8.4c-0.1,0.3-0.2,0.5-0.4,0.8c0,0.1-0.1,0.1-0.1,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.2,0.1-0.2,0.2c0,0-0.1,0.1-0.1,0.1s-0.1,0.1-0.1,0.1c0,0,0,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.1l-0.4,1.1 c-1.3,3.3-2.1,5.2-2.3,5.8h-2.2l-1-2.4c-0.1-0.3-0.3-0.8-0.5-1.3c-0.1-0.3-0.3-0.8-0.5-1.3L8,10.8c-0.1-0.1-0.1-0.2-0.1-0.4 C7.8,10.2,7.7,10,7.7,9.8C7.6,9.7,7.5,9.5,7.4,9.4C7.3,9.3,7.3,9.3,7.3,9.3c-0.1,0-0.2,0-0.2,0s-0.1,0-0.1,0 C6.6,8.5,6.3,7.6,5.9,6.7z"})),boost:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.19505 16.2545C4.47368 16.561 4.94802 16.5836 5.25451 16.3049L10.2595 11.7549L14.2842 15.2765L19 10.5607V13.75H20.5V9.5V8.75239V8.7476V8H19.7529H19.7471H19H14.75V9.5H17.9393L14.2158 13.2235L10.2405 9.74507L4.2455 15.195C3.93901 15.4737 3.91642 15.948 4.19505 16.2545Z"})),crm:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M15.5 9.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 1.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm-2.25 6v-2a2.75 2.75 0 0 0-2.75-2.75h-4A2.75 2.75 0 0 0 3.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5Zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0 1 20.25 15ZM9.5 8.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm1.5 0a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z"})),extras:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M18.5 5.5V8H20V5.5h2.5V4H20V1.5h-1.5V4H16v1.5h2.5ZM12 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6h-1.5v6a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h6V4Z"})),protect:({opacity:e=1,size:t,className:a,color:c})=>React.createElement(i,{className:a,size:t,opacity:e,color:c},React.createElement(r.Path,{d:"M12 3.17627L18.75 6.24445V10.8183C18.75 14.7173 16.2458 18.4089 12.7147 19.5735C12.2507 19.7265 11.7493 19.7265 11.2853 19.5735C7.75416 18.4089 5.25 14.7173 5.25 10.8183V6.24445L12 3.17627ZM6.75 7.21032V10.8183C6.75 14.1312 8.89514 17.2057 11.7551 18.149C11.914 18.2014 12.086 18.2014 12.2449 18.149C15.1049 17.2057 17.25 14.1312 17.25 10.8183V7.21032L12 4.82396L6.75 7.21032Z"}),React.createElement(r.Path,{d:"M15.5291 10.0315L11.1818 14.358L8.47095 11.66L9.52907 10.5968L11.1818 12.2417L14.4709 8.96826L15.5291 10.0315Z"})),scan:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"m12 3.176 6.75 3.068v4.574c0 3.9-2.504 7.59-6.035 8.755a2.283 2.283 0 0 1-1.43 0c-3.53-1.164-6.035-4.856-6.035-8.755V6.244L12 3.176ZM6.75 7.21v3.608c0 3.313 2.145 6.388 5.005 7.33.159.053.331.053.49 0 2.86-.942 5.005-4.017 5.005-7.33V7.21L12 4.824 6.75 7.21Z"})),search:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M17.5 11.5a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm1.5 0a5.5 5.5 0 0 1-9.142 4.121l-3.364 2.943-.988-1.128 3.373-2.952A5.5 5.5 0 1 1 19 11.5Z"})),social:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M15.5 3.97809V18.0219L7.5 15.5977V20H6V15.1431L3.27498 14.3173C2.22086 13.9979 1.5 13.0262 1.5 11.9248V10.0752C1.5 8.97375 2.22087 8.00207 3.27498 7.68264L15.5 3.97809ZM14 16L7.5 14.0303L7.5 7.96969L14 5.99999V16ZM6 8.42423L6 13.5757L3.70999 12.8818C3.28835 12.754 3 12.3654 3 11.9248V10.0752C3 9.63462 3.28835 9.24595 3.70999 9.11818L6 8.42423ZM17.5 11.75H21.5V10.25H17.5V11.75ZM21.5 16L17.5 15V13.5L21.5 14.5V16ZM17.5 8.5L21.5 7.5V6L17.5 7V8.5Z"})),star:({size:e,className:t=s.A["star-icon"],color:a})=>React.createElement(i,{className:t,size:e,color:a},React.createElement(r.Path,{d:"M12 2l2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304"})),videopress:({opacity:e=1,size:t,color:a})=>React.createElement(i,{size:t,opacity:e,color:a},React.createElement(r.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.3,6.2c0.8,0,1.6,0.6,1.8,1.4l2.3,7.9c0,0,0,0,0,0l2.7-9.3h1.5h4.2c2.9,0,4.9,1.9,4.9,4.7c0,2.9-2,4.7-5,4.7 h-2h-2.5l-0.5,1.5c-0.4,1.4-1.7,2.3-3.2,2.3c-1.4,0-2.7-0.9-3.2-2.3L2.5,8.7C2.1,7.4,3,6.2,4.3,6.2z M13,12.8h2.9c1.3,0,2-0.7,2-1.9 c0-1.2-0.8-1.8-2-1.8h-1.7L13,12.8z"})),jetpack:({size:e,className:t=s.A.jetpack,color:a})=>React.createElement(i,{className:t,size:e,color:a,viewBox:"0 0 32 32"},React.createElement(r.Path,{className:"jetpack-logo__icon-circle",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),React.createElement(r.Polygon,{fill:"#fff",points:"15,19 7,19 15,3"}),React.createElement(r.Polygon,{fill:"#fff",points:"17,29 17,13 25,13"})),share:({size:e=16,className:t,color:a})=>React.createElement(i,{className:t,size:e,color:a,viewBox:"0 0 16 16"},React.createElement(r.Path,{fill:"#161722",fillRule:"evenodd",d:"M8.3 4.66C3.85 5.308.727 9.75.034 13.69l-.02.117c-.137.842.809 1.232 1.446.68 2.013-1.745 3.648-2.475 5.318-2.719a10.482 10.482 0 011.524-.103v2.792c0 .694.82 1.041 1.3.55l6.176-6.307a.79.79 0 00.012-1.088L9.614 1.004C9.14.496 8.301.84 8.301 1.542v3.117zm1.525-1.175v1.85a.773.773 0 01-.654.77l-.655.096c-2.133.311-3.987 1.732-5.295 3.672-.472.7-.854 1.44-1.143 2.18a12.32 12.32 0 011.675-.972c1.58-.75 3.048-.972 4.548-.972h.762a.77.77 0 01.762.779v1.69l4.347-4.44-4.347-4.653z",clipRule:"evenodd"})),ai:({size:e=24,color:t="#069e08"})=>React.createElement(i,{color:t,size:e,viewBox:"0 0 32 32"},React.createElement(r.Path,{className:"spark-first",d:"M9.33301 5.33325L10.4644 8.20188L13.333 9.33325L10.4644 10.4646L9.33301 13.3333L8.20164 10.4646L5.33301 9.33325L8.20164 8.20188L9.33301 5.33325Z"}),React.createElement(r.Path,{className:"spark-second",d:"M21.3333 5.33333L22.8418 9.15817L26.6667 10.6667L22.8418 12.1752L21.3333 16L19.8248 12.1752L16 10.6667L19.8248 9.15817L21.3333 5.33333Z"}),React.createElement(r.Path,{className:"spark-third",d:"M14.6667 13.3333L16.5523 18.1144L21.3333 20L16.5523 21.8856L14.6667 26.6667L12.781 21.8856L8 20L12.781 18.1144L14.6667 13.3333Z"}))}};function m(e){return o[e]?o[e]:null}},8250:(e,t,a)=>{"use strict";a.d(t,{A:()=>y});var c=a(6072),n=a.n(c),r=a(7143),l=a(7723),s=a(1113),i=a(3512),o=a(3022),m=a(1609),p=a.n(m),d=a(3924),u=a(4293),h=a(1069),g=a(8907),v=(a(4206),a(7142)),f=a(442);const __=l.__,_x=l._x,E=()=>p().createElement(v.A,{logoColor:"#000",showText:!1,height:16,"aria-hidden":"true"}),A=()=>p().createElement(p().Fragment,null,p().createElement(s.A,{icon:i.A,size:16}),p().createElement("span",{className:"jp-dashboard-footer__accessible-external-link"},/* translators: accessibility text */
+__("(opens in a new tab)","jetpack-protect"))),y=({moduleName:e=__("Jetpack","jetpack-protect"),className:t,moduleNameHref:a="https://jetpack.com",menu:c,onAboutClick:l,onPrivacyClick:s,onTermsClick:i,...m})=>{const[v]=(0,f.A)("sm","<="),[y]=(0,f.A)("md","<="),[w]=(0,f.A)("lg",">"),{isActive:k,connectedPlugins:b}=(0,r.useSelect)((e=>{const t=e(u.a);return{connectedPlugins:t?.getConnectedPlugins(),...t.getConnectionStatus()}}),[u.a]),_=(0,h.A)(),R=_&&k&&b?.some((({slug:e})=>"jetpack"===e));let C=[{label:_x("About","Link to learn more about Jetpack.","jetpack-protect"),title:__("About Jetpack","jetpack-protect"),href:R?new URL("admin.php?page=jetpack_about",_).href:(0,d.A)("jetpack-about"),target:R?"_self":"_blank",onClick:l},{label:_x("Privacy","Shorthand for Privacy Policy.","jetpack-protect"),title:__("Automattic's Privacy Policy","jetpack-protect"),href:R?new URL("admin.php?page=jetpack#/privacy",_).href:(0,d.A)("a8c-privacy"),target:R?"_self":"_blank",onClick:s},{label:_x("Terms","Shorthand for Terms of Service.","jetpack-protect"),title:__("WordPress.com Terms of Service","jetpack-protect"),href:(0,d.A)("wpcom-tos"),target:"_blank",onClick:i}];c&&(C=[...C,...c]);const j=p().createElement(p().Fragment,null,p().createElement(E,null),e);return p().createElement("footer",n()({className:(0,o.A)("jp-dashboard-footer",{"is-sm":v,"is-md":y,"is-lg":w},t),"aria-label":__("Jetpack","jetpack-protect")},m),p().createElement("ul",null,p().createElement("li",{className:"jp-dashboard-footer__jp-item"},a?p().createElement("a",{href:a},j):j),C.map((e=>{const t="button"===e.role,a=!t&&"_blank"===e.target;return p().createElement("li",{key:e.label},p().createElement("a",{href:e.href,title:e.title,target:e.target,onClick:e.onClick,onKeyDown:e.onKeyDown,className:(0,o.A)("jp-dashboard-footer__menu-item",{"is-external":a}),role:e.role,rel:a?"noopener noreferrer":void 0,tabIndex:t?0:void 0},e.label,a&&p().createElement(A,null)))})),p().createElement("li",{className:"jp-dashboard-footer__a8c-item"},p().createElement("a",{href:R?new URL("admin.php?page=jetpack_about",_).href:(0,d.A)("a8c-about"),"aria-label":__("An Automattic Airline","jetpack-protect")},p().createElement(g.A,{"aria-hidden":"true"})))))}},7142:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(6072),n=a.n(c),r=a(7723),l=a(3022),s=a(1609),i=a.n(s);const __=r.__,o=({logoColor:e="#069e08",showText:t=!0,className:a,height:c=32,...r})=>{const s=t?"0 0 118 32":"0 0 32 32";return i().createElement("svg",n()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:s,className:(0,l.A)("jetpack-logo",a),"aria-labelledby":"jetpack-logo-title",height:c},r,{role:"img"}),i().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack-protect")),i().createElement("path",{fill:e,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M15,19H7l8-16V19z M17,29V13h8L17,29z"}),t&&i().createElement(i().Fragment,null,i().createElement("path",{d:"M41.3,26.6c-0.5-0.7-0.9-1.4-1.3-2.1c2.3-1.4,3-2.5,3-4.6V8h-3V6h6v13.4C46,22.8,45,24.8,41.3,26.6z"}),i().createElement("path",{d:"M65,18.4c0,1.1,0.8,1.3,1.4,1.3c0.5,0,2-0.2,2.6-0.4v2.1c-0.9,0.3-2.5,0.5-3.7,0.5c-1.5,0-3.2-0.5-3.2-3.1V12H60v-2h2.1V7.1 H65V10h4v2h-4V18.4z"}),i().createElement("path",{d:"M71,10h3v1.3c1.1-0.8,1.9-1.3,3.3-1.3c2.5,0,4.5,1.8,4.5,5.6s-2.2,6.3-5.8,6.3c-0.9,0-1.3-0.1-2-0.3V28h-3V10z M76.5,12.3 c-0.8,0-1.6,0.4-2.5,1.2v5.9c0.6,0.1,0.9,0.2,1.8,0.2c2,0,3.2-1.3,3.2-3.9C79,13.4,78.1,12.3,76.5,12.3z"}),i().createElement("path",{d:"M93,22h-3v-1.5c-0.9,0.7-1.9,1.5-3.5,1.5c-1.5,0-3.1-1.1-3.1-3.2c0-2.9,2.5-3.4,4.2-3.7l2.4-0.3v-0.3c0-1.5-0.5-2.3-2-2.3 c-0.7,0-2.3,0.5-3.7,1.1L84,11c1.2-0.4,3-1,4.4-1c2.7,0,4.6,1.4,4.6,4.7L93,22z M90,16.4l-2.2,0.4c-0.7,0.1-1.4,0.5-1.4,1.6 c0,0.9,0.5,1.4,1.3,1.4s1.5-0.5,2.3-1V16.4z"}),i().createElement("path",{d:"M104.5,21.3c-1.1,0.4-2.2,0.6-3.5,0.6c-4.2,0-5.9-2.4-5.9-5.9c0-3.7,2.3-6,6.1-6c1.4,0,2.3,0.2,3.2,0.5V13 c-0.8-0.3-2-0.6-3.2-0.6c-1.7,0-3.2,0.9-3.2,3.6c0,2.9,1.5,3.8,3.3,3.8c0.9,0,1.9-0.2,3.2-0.7V21.3z"}),i().createElement("path",{d:"M110,15.2c0.2-0.3,0.2-0.8,3.8-5.2h3.7l-4.6,5.7l5,6.3h-3.7l-4.2-5.8V22h-3V6h3V15.2z"}),i().createElement("path",{d:"M58.5,21.3c-1.5,0.5-2.7,0.6-4.2,0.6c-3.6,0-5.8-1.8-5.8-6c0-3.1,1.9-5.9,5.5-5.9s4.9,2.5,4.9,4.9c0,0.8,0,1.5-0.1,2h-7.3 c0.1,2.5,1.5,2.8,3.6,2.8c1.1,0,2.2-0.3,3.4-0.7C58.5,19,58.5,21.3,58.5,21.3z M56,15c0-1.4-0.5-2.9-2-2.9c-1.4,0-2.3,1.3-2.4,2.9 C51.6,15,56,15,56,15z"})))}},8509:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(3022),n=a(1609),r=a(7371);const l=Number(r.A.smCols),s=Number(r.A.mdCols),i=Number(r.A.lgCols),o=e=>{const{children:t,tagName:a="div",className:o}=e,m=Math.min(l,"number"==typeof e.sm?e.sm:l),p=Math.min(l,"object"==typeof e.sm?e.sm.start:0),d=Math.min(l,"object"==typeof e.sm?e.sm.end:0),u=Math.min(s,"number"==typeof e.md?e.md:s),h=Math.min(s,"object"==typeof e.md?e.md.start:0),g=Math.min(s,"object"==typeof e.md?e.md.end:0),v=Math.min(i,"number"==typeof e.lg?e.lg:i),f=Math.min(i,"object"==typeof e.lg?e.lg.start:0),E=Math.min(i,"object"==typeof e.lg?e.lg.end:0),A=(0,c.A)(o,{[r.A[`col-sm-${m}`]]:!(p&&d),[r.A[`col-sm-${p}-start`]]:p>0,[r.A[`col-sm-${d}-end`]]:d>0,[r.A[`col-md-${u}`]]:!(h&&g),[r.A[`col-md-${h}-start`]]:h>0,[r.A[`col-md-${g}-end`]]:g>0,[r.A[`col-lg-${v}`]]:!(f&&E),[r.A[`col-lg-${f}-start`]]:f>0,[r.A[`col-lg-${E}-end`]]:E>0});return(0,n.createElement)(a,{className:A},t)}},5918:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(3022),n=a(1609),r=a(2420);const l=({children:e,fluid:t=!1,tagName:a="div",className:l,horizontalGap:s=1,horizontalSpacing:i=1})=>{const o=(0,n.useMemo)((()=>{const e=`calc( var(--horizontal-spacing) * ${i} )`;return{paddingTop:e,paddingBottom:e,rowGap:`calc( var(--horizontal-spacing) * ${s} )`}}),[s,i]),m=(0,c.A)(l,r.A.container,{[r.A.fluid]:t});return(0,n.createElement)(a,{className:m,style:o},e)}},442:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(9491),n=a(8403);const r=["sm","md","lg"],l=(e,t)=>{const a=Array.isArray(e)?e:[e],l=Array.isArray(t)?t:[t],[s,i,o]=r,m={sm:(0,c.useMediaQuery)(n.A[s]),md:(0,c.useMediaQuery)(n.A[i]),lg:(0,c.useMediaQuery)(n.A[o])};return a.map(((e,t)=>{const a=l[t];return a?((e,t,a)=>{const c=r.indexOf(e),n=c+1,l=t.includes("=");let s=[];return t.startsWith("<")&&(s=r.slice(0,l?n:c)),t.startsWith(">")&&(s=r.slice(l?c:n)),s?.length?s.some((e=>a[e])):a[e]})(e,a,m):m[e]}))}},7656:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var c=a(311),n=a(9783),r=a(3883),l=a(1113),s=a(991),i=a(3022),o=a(1609),m=a.n(o),p=a(7410);const d=e=>{switch(e){case"error":case"warning":default:return c.A;case"info":return n.A;case"success":return r.A}},u=({level:e="info",title:t,children:a,actions:c,hideCloseButton:n=!1,onClose:r})=>{const o=(0,i.A)(p.A.container,p.A[`is-${e}`]);return m().createElement("div",{className:o},m().createElement("div",{className:p.A["icon-wrapper"]},m().createElement(l.A,{icon:d(e),className:p.A.icon})),m().createElement("div",{className:p.A["main-content"]},t&&m().createElement("div",{className:p.A.title},t),a,c&&c.length>0&&m().createElement("div",{className:p.A["action-bar"]},c.map(((e,t)=>m().createElement("div",{key:t,className:p.A.action},e))))),!n&&m().createElement("button",{"aria-label":"close",className:p.A["close-button"],onClick:r},m().createElement(l.A,{icon:s.A})))}},9245:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>k,N0:()=>w,eY:()=>A,i7:()=>y});var c=a(7723),n=a(1113),r=a(3883),l=a(1249),s=a(3022),i=a(1609),o=a.n(i),m=a(597),p=a(442),d=a(5879),u=a(7425),h=a(3142);const __=c.__,g=__("Included","jetpack-protect"),v=__("Not included","jetpack-protect"),f=__("Coming soon","jetpack-protect"),E=(0,i.createContext)(void 0),A=({isIncluded:e=!1,isComingSoon:t=!1,index:a=0,label:d=null,tooltipInfo:A,tooltipTitle:y,tooltipClassName:w=""})=>{const[k]=(0,p.A)("lg"),b=(0,i.useContext)(E)[a],_=t||e,R=b.name,C=b.tooltipInfo,j=b.tooltipTitle,S=A||!k&&C,x=((e,t,a)=>e?{lg:f,
+// translators: Name of the current feature
+default:(0,c.sprintf)(__("%s coming soon","jetpack-protect"),a)}:{lg:t?g:v,default:t?a:(0,c.sprintf)(/* translators: Name of the current feature */
+__("%s not included","jetpack-protect"),a)})(t,e,R),N=k?x.lg:x.default;return o().createElement("div",{className:(0,s.A)(h.A.item,h.A.value)},o().createElement(n.A,{className:(0,s.A)(h.A.icon,_?h.A["icon-check"]:h.A["icon-cross"]),size:32,icon:_?r.A:l.A}),o().createElement(u.Ay,{variant:"body-small"},d||N),S&&o().createElement(m.A,{title:y||j,iconClassName:h.A["popover-icon"],className:(0,s.A)(h.A.popover,w),placement:"bottom-end",iconSize:14,offset:4,wide:Boolean(y&&A)},o().createElement(u.Ay,{variant:"body-small",component:"div"},A||C)))},y=({children:e})=>o().createElement("div",{className:h.A.header},e),w=({primary:e=!1,children:t})=>{let a=0;return o().createElement("div",{className:(0,s.A)(h.A.card,{[h.A["is-primary"]]:e})},i.Children.map(t,(e=>{const t=e;return t.type===A?(a++,(0,i.cloneElement)(t,{index:a-1})):t})))},k=({title:e,items:t,children:a,showIntroOfferDisclaimer:c=!1})=>{const[n]=(0,p.A)("lg");return o().createElement(E.Provider,{value:t},o().createElement("div",{className:(0,s.A)(h.A.container,{[h.A["is-viewport-large"]]:n}),style:{"--rows":t.length+1,"--columns":i.Children.toArray(a).length+1}},o().createElement("div",{className:h.A.table},o().createElement(u.Ay,{variant:"headline-small"},e),n&&t.map(((e,a)=>o().createElement("div",{className:(0,s.A)(h.A.item,{[h.A["last-feature"]]:a===t.length-1}),key:a},o().createElement(u.Ay,{variant:"body-small"},o().createElement("strong",null,e.name)),e.tooltipInfo&&o().createElement(m.A,{title:e.tooltipTitle,iconClassName:h.A["popover-icon"],className:h.A.popover,placement:e.tooltipPlacement?e.tooltipPlacement:"bottom-end",iconSize:14,offset:4,wide:Boolean(e.tooltipTitle&&e.tooltipInfo)},o().createElement(u.Ay,{variant:"body-small"},e.tooltipInfo))))),a)),o().createElement("div",{className:h.A["tos-container"]},o().createElement("div",{className:h.A.tos},c&&o().createElement(u.Ay,{variant:"body-small"},__("Reduced pricing is a limited offer for the first year and renews at regular price.","jetpack-protect")),o().createElement(d.A,{multipleButtons:!0}))))}},489:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(7723),n=a(3022),r=a(7425),l=a(2746),s=a(3407);const __=c.__,i=({price:e,offPrice:t,currency:a="",showNotOffPrice:c=!0,hideDiscountLabel:i=!0,promoLabel:o="",legend:m=__("/month, paid yearly","jetpack-protect"),isNotConvenientPrice:p=!1,hidePriceFraction:d=!1,children:u})=>{if(null==e&&null==t||!a)return null;c=c&&null!=t;const h="number"==typeof e&&"number"==typeof t?Math.floor((e-t)/e*100):0,g=!i&&h&&h>0?h+__("% off","jetpack-protect"):null;return React.createElement(React.Fragment,null,React.createElement("div",{className:s.A.container},React.createElement("div",{className:(0,n.A)(s.A["price-container"],"product-price_container")},React.createElement(l.g,{value:t??e,currency:a,isOff:!p,hidePriceFraction:d}),c&&React.createElement(l.g,{value:e,currency:a,isOff:!1,hidePriceFraction:d}),g&&React.createElement(r.Ay,{className:(0,n.A)(s.A["promo-label"],"product-price_promo_label")},g))),React.createElement("div",{className:s.A.footer},u||React.createElement(r.Ay,{className:(0,n.A)(s.A.legend,"product-price_legend")},m),o&&React.createElement(r.Ay,{className:(0,n.A)(s.A["promo-label"],"product-price_promo_label")},o)))}},2746:(e,t,a)=>{"use strict";a.d(t,{g:()=>s});var c=a(7397),n=a(3022),r=a(7425),l=a(3407);const s=({value:e,currency:t,isOff:a,hidePriceFraction:s})=>{const i=(0,n.A)(l.A.price,"product-price_price",{[l.A["is-not-off-price"]]:!a}),{symbol:o,integer:m,fraction:p}=(0,c.vA)(e,t),d=!s||!p.endsWith("00");return React.createElement(r.Ay,{className:i,variant:"headline-medium",component:"p"},React.createElement(r.Ay,{className:l.A.symbol,component:"sup",variant:"title-medium"},o),m,d&&React.createElement(r.Ay,{component:"sup",variant:"body-small","data-testid":"PriceFraction"},React.createElement("strong",null,p)))}},6461:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(8120),n=a.n(c),r=a(1609),l=a.n(r);a(8325);const s=({color:e="#FFFFFF",className:t="",size:a=20})=>{const c=t+" jp-components-spinner",n={width:a,height:a,fontSize:a,borderTopColor:e},r={borderTopColor:e,borderRightColor:e};return l().createElement("div",{className:c},l().createElement("div",{className:"jp-components-spinner__outer",style:n},l().createElement("div",{className:"jp-components-spinner__inner",style:r})))};s.propTypes={color:n().string,className:n().string,size:n().number};const i=s},1158:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(7723),n=a(3022),r=a(7425),l=a(416);const __=c.__,s=({className:e,label:t,status:a="inactive"})=>{const c={active:__("Active","jetpack-protect"),error:__("Error","jetpack-protect"),action:__("Action needed","jetpack-protect"),inactive:__("Inactive","jetpack-protect"),initializing:__("Setting up","jetpack-protect")};return React.createElement(r.Ay,{variant:"body-extra-small",className:(0,n.A)(l.A.status,{[l.A[`is-${a}`]]:a},e)},React.createElement("span",{className:l.A.status__indicator}),React.createElement("span",{className:l.A.status__label},t||""===t?t:c[a]))}},5879:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var c=a(6072),n=a.n(c),r=a(6087),l=a(7723),s=a(3022),i=a(3924),o=a(7425);a(9634);const __=l.__,m=({multipleButtonsLabels:e})=>Array.isArray(e)&&e.length>1?(0,r.createInterpolateElement)((0,l.sprintf)(/* translators: %1$s is button label 1 and %2$s is button label 2 */
+__("By clicking %1$s or %2$s, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-protect"),e[0],e[1]),{strong:React.createElement("strong",null),tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}):(0,r.createInterpolateElement)(__("By clicking the buttons above, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-protect"),{tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}),p=({agreeButtonLabel:e})=>(0,r.createInterpolateElement)((0,l.sprintf)(/* translators: %s is a button label */
+__("By clicking %s, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-protect"),e),{strong:React.createElement("strong",null),tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}),d=({slug:e,children:t})=>React.createElement("a",{className:"terms-of-service__link",href:(0,i.A)(e),rel:"noopener noreferrer",target:"_blank"},t),u=({className:e,multipleButtons:t,agreeButtonLabel:a,...c})=>React.createElement(o.Ay,n()({className:(0,s.A)(e,"terms-of-service")},c),t?React.createElement(m,{multipleButtonsLabels:t}):React.createElement(p,{agreeButtonLabel:a}))},110:(e,t,a)=>{"use strict";a.d(t,{Q:()=>c,Z:()=>n});const c={"headline-medium":"h1","headline-small":"h2","headline-small-regular":"h2","title-medium":"h3","title-medium-semi-bold":"h3","title-small":"h4",body:"p","body-small":"p","body-extra-small":"p","body-extra-small-bold":"p",label:"p"},n=["mt","mr","mb","ml","mx","my","m","pt","pr","pb","pl","px","py","p"]},7425:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>p,H3:()=>d,hE:()=>u});var c=a(6072),n=a.n(c),r=a(3022),l=a(1609),s=a.n(l),i=a(110),o=a(4495);const m=(0,l.forwardRef)((({variant:e="body",children:t,component:a,className:c,...m},p)=>{const d=a||i.Q[e]||"span",u=(0,l.useMemo)((()=>i.Z.reduce(((e,t)=>(void 0!==m[t]&&(e+=o.A[`${t}-${m[t]}`]+" ",delete m[t]),e)),"")),[m]);return m.ref=p,s().createElement(d,n()({className:(0,r.A)(o.A.reset,o.A[e],c,u)},m),t)}));m.displayName="Text";const p=m,d=({children:e,weight:t="bold",...a})=>{const c="headline-small"+("bold"===t?"":`-${t}`);return s().createElement(m,n()({variant:c,mb:3},a),e)},u=({children:e,size:t="medium",...a})=>s().createElement(m,n()({variant:`title-${t}`,mb:1},a),e)},723:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d});var c=a(1609),n=a.n(c),r=a(9422);const l={"--font-headline-medium":"48px","--font-headline-small":"36px","--font-title-medium":"24px","--font-title-small":"20px","--font-body":"16px","--font-body-small":"14px","--font-body-extra-small":"12px","--font-title-large":"var(--font-headline-small)","--font-label":"var(--font-body-extra-small)"},s={"--jp-black":"#000000","--jp-black-80":"#2c3338","--jp-white":"#ffffff","--jp-white-off":"#f9f9f6","--jp-gray":"#dcdcde","--jp-gray-0":"#F6F7F7","--jp-gray-5":"var(--jp-gray)","--jp-gray-10":"#C3C4C7","--jp-gray-20":"#A7AAAD","--jp-gray-40":"#787C82","--jp-gray-50":"#646970","--jp-gray-60":"#50575E","--jp-gray-70":"#3C434A","--jp-gray-80":"#2C3338","--jp-gray-90":"#1d2327","--jp-gray-off":"#e2e2df","--jp-red-0":"#F7EBEC","--jp-red-5":"#FACFD2","--jp-red-40":"#E65054","--jp-red-50":"#D63638","--jp-red-60":"#B32D2E","--jp-red-70":"#8A2424","--jp-red-80":"#691C1C","--jp-red":"#d63639","--jp-yellow-5":"#F5E6B3","--jp-yellow-10":"#F2CF75","--jp-yellow-20":"#F0C930","--jp-yellow-30":"#DEB100","--jp-yellow-40":"#C08C00","--jp-yellow-50":"#9D6E00","--jp-yellow-60":"#7D5600","--jp-blue-20":"#68B3E8","--jp-blue-40":"#1689DB","--jp-pink":"#C9356E","--jp-green-0":"#f0f2eb","--jp-green-5":"#d0e6b8","--jp-green-10":"#9dd977","--jp-green-20":"#64ca43","--jp-green-30":"#2fb41f","--jp-green-40":"#069e08","--jp-green-50":"#008710","--jp-green-60":"#007117","--jp-green-70":"#005b18","--jp-green-80":"#004515","--jp-green-90":"#003010","--jp-green-100":"#001c09","--jp-green":"#069e08","--jp-green-primary":"var( --jp-green-40 )","--jp-green-secondary":"var( --jp-green-30 )"},i={"--jp-border-radius":"4px","--jp-menu-border-height":"1px","--jp-underline-thickness":"2px"},o={"--spacing-base":"8px"},m={},p=(e,t,a)=>{const c={...l,...s,...i,...o};for(const t in c)e.style.setProperty(t,c[t]);a&&e.classList.add(r.A.global),t&&(m[t]={provided:!0,root:e})},d=({children:e=null,targetDom:t,id:a,withGlobalStyles:r=!0})=>{const l=(0,c.useRef)(),s=m?.[a]?.provided;return(0,c.useLayoutEffect)((()=>{if(!s)return t?p(t,a,r):void(l?.current&&p(l.current,a,r))}),[t,l,s,a,r]),t?n().createElement(n().Fragment,null,e):n().createElement("div",{ref:l},e)}},1069:(e,t,a)=>{"use strict";function c(){return window.Initial_State?.adminUrl||window.Jetpack_Editor_Initial_State?.adminUrl||window?.myJetpackInitialState?.adminUrl||null}a.d(t,{A:()=>c})},3924:(e,t,a)=>{"use strict";function c(e,t={}){const a={};let c;if("undefined"!=typeof window&&(c=window?.JP_CONNECTION_INITIAL_STATE?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,a.url=encodeURIComponent(e)}else a.source=encodeURIComponent(e);for(const e in t)a[e]=encodeURIComponent(t[e]);!Object.keys(a).includes("site")&&"undefined"!=typeof jetpack_redirects&&Object.hasOwn(jetpack_redirects,"currentSiteRawUrl")&&(a.site=jetpack_redirects.currentBlogID??jetpack_redirects.currentSiteRawUrl),c&&(a.calypso_env=c);return"https://jetpack.com/redirect/?"+Object.keys(a).map((e=>e+"="+a[e])).join("&")}a.d(t,{A:()=>c})},6439:(e,t,a)=>{let c={};try{c=a(4611)}catch{console.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),c={missingConfig:!0}}const n=e=>Object.hasOwn(c,e);e.exports={jetpackConfigHas:n,jetpackConfigGet:e=>{if(!n(e))throw'This app requires the "'+e+'" Jetpack Config to be defined in your webpack configuration file. See details in @automattic/jetpack-config package docs.';return c[e]}}},3935:(e,t,a)=>{"use strict";a.d(t,{A1:()=>i,Ay:()=>k,DO:()=>s,Ij:()=>l,Kl:()=>u,LW:()=>o,MU:()=>h,XY:()=>m,ZO:()=>r,dz:()=>p,gH:()=>d,v_:()=>n});var c=a(5932);const n="SET_CONNECTION_STATUS",r="SET_CONNECTION_STATUS_IS_FETCHING",l="SET_SITE_IS_REGISTERING",s="SET_USER_IS_CONNECTING",i="SET_REGISTRATION_ERROR",o="CLEAR_REGISTRATION_ERROR",m="SET_AUTHORIZATION_URL",p="DISCONNECT_USER_SUCCESS",d="SET_CONNECTED_PLUGINS",u="SET_CONNECTION_ERRORS",h="SET_IS_OFFLINE_MODE",g=e=>({type:n,connectionStatus:e}),v=e=>({type:l,isRegistering:e}),f=e=>({type:s,isConnecting:e}),E=e=>({type:i,registrationError:e}),A=()=>({type:o}),y=e=>({type:m,authorizationUrl:e}),w=e=>({type:d,connectedPlugins:e});const k={setConnectionStatus:g,setConnectionStatusIsFetching:e=>({type:r,isFetching:e}),fetchConnectionStatus:()=>({type:"FETCH_CONNECTION_STATUS"}),fetchAuthorizationUrl:e=>({type:"FETCH_AUTHORIZATION_URL",redirectUri:e}),setSiteIsRegistering:v,setUserIsConnecting:f,setRegistrationError:E,clearRegistrationError:A,setAuthorizationUrl:y,registerSite:function*({registrationNonce:e,redirectUri:t,from:a=""}){yield A(),yield v(!0);try{const c=yield{type:"REGISTER_SITE",registrationNonce:e,redirectUri:t,from:a};return yield g({isRegistered:!0}),yield y(c.authorizeUrl),yield v(!1),Promise.resolve(c)}catch(e){return yield E(e),yield v(!1),Promise.reject(e)}},connectUser:function*({from:e,redirectFunc:t,redirectUri:a}={}){yield f(!0),yield{type:"CONNECT_USER",from:e,redirectFunc:t,redirectUri:a}},disconnectUserSuccess:()=>({type:p}),setConnectedPlugins:w,refreshConnectedPlugins:()=>async({dispatch:e})=>await new Promise((t=>c.Ay.fetchConnectedPlugins().then((a=>{e(w(a)),t(a)})))),setConnectionErrors:e=>({type:u,connectionErrors:e}),setIsOfflineMode:e=>({type:h,isOfflineMode:e})}},2494:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(5932),n=a(7143),r=a(2279);const l={FETCH_AUTHORIZATION_URL:({redirectUri:e})=>c.Ay.fetchAuthorizationUrl(e),REGISTER_SITE:({registrationNonce:e,redirectUri:t,from:a})=>c.Ay.registerSite(e,t,a),CONNECT_USER:(0,n.createRegistryControl)((({resolveSelect:e})=>({from:t,redirectFunc:a,redirectUri:c}={})=>new Promise(((n,l)=>{e(r.A).getAuthorizationUrl(c).then((e=>{const c=a||(e=>window.location.assign(e)),r=new URL(e);t&&r.searchParams.set("from",encodeURIComponent(t));const l=r.toString();c(l),n(l)})).catch((e=>{l(e)}))}))))}},5051:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(7143),n=a(3935);const r=(0,c.combineReducers)({connectionStatus:(e={},t)=>{switch(t.type){case n.v_:return{...e,...t.connectionStatus};case n.dz:return{...e,isUserConnected:!1}}return e},connectionStatusIsFetching:(e=!1,t)=>t.type===n.ZO?t.isFetching:e,siteIsRegistering:(e=!1,t)=>t.type===n.Ij?t.isRegistering:e,userIsConnecting:(e=!1,t)=>t.type===n.DO?t.isConnecting:e,registrationError:(e,t)=>{switch(t.type){case n.LW:return!1;case n.A1:return t.registrationError;default:return e}},authorizationUrl:(e,t)=>t.type===n.XY?t.authorizationUrl:e,userConnectionData:(e,t)=>(t.type,e),connectedPlugins:(e={},t)=>t.type===n.gH?t.connectedPlugins:e,connectionErrors:(e={},t)=>t.type===n.Kl?t.connectionErrors:e,isOfflineMode:(e=!1,t)=>t.type===n.MU?t.isConnecting:e})},8019:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(7143),n=a(3935),r=a(2279);const l={...{getAuthorizationUrl:{isFulfilled:(e,...t)=>{const a=Boolean(e.authorizationUrl),n=(0,c.select)(r.A).hasFinishedResolution("getAuthorizationUrl",t);return a&&!n&&(0,c.dispatch)(r.A).finishResolution("getAuthorizationUrl",t),a},*fulfill(e){const t=yield n.Ay.fetchAuthorizationUrl(e);yield n.Ay.setAuthorizationUrl(t.authorizeUrl)}}}}},2676:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c={...{getConnectionStatus:e=>e.connectionStatus||{},getConnectionStatusIsFetching:()=>!1,getSiteIsRegistering:e=>e.siteIsRegistering||!1,getUserIsConnecting:e=>e.userIsConnecting||!1,getRegistrationError:e=>e.registrationError||!1,getAuthorizationUrl:e=>e.authorizationUrl||!1,getUserConnectionData:e=>e.userConnectionData||!1,getConnectedPlugins:e=>e.connectedPlugins||[],getConnectionErrors:e=>e.connectionErrors||[],getIsOfflineMode:e=>e.isOfflineMode||!1,getWpcomUser:e=>e?.userConnectionData?.currentUser?.wpcomUser,getBlogId:e=>e?.userConnectionData?.currentUser?.blogId}}},8734:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(7143);class n{static store=null;static mayBeInit(e,t){null===n.store&&(n.store=(0,c.createReduxStore)(e,t),(0,c.register)(n.store))}}const r=n},2279:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const c="jetpack-connection"},4293:(e,t,a)=>{"use strict";a.d(t,{a:()=>m.A});var c=a(7999),n=a(3935),r=a(2494),l=a(5051),s=a(8019),i=a(2676),o=a(8734),m=a(2279);const p=window.JP_CONNECTION_INITIAL_STATE||(0,c.getScriptData)()?.connection;p||console.error("Jetpack Connection package: Initial state is missing. Check documentation to see how to use the Connection composer package to set up the initial state."),o.A.mayBeInit(m.A,{__experimentalUseThunks:!0,reducer:l.A,actions:n.Ay,selectors:i.A,resolvers:s.A,controls:r.A,initialState:p||{}})},4705:(e,t,a)=>{"use strict";a(8992),a(1135)},1135:(e,t,a)=>{"use strict";a.d(t,{$:()=>c});const c=[{name:"amazon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M13.582 8.182c-1.648.185-3.802.308-5.344.984-1.781.769-3.03 2.337-3.03 4.644 0 2.953 1.86 4.429 4.253 4.429 2.02 0 3.125-.477 4.685-2.065.516.747.685 1.109 1.629 1.894a.59.59 0 0 0 .672-.066l.006.006c.567-.505 1.599-1.401 2.18-1.888.231-.188.19-.496.009-.754-.52-.718-1.072-1.303-1.072-2.634V8.305c0-1.876.133-3.599-1.249-4.891C15.23 2.369 13.422 2 12.04 2 9.336 2 6.318 3.01 5.686 6.351c-.068.355.191.542.423.594l2.754.298c.258-.013.445-.266.494-.523.236-1.151 1.2-1.706 2.284-1.706.584 0 1.249.215 1.595.738.398.584.346 1.384.346 2.061zm-.533 5.906c-.451.8-1.169 1.291-1.967 1.291-1.09 0-1.728-.83-1.728-2.061 0-2.42 2.171-2.86 4.227-2.86v.615c.001 1.108.027 2.031-.532 3.015m7.634 5.251C18.329 21.076 14.917 22 11.979 22c-4.118 0-7.826-1.522-10.632-4.057-.22-.199-.024-.471.241-.317 3.027 1.762 6.771 2.823 10.639 2.823 2.608 0 5.476-.541 8.115-1.66.397-.169.73.262.341.55m.653 1.704c-.194.163-.379.076-.293-.139.284-.71.92-2.298.619-2.684s-1.99-.183-2.749-.092c-.23.027-.266-.173-.059-.319 1.348-.946 3.555-.673 3.811-.356.26.32-.066 2.533-1.329 3.59"})))},{name:"behance",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M7.799 5.698c.589 0 1.12.051 1.606.156q.722.155 1.241.507.516.351.804.938c.188.387.281.871.281 1.443q0 .93-.421 1.551-.424.62-1.255 1.014 1.133.328 1.689 1.146.559.822.557 1.975 0 .935-.359 1.612a3.14 3.14 0 0 1-.973 1.114q-.613.432-1.399.637A6.1 6.1 0 0 1 7.963 18H2V5.698zm-.35 4.97q.721 0 1.192-.345.465-.344.463-1.119 0-.43-.152-.707a1.1 1.1 0 0 0-.416-.427 1.7 1.7 0 0 0-.596-.216 3.6 3.6 0 0 0-.697-.06H4.709v2.874zm.151 5.237q.401.001.759-.077c.243-.053.457-.137.637-.261.182-.12.332-.283.441-.491q.164-.31.163-.798-.002-.948-.533-1.357c-.356-.27-.83-.404-1.413-.404H4.709v3.388zm8.562-.041q.552.538 1.583.538.74 0 1.277-.374c.354-.248.571-.514.654-.79h2.155c-.347 1.072-.872 1.838-1.589 2.299-.708.463-1.572.693-2.58.693q-1.05 0-1.899-.337a4 4 0 0 1-1.439-.958 4.4 4.4 0 0 1-.904-1.484 5.4 5.4 0 0 1-.32-1.899q0-1 .329-1.863a4.4 4.4 0 0 1 .933-1.492q.607-.63 1.444-.994a4.6 4.6 0 0 1 1.857-.363q1.131-.001 1.98.44a3.94 3.94 0 0 1 1.389 1.181 4.8 4.8 0 0 1 .783 1.69q.24.947.171 1.983h-6.428c-.001.706.237 1.372.604 1.73m2.811-4.68c-.291-.321-.783-.496-1.384-.496q-.585 0-.973.2a2 2 0 0 0-.621.491 1.8 1.8 0 0 0-.328.628 2.7 2.7 0 0 0-.111.587h3.98c-.058-.625-.271-1.085-.563-1.41m-3.916-3.446h4.985V6.524h-4.985z"})))},{name:"blogger-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.779 9.904h-.981l-.021.001a1.163 1.163 0 0 1-1.16-1.079l-.001-.013A5.813 5.813 0 0 0 11.803 3H8.871a5.813 5.813 0 0 0-5.813 5.813v6.375a5.813 5.813 0 0 0 5.813 5.813h6.257a5.814 5.814 0 0 0 5.813-5.813l.002-4.121a1.164 1.164 0 0 0-1.164-1.163M8.726 7.713h3.291a1.117 1.117 0 1 1 0 2.234H8.726a1.117 1.117 0 1 1 0-2.234m6.601 8.657H8.72a1.057 1.057 0 1 1 0-2.114h6.607a1.057 1.057 0 1 1 0 2.114"})))},{name:"blogger",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M14.722 14.019a.654.654 0 0 1-.654.654H9.977a.654.654 0 0 1 0-1.308h4.091c.361 0 .654.293.654.654m-4.741-3.321h2.038a.692.692 0 0 0 0-1.384H9.981a.692.692 0 0 0 0 1.384M21 5v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2m-3.456 6.39a.72.72 0 0 0-.72-.72h-.607l-.013.001a.72.72 0 0 1-.718-.668l-.001-.008a3.6 3.6 0 0 0-3.599-3.599H10.07a3.6 3.6 0 0 0-3.599 3.599v3.947a3.6 3.6 0 0 0 3.599 3.599h3.874a3.6 3.6 0 0 0 3.599-3.599z"})))},{name:"bluesky",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.2 3.3c-.5-.2-1.4-.5-3.6 1C15.4 6 12.9 9.2 12 11c-.9-1.8-3.4-5-5.7-6.7-2.2-1.6-3-1.3-3.6-1S2 4.6 2 5.1s.3 4.7.5 5.4c.7 2.3 3.1 3.1 5.3 2.8-3.3.5-6.2 1.7-2.4 5.9 4.2 4.3 5.7-.9 6.5-3.6.8 2.7 1.7 7.7 6.4 3.6 3.6-3.6 1-5.4-2.3-5.9 2.2.2 4.6-.5 5.3-2.8.4-.7.7-4.8.7-5.4 0-.5-.1-1.5-.8-1.8"})))},{name:"codepen",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m22.016 8.84-.007-.037q-.006-.037-.015-.072-.007-.022-.013-.042l-.023-.062-.02-.042a.4.4 0 0 0-.03-.057l-.025-.038-.035-.052-.03-.037q-.021-.026-.043-.045-.015-.018-.035-.035a.4.4 0 0 0-.048-.04l-.037-.03-.015-.012-9.161-6.096a.86.86 0 0 0-.955 0L2.359 8.237l-.015.012-.038.028-.048.04a.638.638 0 0 0-.078.082q-.018.018-.03.037-.018.026-.035.052l-.025.038q-.016.031-.03.059l-.02.041a1 1 0 0 0-.034.106q-.01.034-.016.071-.003.02-.006.037a1 1 0 0 0-.009.114v6.093q0 .056.008.112l.007.038q.006.035.015.072a.2.2 0 0 0 .013.04q.01.032.022.063l.02.04a.4.4 0 0 0 .055.096l.035.052.03.037.042.045.035.035q.023.02.048.04l.038.03.013.01 9.163 6.095a.858.858 0 0 0 .959.004l9.163-6.095.015-.01q.02-.015.037-.03l.048-.04q.02-.017.035-.035.025-.024.043-.045l.03-.037.035-.052.025-.038a.4.4 0 0 0 .03-.058l.02-.04.023-.063c.003-.013.01-.027.013-.04q.009-.037.015-.072l.007-.037q.006-.062.007-.117V8.954a1 1 0 0 0-.008-.114m-9.154-4.376 6.751 4.49-3.016 2.013-3.735-2.492zm-1.724 0v4.009l-3.735 2.494-3.014-2.013zm-7.439 6.098L5.853 12l-2.155 1.438zm7.439 8.974-6.749-4.491 3.015-2.011 3.735 2.492zM12 14.035 8.953 12 12 9.966 15.047 12zm.862 5.501v-4.009l3.735-2.492 3.016 2.011zm7.441-6.098L18.147 12l2.156-1.438z"})))},{name:"deezer",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.129 3.662c.222-1.287.548-2.096.909-2.098h.001c.673.002 1.219 2.809 1.219 6.274s-.546 6.274-1.22 6.274c-.276 0-.531-.477-.736-1.276-.324 2.926-.997 4.937-1.776 4.937-.603 0-1.144-1.208-1.507-3.114-.248 3.624-.872 6.195-1.602 6.195-.458 0-.875-1.019-1.184-2.678C13.861 21.6 13.003 24 12.002 24s-1.861-2.399-2.231-5.824c-.307 1.659-.724 2.678-1.184 2.678-.73 0-1.352-2.571-1.602-6.195-.363 1.905-.903 3.114-1.507 3.114-.778 0-1.452-2.011-1.776-4.937-.204.802-.46 1.276-.736 1.276-.674 0-1.22-2.809-1.22-6.274s.546-6.274 1.22-6.274c.362 0 .685.812.91 2.098.357-2.22.94-3.662 1.6-3.662.784 0 1.463 2.04 1.784 5.002.314-2.156.791-3.53 1.325-3.53.749 0 1.385 2.703 1.621 6.474.443-1.933 1.085-3.146 1.795-3.146s1.352 1.214 1.795 3.146c.237-3.771.872-6.474 1.621-6.474.533 0 1.009 1.374 1.325 3.53.321-2.962 1-5.002 1.784-5.002.658 0 1.244 1.443 1.603 3.662M0 7.221c0-1.549.31-2.805.692-2.805s.692 1.256.692 2.805-.31 2.805-.692 2.805S0 8.77 0 7.221m22.616 0c0-1.549.31-2.805.692-2.805S24 5.672 24 7.221s-.31 2.805-.692 2.805-.692-1.256-.692-2.805"})))},{name:"discord",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.33 4.523A20 20 0 0 0 15.379 3a14 14 0 0 0-.634 1.289 18.4 18.4 0 0 0-5.495 0A14 14 0 0 0 8.615 3 20 20 0 0 0 3.66 4.527C.527 9.163-.323 13.684.102 18.141a20 20 0 0 0 6.073 3.049 14.7 14.7 0 0 0 1.301-2.097 13 13 0 0 1-2.048-.978q.258-.189.502-.378a14.27 14.27 0 0 0 12.142 0q.247.202.502.378a13 13 0 0 1-2.052.98 14.5 14.5 0 0 0 1.301 2.095 19.9 19.9 0 0 0 6.076-3.047c.498-5.168-.851-9.648-3.568-13.62M8.013 15.4c-1.183 0-2.161-1.074-2.161-2.395S6.796 10.6 8.01 10.6s2.183 1.083 2.163 2.405S9.22 15.4 8.013 15.4m7.974 0c-1.186 0-2.16-1.074-2.16-2.395s.944-2.405 2.16-2.405 2.178 1.083 2.157 2.405-.951 2.395-2.158 2.395"})))},{name:"dribbble",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10m8.434-8.631c-.292-.092-2.644-.794-5.32-.365 1.117 3.07 1.572 5.57 1.659 6.09a8.56 8.56 0 0 0 3.661-5.725m-5.098 6.507c-.127-.749-.623-3.361-1.822-6.477l-.056.019c-4.818 1.679-6.547 5.02-6.701 5.334A8.5 8.5 0 0 0 12 20.555a8.5 8.5 0 0 0 3.336-.679m-9.682-2.152c.193-.331 2.538-4.213 6.943-5.637q.167-.054.337-.102a29 29 0 0 0-.692-1.45c-4.266 1.277-8.405 1.223-8.778 1.216a8.497 8.497 0 0 0 2.19 5.973m-2.015-7.46c.382.005 3.901.02 7.897-1.041a55 55 0 0 0-3.167-4.94 8.57 8.57 0 0 0-4.73 5.981m6.359-6.555a46 46 0 0 1 3.187 5c3.037-1.138 4.323-2.867 4.477-3.085a8.51 8.51 0 0 0-7.664-1.915m8.614 2.903c-.18.243-1.612 2.078-4.77 3.367a27 27 0 0 1 .751 1.678c2.842-.357 5.666.215 5.948.275a8.5 8.5 0 0 0-1.929-5.32"})))},{name:"dropbox",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 6.134 6.069 9.797 2 6.54l5.883-3.843zm-10 6.92 5.883 3.843L12 13.459 6.069 9.797zm10 .405 4.116 3.439L22 13.054l-4.069-3.257zM22 6.54l-5.884-3.843L12 6.134l5.931 3.663zm-9.989 7.66-4.129 3.426-1.767-1.153v1.291l5.896 3.539 5.897-3.539v-1.291l-1.769 1.153z"})))},{name:"eventbrite",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18.041 3.931 5.959 3A2.96 2.96 0 0 0 3 5.959v12.083A2.96 2.96 0 0 0 5.959 21l12.083-.931C19.699 19.983 21 18.744 21 17.11V6.89c0-1.634-1.259-2.863-2.959-2.959M16.933 8.17c-.082.215-.192.432-.378.551-.188.122-.489.132-.799.132-1.521 0-3.062-.048-4.607-.048q-.23 1.061-.451 2.128c.932-.004 1.873.005 2.81.005.726 0 1.462-.069 1.586.525.04.189-.001.426-.052.615-.105.38-.258.676-.625.783-.185.054-.408.058-.646.058-1.145 0-2.345.017-3.493.02-.169.772-.328 1.553-.489 2.333 1.57-.005 3.067-.041 4.633-.058.627-.007 1.085.194 1.009.85a2.2 2.2 0 0 1-.211.725c-.102.208-.248.376-.488.452-.237.075-.541.064-.862.078-.304.014-.614.008-.924.016-.309.009-.619.022-.919.022-1.253 0-2.429.08-3.683.073-.603-.004-1.014-.249-1.124-.757-.059-.273-.018-.58.036-.841a3543 3543 0 0 1 1.629-7.763c.056-.265.114-.511.225-.714a1.24 1.24 0 0 1 .79-.62c.368-.099.883-.047 1.344-.047.305 0 .612.008.914.016.925.026 1.817.03 2.747.053.304.007.615.016.915.016.621 0 1.17.073 1.245.614.039.288-.051.567-.132.783"})))},{name:"facebook",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10"})))},{name:"fediverse",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 743 743"},React.createElement("g",null,React.createElement("path",{d:"M181.131 275.137a68.9 68.9 0 0 1-29.465 29.328l161.758 162.389 38.998-19.764zm213.363 214.187-38.998 19.764 81.963 82.283a68.9 68.9 0 0 1 29.471-29.332zM581.646 339.391l-91.576 46.41 6.752 43.189 103.616-52.513a68.9 68.9 0 0 1-18.792-37.086m-144.738 73.351L220.383 522.477a68.9 68.9 0 0 1 18.795 37.089L443.66 455.934zM367.275 142.438l-104.48 203.97 30.848 30.967 110.623-215.957a68.9 68.9 0 0 1-36.991-18.98M235.621 399.459l-52.922 103.314a68.9 68.9 0 0 1 36.987 18.979l46.781-91.328zM150.768 304.918a68.9 68.9 0 0 1-34.416 7.195 69 69 0 0 1-6.651-.695l30.903 197.662a68.9 68.9 0 0 1 34.416-7.195 69 69 0 0 1 6.646.695zM239.342 560.545c.707 4.589.949 9.239.72 13.877a68.9 68.9 0 0 1-7.267 27.18l197.629 31.712c-.708-4.59-.95-9.24-.723-13.878a68.9 68.9 0 0 1 7.27-27.178zM601.133 377.199l-91.219 178.082a68.9 68.9 0 0 1 36.994 18.983l91.217-178.08a68.9 68.9 0 0 1-36.992-18.985M476.723 125.33a68.9 68.9 0 0 1-29.471 29.332l141.266 141.811a68.9 68.9 0 0 1 29.468-29.332zM347.787 104.631l-178.576 90.498a68.9 68.9 0 0 1 18.793 37.086l178.574-90.502a68.9 68.9 0 0 1-18.791-37.082M446.926 154.826a68.9 68.9 0 0 1-34.983 7.483 69 69 0 0 1-6.029-.633l15.818 101.291 43.163 6.926zm-16 167.028 37.4 239.482a68.9 68.9 0 0 1 33.914-6.943q3.625.206 7.207.791L474.09 328.777zM188.131 232.975c.734 4.66.988 9.383.758 14.095a68.9 68.9 0 0 1-7.16 26.983l101.369 16.281 19.923-38.908zm173.736 27.9-19.926 38.912 239.514 38.467a69 69 0 0 1-.695-13.719 68.9 68.9 0 0 1 7.349-27.324z"}),React.createElement("path",{fillOpacity:".996",d:"M412.284 156.054c34.538 1.882 64.061-24.592 65.943-59.13s-24.592-64.062-59.131-65.943c-34.538-1.882-64.061 24.592-65.943 59.13s24.593 64.062 59.131 65.943M646.144 390.82c34.538 1.881 64.062-24.593 65.943-59.131s-24.592-64.061-59.13-65.943-64.062 24.593-65.943 59.131 24.592 64.061 59.13 65.943M495.086 685.719c34.538 1.881 64.062-24.592 65.943-59.13s-24.592-64.062-59.13-65.943-64.062 24.592-65.943 59.13 24.592 64.062 59.13 65.943M167.866 633.211c34.538 1.882 64.062-24.592 65.943-59.13s-24.592-64.062-59.13-65.943-64.062 24.592-65.943 59.13 24.592 64.062 59.13 65.943M116.692 305.86c34.538 1.882 64.062-24.592 65.943-59.13s-24.592-64.062-59.131-65.943c-34.538-1.881-64.061 24.592-65.943 59.13s24.593 64.062 59.131 65.943"})))},{name:"feed",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M2 8.667V12c5.515 0 10 4.485 10 10h3.333c0-7.363-5.97-13.333-13.333-13.333M2 2v3.333c9.19 0 16.667 7.477 16.667 16.667H22C22 10.955 13.045 2 2 2m2.5 15a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5"})))},{name:"flickr",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5m11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5"})))},{name:"foursquare",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17.573 2H6.905C5.434 2 5 3.107 5 3.805v16.948c0 .785.422 1.077.66 1.172.238.097.892.177 1.285-.275 0 0 5.035-5.843 5.122-5.93.132-.132.132-.132.262-.132h3.26c1.368 0 1.588-.977 1.732-1.552.078-.318.692-3.428 1.225-6.122l.675-3.368C19.56 2.893 19.14 2 17.573 2m-1.078 5.22c-.053.252-.372.518-.665.518h-4.157c-.467 0-.802.318-.802.787v.508c0 .467.337.798.805.798h3.528c.331 0 .655.362.583.715s-.407 2.102-.448 2.295c-.04.193-.262.523-.655.523h-2.88c-.523 0-.683.068-1.033.503-.35.437-3.505 4.223-3.505 4.223-.032.035-.063.027-.063-.015V4.852c0-.298.26-.648.648-.648h8.562c.315 0 .61.297.528.683z"})))},{name:"ghost",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M10.203 20.997H3.005v-3.599h7.198zm10.792-3.599h-7.193v3.599h7.193zm.003-7.198H3v3.599h17.998zm-7.195-7.197H3.005v3.599h10.798zm7.197 0h-3.599v3.599H21z"})))},{name:"git",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M23.519 10.947 13.053.482a1.543 1.543 0 0 0-2.183 0L8.696 2.656l2.756 2.756a1.83 1.83 0 0 1 1.886.439 1.84 1.84 0 0 1 .436 1.898l2.656 2.657a1.83 1.83 0 0 1 1.899.436 1.837 1.837 0 0 1 0 2.597 1.84 1.84 0 0 1-2.599 0 1.84 1.84 0 0 1-.4-1.998l-2.478-2.477v6.521a1.837 1.837 0 0 1 .485 2.945 1.837 1.837 0 0 1-2.597 0 1.837 1.837 0 0 1 0-2.598 1.8 1.8 0 0 1 .602-.401V8.85a1.8 1.8 0 0 1-.602-.4 1.84 1.84 0 0 1-.395-2.009L7.628 3.723.452 10.898a1.544 1.544 0 0 0 0 2.184l10.467 10.467a1.544 1.544 0 0 0 2.183 0l10.417-10.418a1.546 1.546 0 0 0 0-2.184"})))},{name:"github",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.218.682-.484 0-.236-.009-.866-.014-1.699-2.782.602-3.369-1.34-3.369-1.34-.455-1.157-1.11-1.465-1.11-1.465-.909-.62.069-.608.069-.608 1.004.071 1.532 1.03 1.532 1.03.891 1.529 2.341 1.089 2.91.833.091-.647.349-1.086.635-1.337-2.22-.251-4.555-1.111-4.555-4.943 0-1.091.39-1.984 1.03-2.682-.103-.254-.447-1.27.097-2.646 0 0 .84-.269 2.75 1.025A9.6 9.6 0 0 1 12 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.748-1.025 2.748-1.025.546 1.376.202 2.394.1 2.646.64.699 1.026 1.591 1.026 2.682 0 3.841-2.337 4.687-4.565 4.935.359.307.679.917.679 1.852 0 1.335-.012 2.415-.012 2.741 0 .269.18.579.688.481A10 10 0 0 0 22 12c0-5.523-4.477-10-10-10"})))},{name:"google-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.05 16c-3.312 0-6-2.688-6-6s2.688-6 6-6c1.62 0 2.976.594 4.014 1.566L14.26 9.222c-.432-.408-1.188-.888-2.31-.888-1.986 0-3.606 1.65-3.606 3.672s1.62 3.672 3.606 3.672c2.298 0 3.144-1.59 3.3-2.532h-3.306v-2.238h5.616c.084.378.15.732.15 1.23 0 3.426-2.298 5.862-5.76 5.862"})))},{name:"google-plus-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M8 11h6.61c.06.35.11.7.11 1.16 0 4-2.68 6.84-6.72 6.84-3.87 0-7-3.13-7-7s3.13-7 7-7c1.89 0 3.47.69 4.69 1.83l-1.9 1.83c-.52-.5-1.43-1.08-2.79-1.08-2.39 0-4.34 1.98-4.34 4.42S5.61 16.42 8 16.42c2.77 0 3.81-1.99 3.97-3.02H8zm15 0h-2V9h-2v2h-2v2h2v2h2v-2h2"})))},{name:"google-plus",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-1.919 14.05a4.051 4.051 0 0 1 0-8.1c1.094 0 2.009.401 2.709 1.057l-1.15 1.118a2.23 2.23 0 0 0-1.559-.599c-1.341 0-2.434 1.114-2.434 2.479s1.094 2.479 2.434 2.479c1.551 0 2.122-1.073 2.227-1.709h-2.232v-1.511h3.791c.057.255.101.494.101.83.001 2.312-1.55 3.956-3.887 3.956M19 12.75h-1.25V14h-1.5v-1.25H15v-1.5h1.25V10h1.5v1.25H19z"})))},{name:"google",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.02 10.18v3.73h5.51c-.26 1.57-1.67 4.22-5.5 4.22-3.31 0-6.01-2.75-6.01-6.12s2.7-6.12 6.01-6.12c1.87 0 3.13.8 3.85 1.48l2.84-2.76C16.99 2.99 14.73 2 12.03 2c-5.52 0-10 4.48-10 10s4.48 10 10 10c5.77 0 9.6-4.06 9.6-9.77 0-.83-.11-1.42-.25-2.05z"})))},{name:"instagram",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 4.622c2.403 0 2.688.009 3.637.052.877.04 1.354.187 1.671.31.42.163.72.358 1.035.673s.51.615.673 1.035c.123.317.27.794.31 1.671.043.949.052 1.234.052 3.637s-.009 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.671-.163.42-.358.72-.673 1.035s-.615.51-1.035.673c-.317.123-.794.27-1.671.31-.949.043-1.233.052-3.637.052s-2.688-.009-3.637-.052c-.877-.04-1.354-.187-1.671-.31a2.8 2.8 0 0 1-1.035-.673 2.8 2.8 0 0 1-.673-1.035c-.123-.317-.27-.794-.31-1.671-.043-.949-.052-1.234-.052-3.637s.009-2.688.052-3.637c.04-.877.187-1.354.31-1.671.163-.42.358-.72.673-1.035s.615-.51 1.035-.673c.317-.123.794-.27 1.671-.31.949-.043 1.234-.052 3.637-.052M12 3c-2.444 0-2.751.01-3.711.054-.958.044-1.612.196-2.184.418a4.4 4.4 0 0 0-1.594 1.039c-.5.5-.808 1.002-1.038 1.594-.223.572-.375 1.226-.419 2.184C3.01 9.249 3 9.556 3 12s.01 2.751.054 3.711c.044.958.196 1.612.418 2.185.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.267.054 3.711.054s2.751-.01 3.711-.054c.958-.044 1.612-.196 2.185-.418a4.4 4.4 0 0 0 1.594-1.038c.5-.5.808-1.002 1.038-1.594.222-.572.375-1.227.418-2.185.044-.96.054-1.267.054-3.711s-.01-2.751-.054-3.711c-.044-.958-.196-1.612-.418-2.185A4.4 4.4 0 0 0 19.49 4.51c-.5-.5-1.002-.808-1.594-1.038-.572-.222-1.227-.375-2.185-.418C14.751 3.01 14.444 3 12 3m0 4.378a4.622 4.622 0 1 0 0 9.244 4.622 4.622 0 0 0 0-9.244M12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6m4.804-8.884a1.08 1.08 0 1 0 .001 2.161 1.08 1.08 0 0 0-.001-2.161"})))},{name:"json-feed",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m8.522 17.424.027.027c1.076-1.076 1.854-.993 3.154.306l2.053 2.053c2.136 2.136 4.131 2.028 6.515-.356l.729-.728-1.548-1.548-.373.373c-1.349 1.349-2.293 1.366-3.585.075l-2.409-2.409c-1.242-1.242-2.475-1.366-3.659-.381l-.232-.232c1.01-1.225.911-2.368-.29-3.568l-2.16-2.162c-1.317-1.317-1.308-2.236.058-3.602l.372-.372-1.54-1.54-.728.729c-2.393 2.393-2.525 4.346-.439 6.433l1.78 1.78c1.3 1.3 1.383 2.095.315 3.163l.008.008a1.384 1.384 0 0 0 1.952 1.951"}),React.createElement("circle",{cx:"13.089",cy:"10.905",r:"1.383"}),React.createElement("circle",{cx:"16.349",cy:"7.644",r:"1.383"}),React.createElement("circle",{cx:"19.61",cy:"4.383",r:"1.383"})))},{name:"line",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M14.255 9.572v3.333c0 .084-.066.15-.15.15h-.534a.16.16 0 0 1-.122-.061l-1.528-2.063v1.978c0 .084-.066.15-.15.15h-.534a.15.15 0 0 1-.15-.15V9.576c0-.084.066-.15.15-.15h.529a.14.14 0 0 1 .122.066l1.528 2.063V9.577c0-.084.066-.15.15-.15h.534a.15.15 0 0 1 .155.145m-3.844-.15h-.534a.15.15 0 0 0-.15.15v3.333c0 .084.066.15.15.15h.534c.084 0 .15-.066.15-.15V9.572c0-.08-.066-.15-.15-.15m-1.289 2.794H7.664V9.572a.15.15 0 0 0-.15-.15H6.98a.15.15 0 0 0-.15.15v3.333q0 .062.042.103a.16.16 0 0 0 .103.042h2.142c.084 0 .15-.066.15-.15v-.534a.15.15 0 0 0-.145-.15m7.945-2.794h-2.142c-.08 0-.15.066-.15.15v3.333c0 .08.066.15.15.15h2.142c.084 0 .15-.066.15-.15v-.534a.15.15 0 0 0-.15-.15h-1.458v-.563h1.458c.084 0 .15-.066.15-.15v-.539a.15.15 0 0 0-.15-.15h-1.458v-.563h1.458c.084 0 .15-.066.15-.15v-.534c-.005-.08-.07-.15-.15-.15M22.5 5.33v13.373c-.005 2.1-1.725 3.802-3.83 3.797H5.297c-2.1-.005-3.802-1.73-3.797-3.83V5.297c.005-2.1 1.73-3.802 3.83-3.797h13.373c2.1.005 3.802 1.725 3.797 3.83m-2.888 5.747c0-3.422-3.431-6.206-7.645-6.206s-7.645 2.784-7.645 6.206c0 3.066 2.719 5.634 6.394 6.122.895.192.792.52.591 1.725-.033.192-.155.755.661.413s4.402-2.592 6.009-4.439c1.106-1.219 1.636-2.452 1.636-3.82"})))},{name:"link",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17 13H7v-2h10zm1-6h-1c-1.631 0-3.065.792-3.977 2H18c1.103 0 2 .897 2 2v2c0 1.103-.897 2-2 2h-4.977c.913 1.208 2.347 2 3.977 2h1a4 4 0 0 0 4-4v-2a4 4 0 0 0-4-4M2 11v2a4 4 0 0 0 4 4h1c1.63 0 3.065-.792 3.977-2H6c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h4.977C10.065 7.792 8.631 7 7 7H6a4 4 0 0 0-4 4"})))},{name:"linkedin",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.7 3H4.3A1.3 1.3 0 0 0 3 4.3v15.4A1.3 1.3 0 0 0 4.3 21h15.4a1.3 1.3 0 0 0 1.3-1.3V4.3A1.3 1.3 0 0 0 19.7 3M8.339 18.338H5.667v-8.59h2.672zM7.004 8.574a1.548 1.548 0 1 1-.002-3.096 1.548 1.548 0 0 1 .002 3.096m11.335 9.764H15.67v-4.177c0-.996-.017-2.278-1.387-2.278-1.389 0-1.601 1.086-1.601 2.206v4.249h-2.667v-8.59h2.559v1.174h.037c.356-.675 1.227-1.387 2.526-1.387 2.703 0 3.203 1.779 3.203 4.092v4.711z"})))},{name:"mail",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 4.236-8 4.882-8-4.882V6h16z"})))},{name:"mastodon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M11.973 2.352c-2.468.02-4.842.286-6.225.921 0 0-2.742 1.229-2.742 5.415 0 .958-.018 2.105.012 3.32.1 4.094.75 8.128 4.535 9.129 1.745.462 3.244.56 4.45.494 2.19-.122 3.417-.781 3.417-.781l-.072-1.588s-1.565.491-3.32.431c-1.74-.06-3.576-.188-3.858-2.324a4 4 0 0 1-.04-.598s1.709.416 3.874.516c1.324.06 2.563-.076 3.824-.226 2.418-.29 4.524-1.78 4.79-3.141.416-2.144.38-5.232.38-5.232 0-4.186-2.74-5.415-2.74-5.415-1.383-.635-3.76-.9-6.227-.921zM9.18 5.622c1.028 0 1.804.395 2.318 1.185l.502.84.5-.84c.514-.79 1.292-1.186 2.32-1.186.888 0 1.605.313 2.15.922q.795.915.794 2.469v5.068h-2.008V9.16c0-1.037-.438-1.562-1.31-1.562-.966 0-1.448.622-1.448 1.857v2.693h-1.996V9.455c0-1.235-.484-1.857-1.45-1.857-.872 0-1.308.525-1.308 1.562v4.92H6.236V9.012q-.001-1.554.793-2.469c.547-.609 1.263-.922 2.15-.922"})))},{name:"medium-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{fillRule:"nonzero",d:"M7.423 6c3.27 0 5.922 2.686 5.922 6s-2.651 6-5.922 6S1.5 15.313 1.5 12s2.652-6 5.923-6m9.458.351c1.635 0 2.961 2.53 2.961 5.65 0 3.118-1.325 5.648-2.96 5.648S13.92 15.119 13.92 12s1.325-5.649 2.96-5.649m4.577.589c.576 0 1.042 2.265 1.042 5.06s-.466 5.06-1.042 5.06c-.575 0-1.04-2.265-1.04-5.06s.465-5.06 1.04-5.06"})))},{name:"medium",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M3 3v18h18V3zm15 4.26-1 .93a.28.28 0 0 0-.11.27v6.8a.27.27 0 0 0 .11.27l.94.93v.2h-4.75v-.2l1-1c.09-.1.09-.12.09-.27V9.74l-2.71 6.9h-.37L8 9.74v4.62a.67.67 0 0 0 .17.54l1.27 1.54v.2H5.86v-.2l1.27-1.54a.64.64 0 0 0 .17-.54V9a.5.5 0 0 0-.16-.4L6 7.26v-.2h3.52L12.23 13l2.38-5.94H18z"})))},{name:"messenger",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.026.375C5.462.375.375 5.172.375 11.652c0 3.389 1.393 6.318 3.66 8.341.391.352.311.556.377 2.73a.934.934 0 0 0 1.307.823c2.48-1.092 2.512-1.178 2.933-1.064 7.185 1.977 14.973-2.621 14.973-10.83 0-6.48-5.035-11.277-11.599-11.277m6.996 8.678L15.6 14.47a1.75 1.75 0 0 1-2.527.465l-2.723-2.038a.7.7 0 0 0-.844 0l-3.674 2.786c-.49.372-1.133-.216-.802-.735l3.422-5.417a1.75 1.75 0 0 1 2.527-.465l2.722 2.037a.7.7 0 0 0 .844 0L18.22 8.32c.489-.374 1.132.213.801.732"})))},{name:"microblog",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.641 17.086c1.294-1.522 2.067-3.438 2.067-5.521 0-4.957-4.371-8.972-9.763-8.972s-9.763 4.015-9.763 8.972 4.371 8.972 9.763 8.972a10.5 10.5 0 0 0 3.486-.59.315.315 0 0 1 .356.112c.816 1.101 2.09 1.876 3.506 2.191a.194.194 0 0 0 .192-.309 3.82 3.82 0 0 1 .162-4.858zm-3.065-6.575-2.514 1.909.912 3.022a.286.286 0 0 1-.437.317l-2.592-1.802-2.592 1.802a.285.285 0 0 1-.436-.317l.912-3.022-2.515-1.909a.285.285 0 0 1 .167-.513l3.155-.066 1.038-2.981a.285.285 0 0 1 .539 0l1.038 2.981 3.155.066a.285.285 0 0 1 .17.513"})))},{name:"nextdoor",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",strokeMiterlimit:"10",viewBox:"0 0 130 130"},React.createElement("g",null,React.createElement("path",{d:"M64.25 3.531c-31.144.337-57.596 24.22-60.469 55.907-3.064 33.799 21.857 63.685 55.657 66.75s63.685-21.857 66.75-55.657-21.857-63.686-55.657-66.75a62 62 0 0 0-6.281-.25m3.938 34.907C82.468 38.438 93.5 48.58 93.5 61.5v27c0 .685-.565 1.25-1.25 1.25H80.906a1.267 1.267 0 0 1-1.25-1.25V63.375c0-5.58-4.309-11.937-11.469-11.937-7.47 0-11.468 6.357-11.468 11.937V88.5c0 .685-.565 1.25-1.25 1.25H44.125c-.68 0-1.219-.57-1.219-1.25V64.156c0-.74-.529-1.364-1.25-1.531-13.13-2.93-15.115-10.285-15.375-21.125-.005-.332.142-.67.375-.906.233-.237.543-.375.875-.375l11.688.062c.66.01 1.187.529 1.218 1.188.13 4.44.438 9.406 4.438 9.406.83 0 1.443-1.179 1.813-1.719 4.41-6.48 12.28-10.718 21.5-10.718"})))},{name:"patreon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20 7.408c-.003-2.299-1.746-4.182-3.79-4.862-2.54-.844-5.888-.722-8.312.453-2.939 1.425-3.862 4.545-3.896 7.656-.028 2.559.22 9.297 3.92 9.345 2.75.036 3.159-3.603 4.43-5.356.906-1.247 2.071-1.599 3.506-1.963 2.465-.627 4.146-2.626 4.142-5.273"})))},{name:"pinterest-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.289 2C6.617 2 3.606 5.648 3.606 9.622c0 1.846 1.025 4.146 2.666 4.878.25.111.381.063.439-.169.044-.175.267-1.029.365-1.428a.37.37 0 0 0-.091-.362c-.54-.63-.975-1.791-.975-2.873 0-2.777 2.194-5.464 5.933-5.464 3.23 0 5.49 2.108 5.49 5.122 0 3.407-1.794 5.768-4.13 5.768-1.291 0-2.257-1.021-1.948-2.277.372-1.495 1.089-3.112 1.089-4.191 0-.967-.542-1.775-1.663-1.775-1.319 0-2.379 1.309-2.379 3.059 0 1.115.394 1.869.394 1.869s-1.302 5.279-1.54 6.261c-.405 1.666.053 4.368.094 4.604.021.126.167.169.25.063.129-.165 1.699-2.419 2.142-4.051.158-.59.817-2.995.817-2.995.43.784 1.681 1.446 3.013 1.446 3.963 0 6.822-3.494 6.822-7.833C20.394 5.112 16.849 2 12.289 2"})))},{name:"pinterest",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.236 2.636 7.855 6.356 9.312-.087-.791-.166-2.005.035-2.869.182-.78 1.173-4.971 1.173-4.971s-.299-.599-.299-1.484c0-1.39.806-2.429 1.809-2.429.853 0 1.265.641 1.265 1.409 0 .858-.546 2.141-.828 3.329-.236.996.499 1.807 1.481 1.807 1.777 0 3.144-1.874 3.144-4.579 0-2.394-1.72-4.068-4.177-4.068-2.845 0-4.515 2.134-4.515 4.34 0 .859.331 1.781.744 2.282a.3.3 0 0 1 .069.287c-.077.316-.246.995-.279 1.134-.044.183-.145.222-.334.134-1.249-.581-2.03-2.407-2.03-3.874 0-3.154 2.292-6.051 6.607-6.051 3.469 0 6.165 2.472 6.165 5.775 0 3.446-2.173 6.22-5.189 6.22-1.013 0-1.966-.526-2.292-1.148l-.623 2.377c-.226.869-.835 1.957-1.243 2.622.936.289 1.93.445 2.961.445 5.523 0 10-4.477 10-10S17.523 2 12 2"})))},{name:"pocket",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.927 4.194A1.82 1.82 0 0 0 20.222 3H3.839a1.823 1.823 0 0 0-1.813 1.814v6.035l.069 1.2c.29 2.73 1.707 5.115 3.899 6.778l.119.089.025.018a9.9 9.9 0 0 0 3.91 1.727 10.06 10.06 0 0 0 4.049-.014.3.3 0 0 0 .064-.023 9.9 9.9 0 0 0 3.753-1.691l.025-.018q.06-.043.119-.089c2.192-1.664 3.609-4.049 3.898-6.778l.069-1.2V4.814a1.8 1.8 0 0 0-.098-.62m-4.235 6.287-4.704 4.512a1.37 1.37 0 0 1-1.898 0l-4.705-4.512a1.371 1.371 0 1 1 1.898-1.979l3.756 3.601 3.755-3.601a1.372 1.372 0 0 1 1.898 1.979"})))},{name:"polldaddy",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.487 2 2 6.487 2 12c0 5.514 4.487 10 10 10 5.514 0 10-4.486 10-10 0-5.513-4.486-10-10-10m.991 1.68c2.361.084 4.657 1.251 6.197 3.136.283.334.541.693.774 1.067a7.78 7.78 0 0 0-6.094-2.94 7.76 7.76 0 0 0-5.896 2.703q-.008.006-.016.014l-.152.159-.031.032a6.12 6.12 0 0 0-1.633 4.165 6.15 6.15 0 0 0 6.143 6.143c.57 0 1.123-.081 1.649-.227-1.849.839-4.131.747-5.926-.324-1.841-1.089-3.171-3.111-3.433-5.313A7.39 7.39 0 0 1 6.69 6.137C8.294 4.5 10.634 3.563 12.991 3.68m3.373 8.519c-.049-2.024-1.587-3.889-3.544-4.174-1.927-.343-3.917.857-4.451 2.661a3.67 3.67 0 0 0 .2 2.653c.39.8 1.067 1.451 1.894 1.759 1.664.654 3.63-.27 4.173-1.863.593-1.58-.396-3.423-1.94-3.776-1.52-.407-3.161.757-3.204 2.243a2.36 2.36 0 0 0 .753 1.879c.501.476 1.23.667 1.871.529a2.07 2.07 0 0 0 1.469-1.134 1.91 1.91 0 0 0-.087-1.767c-.297-.513-.859-.863-1.429-.881a1.7 1.7 0 0 0-1.437.679 1.53 1.53 0 0 0-.18 1.489q.006.016.016.03c.193.634.774 1.1 1.467 1.117a1.6 1.6 0 0 1-.97-.183c-.466-.244-.809-.747-.893-1.29a1.8 1.8 0 0 1 .499-1.539 2.02 2.02 0 0 1 1.58-.606c.593.04 1.159.35 1.517.859.364.496.51 1.156.383 1.773-.116.62-.529 1.174-1.093 1.514a2.52 2.52 0 0 1-1.914.286c-.65-.161-1.226-.606-1.584-1.206a2.83 2.83 0 0 1-.341-2.031c.143-.7.573-1.321 1.176-1.753 1.193-.883 3.056-.751 4.106.411 1.106 1.1 1.327 3.027.406 4.371-.877 1.376-2.74 2.086-4.374 1.594-1.639-.449-2.913-2.079-3.031-3.853-.07-.884.13-1.797.583-2.577.445-.777 1.155-1.432 1.972-1.862 1.64-.88 3.816-.743 5.349.424 1.251.924 2.083 2.42 2.236 4.009l.001.03c0 2.9-2.359 5.26-5.26 5.26a5.2 5.2 0 0 1-1.947-.376 5 5 0 0 0 2.613-.079 4.96 4.96 0 0 0 2.514-1.751c.618-.828.95-1.861.901-2.869M12 21.113c-5.024 0-9.111-4.087-9.111-9.113 0-4.789 3.713-8.723 8.411-9.081a7 7 0 0 0-.397.06c-2.644.453-5.017 2.106-6.32 4.409-1.309 2.301-1.391 5.19-.3 7.527 1.056 2.34 3.253 4.156 5.776 4.553 2.497.44 5.133-.483 6.787-2.301 1.719-1.797 2.269-4.529 1.486-6.796-.583-1.81-1.976-3.331-3.7-4.046 3.417.594 6.174 3.221 6.174 6.781 0 1.004-.241 2.02-.657 2.966-1.498 2.984-4.586 5.041-8.149 5.041"})))},{name:"print",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M9 16h6v2H9zm13 1h-3v3a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2V9a2 2 0 0 1 2-2h1V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2h1a2 2 0 0 1 2 2zM7 7h10V5H7zm10 7H7v6h10zm3-3.5a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 20 10.5"})))},{name:"quora",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M47.736 16.521c-.41-.81-.898-1.631-1.846-1.631a1 1 0 0 0-.527.107l-.322-.644a2.93 2.93 0 0 1 1.836-.595c1.26 0 1.914.605 2.431 1.397a6.8 6.8 0 0 0 .449-2.675c0-2.773-.869-4.199-2.929-4.199-1.992 0-2.851 1.465-2.851 4.199s.859 4.17 2.851 4.17a4 4 0 0 0 .869-.107zm.498.966a6 6 0 0 1-1.367.185 5.27 5.27 0 0 1-5.263-5.204c0-3.114 2.558-5.233 5.263-5.233s5.282 2.109 5.282 5.233a5.08 5.08 0 0 1-1.992 4.072c.381.566.781.956 1.319.956.595 0 .839-.459.878-.82h.781c.049.488-.195 2.48-2.373 2.48-1.319 0-2.012-.761-2.529-1.66zm5.624-2.646v-3.563c0-.371-.146-.586-.615-.586h-.498v-.956h3.251v5.048c0 .849.459 1.231 1.161 1.231a1.56 1.56 0 0 0 1.465-.839V11.28c0-.371-.146-.586-.615-.586h-.527v-.957h3.28v5.302c0 .527.195.732.8.732h.107v.976l-2.929.468V16.21h-.057a3.12 3.12 0 0 1-2.509 1.152c-1.28 0-2.304-.644-2.304-2.558zm12.059 1.611c1.152 0 1.592-1.005 1.611-3.027.02-1.982-.459-2.929-1.611-2.929-1.005 0-1.641.956-1.641 2.929 0 2.021.625 3.027 1.641 3.027m0 .956a3.906 3.906 0 0 1-3.974-3.974c0-2.334 1.836-3.886 3.974-3.886 2.226 0 4.004 1.582 4.004 3.886a3.867 3.867 0 0 1-4.004 3.974m4.072-.146v-.956h.312c.781 0 .859-.224.859-.908v-4.121c0-.371-.215-.586-.732-.586h-.42v-.955h2.968l.146 1.553h.108c.371-1.113 1.221-1.699 2.051-1.699.693 0 1.221.39 1.221 1.181 0 .547-.264 1.093-1.005 1.093-.664 0-.8-.449-1.358-.449-.488 0-.869.468-.869 1.152v2.783c0 .673.166.908.937.908h.439v.956h-4.658zm9.901-1.093c.956 0 1.338-.898 1.338-1.797v-1.211c-.732.722-2.304.742-2.304 2.021 0 .625.371.986.966.986m1.387 0c-.39.752-1.191 1.26-2.314 1.26-1.309 0-2.148-.732-2.148-1.914 0-2.451 3.417-1.797 4.423-3.427v-.185c0-1.25-.488-1.445-1.035-1.445-1.524 0-.83 1.631-2.226 1.631-.673 0-.937-.371-.937-.859 0-.927 1.093-1.67 3.173-1.67 1.963 0 3.163.537 3.163 2.49v3.114q-.02.742.595.742a1 1 0 0 0 .449-.127l.254.615c-.205.312-.752.869-1.836.869-.908 0-1.465-.42-1.543-1.113h-.01zm-68.554 2.558c-.83-1.641-1.807-3.3-3.711-3.3a2.9 2.9 0 0 0-1.093.215l-.644-1.299a5.66 5.66 0 0 1 3.662-1.211c2.548 0 3.857 1.231 4.892 2.792q.917-2.012.908-5.38c0-5.585-1.748-8.417-5.829-8.417-4.033 0-5.76 2.87-5.76 8.417s1.738 8.397 5.76 8.397a5.9 5.9 0 0 0 1.748-.224zm.996 1.953a9.8 9.8 0 0 1-2.744.371C5.614 21.041.371 16.764.371 10.545.371 4.277 5.614 0 10.965 0c5.448 0 10.642 4.248 10.642 10.545a10.25 10.25 0 0 1-4.013 8.201c.732 1.152 1.563 1.914 2.665 1.914 1.201 0 1.689-.927 1.768-1.66h1.572c.088.966-.4 4.999-4.775 4.999-2.646 0-4.052-1.543-5.106-3.339z"})))},{name:"reddit",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22 11.816a2.28 2.28 0 0 0-2.277-2.277c-.593 0-1.122.24-1.526.614-1.481-.965-3.455-1.594-5.647-1.69l1.171-3.702 3.18.748a1.88 1.88 0 0 0 1.876 1.862 1.88 1.88 0 0 0 1.877-1.878 1.88 1.88 0 0 0-1.877-1.877c-.769 0-1.431.466-1.72 1.13l-3.508-.826a.386.386 0 0 0-.46.261l-1.35 4.268c-2.316.038-4.411.67-5.97 1.671a2.24 2.24 0 0 0-1.492-.581A2.28 2.28 0 0 0 2 11.816c0 .814.433 1.523 1.078 1.925a4 4 0 0 0-.061.672c0 3.292 4.011 5.97 8.941 5.97s8.941-2.678 8.941-5.97q-.002-.32-.053-.632A2.26 2.26 0 0 0 22 11.816m-3.224-7.422a1.1 1.1 0 1 1-.001 2.199 1.1 1.1 0 0 1 .001-2.199M2.777 11.816c0-.827.672-1.5 1.499-1.5.313 0 .598.103.838.269-.851.676-1.477 1.479-1.812 2.36a1.48 1.48 0 0 1-.525-1.129m9.182 7.79c-4.501 0-8.164-2.329-8.164-5.193S7.457 9.22 11.959 9.22s8.164 2.329 8.164 5.193-3.663 5.193-8.164 5.193m8.677-6.605c-.326-.89-.948-1.701-1.797-2.384.248-.186.55-.301.883-.301.827 0 1.5.673 1.5 1.5.001.483-.23.911-.586 1.185m-11.64 1.703c-.76 0-1.397-.616-1.397-1.376s.637-1.397 1.397-1.397 1.376.637 1.376 1.397-.616 1.376-1.376 1.376m7.405-1.376c0 .76-.616 1.376-1.376 1.376s-1.399-.616-1.399-1.376.639-1.397 1.399-1.397 1.376.637 1.376 1.397m-1.172 3.38a.39.39 0 0 1 0 .55c-.674.674-1.727 1.002-3.219 1.002l-.011-.002-.011.002c-1.492 0-2.544-.328-3.218-1.002a.389.389 0 1 1 .55-.55c.521.521 1.394.775 2.669.775l.011.002.011-.002c1.275 0 2.148-.253 2.669-.775a.387.387 0 0 1 .549 0"})))},{name:"share",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18 16c-.788 0-1.499.31-2.034.807L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.048 4.118A3 3 0 0 0 15 19a3 3 0 1 0 3-3"})))},{name:"skype",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m10.113 2.699.1-.02q.05.025.098.051zM2.72 10.223l-.017.103q.025.048.051.095zm18.555 3.548q.009-.053.018-.106-.025-.047-.052-.095zm-7.712 7.428q.049.027.096.053l.105-.017zM22 16.386a5.55 5.55 0 0 1-1.637 3.953 5.55 5.55 0 0 1-3.953 1.637 5.6 5.6 0 0 1-2.75-.725l.105-.017-.202-.035q.049.027.096.053a9.5 9.5 0 0 1-1.654.147 9.4 9.4 0 0 1-3.676-.743 9.4 9.4 0 0 1-3.002-2.023 9.4 9.4 0 0 1-2.023-3.002 9.4 9.4 0 0 1-.743-3.676c0-.546.049-1.093.142-1.628q.025.048.051.095l-.034-.199-.017.103A5.6 5.6 0 0 1 2 7.615c0-1.493.582-2.898 1.637-3.953A5.56 5.56 0 0 1 7.59 2.024c.915 0 1.818.228 2.622.655l-.1.02.199.031q-.049-.026-.098-.051l.004-.001a9.5 9.5 0 0 1 1.788-.169 9.41 9.41 0 0 1 6.678 2.766 9.4 9.4 0 0 1 2.024 3.002 9.4 9.4 0 0 1 .743 3.676c0 .575-.054 1.15-.157 1.712q-.025-.047-.052-.095l.034.201q.009-.053.018-.106c.461.829.707 1.767.707 2.721m-5.183-2.248c0-1.331-.613-2.743-3.033-3.282l-2.209-.49c-.84-.192-1.807-.444-1.807-1.237s.679-1.348 1.903-1.348c2.468 0 2.243 1.696 3.468 1.696.645 0 1.209-.379 1.209-1.031 0-1.521-2.435-2.663-4.5-2.663-2.242 0-4.63.952-4.63 3.488 0 1.221.436 2.521 2.839 3.123l2.984.745c.903.223 1.129.731 1.129 1.189 0 .762-.758 1.507-2.129 1.507-2.679 0-2.307-2.062-3.743-2.062-.645 0-1.113.444-1.113 1.078 0 1.236 1.501 2.886 4.856 2.886 3.195 0 4.776-1.538 4.776-3.599"})))},{name:"sms",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17.696 4C20.069 4 22 5.973 22 8.398v4.357c0 2.04-1.368 3.783-3.261 4.266v4.427l-5.234-4.295h-7.2C3.93 17.153 2 15.18 2 12.755V8.398C2 5.973 3.931 4 6.304 4zM7.028 8.515c-.98 0-1.66.562-1.66 1.349-.009.497.322.91.985 1.178l.39.142c.242.097.305.171.305.297 0 .162-.131.251-.442.251s-.76-.135-1.004-.284l-.112.046-.215.868c.359.258.832.364 1.33.364 1.104 0 1.764-.523 1.764-1.333-.008-.574-.305-.956-.954-1.216l-.393-.146c-.266-.108-.341-.181-.341-.287 0-.152.131-.243.387-.243.274 0 .587.093.808.214l.109-.047.214-.837c-.315-.224-.741-.316-1.171-.316m10.302 0c-.98 0-1.66.562-1.66 1.349-.008.497.322.91.985 1.178l.39.142c.243.097.305.171.305.297 0 .162-.13.251-.442.251-.311 0-.76-.135-1.004-.284l-.112.046-.215.868c.359.258.832.364 1.33.364 1.104 0 1.764-.523 1.764-1.333-.008-.574-.305-.956-.954-1.216l-.393-.146c-.266-.108-.341-.181-.341-.287 0-.152.131-.243.387-.243.274 0 .587.093.808.214l.109-.047.214-.837c-.316-.224-.741-.316-1.171-.316m-3.733 0c-.297 0-.55.066-.78.202l-.144.098a2 2 0 0 0-.264.247l-.078.095-.027-.077c-.15-.34-.55-.565-1.033-.565l-.169.007a1.36 1.36 0 0 0-.896.42l-.08.09-.038-.363-.075-.067H8.994l-.075.079.024.634c.005.2.008.397.008.604v2.652l.075.075h1.178l.075-.075v-2.269q-.002-.168.042-.274c.083-.23.262-.392.496-.392.314 0 .483.267.483.753v2.182l.075.075h1.179l.075-.075v-2.277c0-.097.016-.213.043-.285.077-.224.26-.373.486-.373.33 0 .5.272.5.817v2.118l.074.075h1.179l.075-.075v-2.293c0-1.131-.537-1.763-1.39-1.763Z"})))},{name:"snapchat",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M11.989 1.728c3.221.001 5.904 2.683 5.908 5.912q.002 1.133.067 2.094a.737.737 0 0 0 .902.669l1.009-.237a.6.6 0 0 1 .129-.015c.256 0 .492.175.55.434a.74.74 0 0 1-.479.861l-1.532.618a.823.823 0 0 0-.485.98c1.229 4.543 4.661 4.071 4.661 4.662 0 .743-2.587.848-2.821 1.082s-.01 1.368-.532 1.588a1.1 1.1 0 0 1-.409.056c-.393 0-.95-.077-1.536-.077-.509 0-1.04.058-1.507.273-1.239.572-2.433 1.641-3.914 1.641S9.325 21.2 8.086 20.628c-.467-.216-.998-.273-1.507-.273-.586 0-1.143.077-1.536.077-.17 0-.31-.014-.409-.056-.522-.22-.299-1.354-.532-1.588s-2.821-.337-2.821-1.08c0-.592 3.432-.119 4.661-4.662a.824.824 0 0 0-.486-.98l-1.532-.618a.74.74 0 0 1-.479-.861.56.56 0 0 1 .679-.419l1.009.237q.086.02.169.02a.737.737 0 0 0 .733-.689q.065-.961.067-2.094c.004-3.229 2.666-5.91 5.887-5.912m0-1.281c-.961 0-1.898.194-2.784.574A7.2 7.2 0 0 0 6.93 2.572a7.2 7.2 0 0 0-1.539 2.282A7.1 7.1 0 0 0 4.82 7.64a33 33 0 0 1-.029 1.369l-.375-.088a2 2 0 0 0-.421-.049 1.86 1.86 0 0 0-1.135.389 1.84 1.84 0 0 0-.666 1.049 2.024 2.024 0 0 0 1.271 2.335l1.124.454c-.744 2.285-2.117 2.723-3.041 3.018a5 5 0 0 0-.659.246C.087 16.76 0 17.436 0 17.708c0 .521.247.996.694 1.339.223.17.499.311.844.43.47.162 1.016.265 1.459.347.021.164.053.341.106.518.22.738.684 1.069 1.034 1.217.332.14.676.156.905.156.224 0 .462-.018.713-.036.269-.02.548-.041.823-.041.426 0 .743.051.97.155.311.144.64.337.989.542.972.571 2.073 1.217 3.462 1.217s2.49-.647 3.462-1.217c.349-.205.679-.399.989-.542.226-.105.544-.155.97-.155.275 0 .554.021.823.041.251.019.488.036.713.036.229 0 .573-.016.905-.156.35-.147.814-.478 1.034-1.217.053-.178.084-.354.106-.518.443-.082.989-.185 1.459-.347.345-.119.621-.259.844-.43.448-.342.694-.818.694-1.339 0-.272-.087-.948-.891-1.347a5 5 0 0 0-.659-.246c-.924-.295-2.297-.733-3.041-3.018l1.124-.454a2.025 2.025 0 0 0 1.271-2.335 1.83 1.83 0 0 0-.666-1.049 1.86 1.86 0 0 0-1.556-.34l-.375.088a33 33 0 0 1-.029-1.369 7.1 7.1 0 0 0-.575-2.789c-.365-.853-.886-1.62-1.547-2.282s-1.428-1.182-2.28-1.547a7.1 7.1 0 0 0-2.786-.574"})))},{name:"soundcloud",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M23.587 13.923a3.303 3.303 0 0 1-3.344 3.117h-8.037a.674.674 0 0 1-.667-.67V7.717a.74.74 0 0 1 .444-.705s.739-.512 2.296-.512a5.27 5.27 0 0 1 2.702.742 5.35 5.35 0 0 1 2.516 3.485 3.1 3.1 0 0 1 .852-.116 3.217 3.217 0 0 1 3.237 3.312m-13.05-5.659c.242 2.935.419 5.612 0 8.538a.261.261 0 0 1-.519 0c-.39-2.901-.221-5.628 0-8.538a.26.26 0 0 1 .398-.25.26.26 0 0 1 .12.25zm-1.627 8.541a.273.273 0 0 1-.541 0 32.7 32.7 0 0 1 0-7.533.274.274 0 0 1 .544 0 29.4 29.4 0 0 1-.003 7.533m-1.63-7.788c.264 2.69.384 5.099-.003 7.782a.262.262 0 0 1-.522 0c-.374-2.649-.249-5.127 0-7.782a.264.264 0 0 1 .525 0m-1.631 7.792a.268.268 0 0 1-.532 0 27.6 27.6 0 0 1 0-7.034.27.27 0 1 1 .541 0 25.8 25.8 0 0 1-.01 7.034zm-1.63-5.276c.412 1.824.227 3.435-.015 5.294a.255.255 0 0 1-.504 0c-.22-1.834-.402-3.482-.015-5.295a.268.268 0 0 1 .535 0m-1.626-.277c.378 1.869.254 3.451-.01 5.325-.031.277-.506.28-.531 0-.239-1.846-.352-3.476-.01-5.325a.277.277 0 0 1 .551 0m-1.643.907c.396 1.239.261 2.246-.016 3.517a.258.258 0 0 1-.514 0c-.239-1.246-.336-2.274-.021-3.517a.276.276 0 0 1 .55 0z"})))},{name:"spotify",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424a.62.62 0 0 1-.857.207c-2.348-1.435-5.304-1.76-8.785-.964a.622.622 0 1 1-.277-1.215c3.809-.871 7.077-.496 9.713 1.115a.623.623 0 0 1 .206.857M17.81 13.7a.78.78 0 0 1-1.072.257c-2.687-1.652-6.785-2.131-9.965-1.166A.779.779 0 1 1 6.32 11.3c3.632-1.102 8.147-.568 11.234 1.328a.78.78 0 0 1 .256 1.072m.105-2.835c-3.223-1.914-8.54-2.09-11.618-1.156a.935.935 0 1 1-.542-1.79c3.532-1.072 9.404-.865 13.115 1.338a.936.936 0 1 1-.955 1.608"})))},{name:"squarespace",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.87 9.271a3.86 3.86 0 0 0-5.458 0l-6.141 6.141a.964.964 0 1 0 1.365 1.364l6.14-6.14a1.929 1.929 0 1 1 2.729 2.729l-6.022 6.022a1.93 1.93 0 0 0 2.729 0l4.658-4.658a3.86 3.86 0 0 0 0-5.458m-2.047 2.047a.965.965 0 0 0-1.365 0l-6.14 6.14a1.93 1.93 0 0 1-2.729 0 .964.964 0 1 0-1.364 1.364 3.86 3.86 0 0 0 5.458 0l6.14-6.14a.966.966 0 0 0 0-1.364m-2.047-6.141a3.86 3.86 0 0 0-5.458 0l-6.14 6.14a.964.964 0 1 0 1.364 1.364l6.141-6.14a1.93 1.93 0 0 1 2.729 0 .965.965 0 1 0 1.364-1.364m-2.047 2.047a.964.964 0 0 0-1.364 0l-6.14 6.141a1.929 1.929 0 1 1-2.729-2.729l6.022-6.022a1.93 1.93 0 0 0-2.729 0L3.13 9.271a3.86 3.86 0 0 0 5.458 5.458l6.14-6.141a.963.963 0 0 0 .001-1.364"})))},{name:"stackexchange",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M4 11.606h16v3.272H4zM4 7.377h16v3.272H4zM17.514 3H6.55C5.147 3 4 4.169 4 5.614v.848h16v-.85C20 4.167 18.895 3 17.514 3M4 15.813v.85c0 1.445 1.147 2.614 2.55 2.614h6.799v3.463l3.357-3.463h.744c1.402 0 2.55-1.169 2.55-2.614v-.85z"})))},{name:"stackoverflow",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18.18 20.103V14.78h1.767v7.09H4v-7.09h1.767v5.323z"}),React.createElement("path",{d:"m7.717 14.275 8.673 1.813.367-1.744-8.673-1.813zm1.147-4.13 8.031 3.74.734-1.606-8.031-3.763zm2.226-3.946 6.815 5.667 1.124-1.354-6.815-5.667zM15.495 2l-1.423 1.055 5.277 7.113 1.423-1.055zM7.533 18.314h8.857v-1.767H7.533z"})))},{name:"stumbleupon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 4.294a4.47 4.47 0 0 0-4.471 4.471v6.353a1.059 1.059 0 1 1-2.118 0v-2.824H2v2.941a4.471 4.471 0 0 0 8.942 0v-6.47a1.059 1.059 0 1 1 2.118 0v1.294l1.412.647 2-.647V8.765A4.473 4.473 0 0 0 12 4.294m1.059 8.059v2.882a4.471 4.471 0 0 0 8.941 0v-2.824h-3.412v2.824a1.059 1.059 0 1 1-2.118 0v-2.882l-2 .647z"})))},{name:"substack",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.904 9.182H4.095V7.054h15.81v2.127M4.095 11.109V21L12 16.583 19.905 21v-9.891zM19.905 3H4.095v2.127h15.81z"})))},{name:"telegram",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m3.08 14.757s-.25.625-.936.325l-2.541-1.949-1.63 1.486s-.127.096-.266.036c0 0-.12-.011-.27-.486s-.911-2.972-.911-2.972L6 12.349s-.387-.137-.425-.438c-.037-.3.437-.462.437-.462l10.03-3.934s.824-.362.824.238z"})))},{name:"threads",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 192 192"},React.createElement("g",null,React.createElement("path",{d:"M141.537 88.988a67 67 0 0 0-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.229c8.249.053 14.474 2.452 18.503 7.129 2.932 3.405 4.893 8.111 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.194 47.292 9.642 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553M98.44 129.507c-10.44.588-21.286-4.098-21.82-14.135-.397-7.442 5.296-15.746 22.461-16.735q2.948-.17 5.79-.169c6.235 0 12.068.606 17.371 1.765-1.978 24.702-13.58 28.713-23.802 29.274"})))},{name:"tiktok-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M5 3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm7.531 3h2.053s-.114 2.635 2.85 2.82v2.04s-1.582.099-2.85-.87l.021 4.207a3.804 3.804 0 1 1-3.802-3.802h.533v2.082a1.73 1.73 0 0 0-1.922.648 1.727 1.727 0 0 0 1.947 2.646 1.73 1.73 0 0 0 1.19-1.642z"})))},{name:"tiktok",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.22 2h3.42s-.19 4.394 4.75 4.702v3.396s-2.636.166-4.75-1.448l.037 7.012a6.338 6.338 0 1 1-6.34-6.339h.89v3.472a2.882 2.882 0 1 0 2.024 2.752z"})))},{name:"tripadvisor",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.01 9.859c.236-1.002.985-2.003.985-2.003l-3.341-.002C16.779 6.643 14.502 6 11.979 6 9.363 6 7 6.659 5.135 7.877L2 7.88s.74.988.98 1.983a4.98 4.98 0 0 0-.977 2.961 5.01 5.01 0 0 0 5.009 5.003 5 5 0 0 0 3.904-1.875l1.065 1.592 1.076-1.606a4.96 4.96 0 0 0 1.838 1.448 4.98 4.98 0 0 0 3.831.151 5.01 5.01 0 0 0 2.963-6.431 5 5 0 0 0-.679-1.247m-13.998 6.96a4 4 0 0 1-3.998-3.995 4 4 0 0 1 3.998-3.997 4 4 0 0 1 3.996 3.997 4 4 0 0 1-3.996 3.995m4.987-4.36A5.007 5.007 0 0 0 7.11 7.821c1.434-.613 3.081-.947 4.867-.947 1.798 0 3.421.324 4.853.966a4.984 4.984 0 0 0-4.831 4.619m6.288 4.134a3.97 3.97 0 0 1-3.058-.122 3.96 3.96 0 0 1-2.075-2.245v-.001a3.97 3.97 0 0 1 .118-3.056 3.97 3.97 0 0 1 2.246-2.077 4.005 4.005 0 0 1 5.135 2.366 4.006 4.006 0 0 1-2.366 5.135"}),React.createElement("path",{d:"M6.949 10.307a2.477 2.477 0 0 0-2.475 2.472 2.48 2.48 0 0 0 2.475 2.474 2.474 2.474 0 0 0 0-4.946m0 4.094a1.626 1.626 0 0 1-1.624-1.623 1.621 1.621 0 1 1 1.624 1.623M16.981 10.307a2.477 2.477 0 0 0-2.474 2.472 2.48 2.48 0 0 0 2.474 2.474 2.476 2.476 0 0 0 2.472-2.474 2.475 2.475 0 0 0-2.472-2.472m0 4.094a1.625 1.625 0 0 1-1.622-1.623 1.622 1.622 0 1 1 1.622 1.623"}),React.createElement("path",{d:"M7.778 12.778a.832.832 0 1 1-1.664.002.832.832 0 0 1 1.664-.002M16.981 11.947a.832.832 0 1 0 .002 1.666.832.832 0 0 0-.002-1.666"})))},{name:"tumblr-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M16.749 17.396c-.357.17-1.041.319-1.551.332-1.539.041-1.837-1.081-1.85-1.896V9.847h3.861v-2.91h-3.847V2.039h-2.817c-.046 0-.127.041-.138.144-.165 1.499-.867 4.13-3.783 5.181v2.484h1.945v6.282c0 2.151 1.587 5.206 5.775 5.135 1.413-.024 2.982-.616 3.329-1.126z"})))},{name:"tumblr",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5.569 14.265c-2.446.042-3.372-1.742-3.372-2.998v-3.668H8.923v-1.45c1.703-.614 2.113-2.15 2.209-3.025.007-.06.054-.084.081-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.131 1.081 1.107.298-.008.697-.094.906-.194l.54 1.601c-.205.296-1.121.641-1.946.656"})))},{name:"twitch",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M16.499 8.089h-1.636v4.91h1.636zm-4.499 0h-1.637v4.91H12zM4.228 3.178 3 6.451v13.092h4.499V22h2.456l2.454-2.456h3.681L21 14.636V3.178zm15.136 10.638L16.5 16.681H12l-2.453 2.453V16.68H5.863V4.814h13.501z"})))},{name:"twitter-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22.23 5.924a8.2 8.2 0 0 1-2.357.646 4.12 4.12 0 0 0 1.804-2.27 8.2 8.2 0 0 1-2.606.996 4.103 4.103 0 0 0-6.991 3.742 11.65 11.65 0 0 1-8.457-4.287 4.1 4.1 0 0 0-.556 2.063 4.1 4.1 0 0 0 1.825 3.415 4.1 4.1 0 0 1-1.859-.513v.052a4.104 4.104 0 0 0 3.292 4.023 4.1 4.1 0 0 1-1.853.07 4.11 4.11 0 0 0 3.833 2.85 8.24 8.24 0 0 1-5.096 1.756 8 8 0 0 1-.979-.057 11.6 11.6 0 0 0 6.29 1.843c7.547 0 11.675-6.252 11.675-11.675q0-.267-.012-.531a8.3 8.3 0 0 0 2.047-2.123"})))},{name:"twitter",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-2.534 6.71q.007.148.007.298c0 3.045-2.318 6.556-6.556 6.556a6.5 6.5 0 0 1-3.532-1.035q.27.032.55.032a4.63 4.63 0 0 0 2.862-.986 2.31 2.31 0 0 1-2.152-1.6 2.3 2.3 0 0 0 1.04-.04 2.306 2.306 0 0 1-1.848-2.259v-.029c.311.173.666.276 1.044.288a2.303 2.303 0 0 1-.713-3.076 6.54 6.54 0 0 0 4.749 2.407 2.305 2.305 0 0 1 3.926-2.101 4.6 4.6 0 0 0 1.463-.559 2.3 2.3 0 0 1-1.013 1.275c.466-.056.91-.18 1.323-.363-.31.461-.7.867-1.15 1.192"})))},{name:"untappd",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m11 13.299-5.824 8.133c-.298.416-.8.635-1.308.572-.578-.072-1.374-.289-2.195-.879S.392 19.849.139 19.323a1.4 1.4 0 0 1 .122-1.425l5.824-8.133a3.1 3.1 0 0 1 1.062-.927l1.146-.604c.23-.121.436-.283.608-.478.556-.631 2.049-2.284 4.696-4.957l.046-.212a.13.13 0 0 1 .096-.1l.146-.037a.135.135 0 0 0 .101-.141l-.015-.18a.13.13 0 0 1 .125-.142c.176-.005.518.046 1.001.393s.64.656.692.824a.13.13 0 0 1-.095.164l-.175.044a.13.13 0 0 0-.101.141l.012.15a.13.13 0 0 1-.063.123l-.186.112c-1.679 3.369-2.764 5.316-3.183 6.046a2.2 2.2 0 0 0-.257.73l-.205 1.281A3.1 3.1 0 0 1 11 13.3zm12.739 4.598-5.824-8.133a3.1 3.1 0 0 0-1.062-.927l-1.146-.605a2.1 2.1 0 0 1-.608-.478 51 51 0 0 0-.587-.654.09.09 0 0 0-.142.018 97 97 0 0 1-1.745 3.223 1.4 1.4 0 0 0-.171.485 3.5 3.5 0 0 0 0 1.103l.01.064c.075.471.259.918.536 1.305l5.824 8.133c.296.413.79.635 1.294.574a4.76 4.76 0 0 0 2.209-.881 4.76 4.76 0 0 0 1.533-1.802 1.4 1.4 0 0 0-.122-1.425zM8.306 3.366l.175.044a.134.134 0 0 1 .101.141l-.012.15a.13.13 0 0 0 .063.123l.186.112q.465.933.869 1.721c.026.051.091.06.129.019q.655-.703 1.585-1.668a.137.137 0 0 0 .003-.19c-.315-.322-.645-.659-1.002-1.02l-.046-.212a.13.13 0 0 0-.096-.099l-.146-.037a.135.135 0 0 1-.101-.141l.015-.18a.13.13 0 0 0-.123-.142c-.175-.005-.518.045-1.002.393-.483.347-.64.656-.692.824a.13.13 0 0 0 .095.164z"})))},{name:"vimeo",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22.396 7.164q-.139 3.039-4.245 8.32Q13.907 21 10.97 21q-1.82 0-3.079-3.359l-1.68-6.159q-.934-3.36-2.005-3.36-.234.001-1.634.98l-.978-1.261q1.541-1.353 3.037-2.708 2.056-1.774 3.084-1.869 2.429-.234 2.99 3.321.607 3.836.841 4.769.7 3.181 1.542 3.181.653 0 1.963-2.065 1.307-2.063 1.401-3.142.187-1.781-1.401-1.782-.747.001-1.541.341 1.534-5.024 5.862-4.884 3.21.095 3.024 4.161"})))},{name:"vk",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{fillRule:"evenodd",d:"M1.687 1.687C0 3.374 0 6.09 0 11.52v.96c0 5.431 0 8.146 1.687 9.833S6.09 24 11.52 24h.96c5.431 0 8.146 0 9.833-1.687S24 17.91 24 12.48v-.96c0-5.431 0-8.146-1.687-9.833S17.91 0 12.48 0h-.96C6.09 0 3.374 0 1.687 1.687M4.05 7.3c.13 6.24 3.25 9.99 8.72 9.99h.31v-3.57c2.01.2 3.53 1.67 4.14 3.57h2.84c-.78-2.84-2.83-4.41-4.11-5.01 1.28-.74 3.08-2.54 3.51-4.98h-2.58c-.56 1.98-2.22 3.78-3.8 3.95V7.3H10.5v6.92c-1.6-.4-3.62-2.34-3.71-6.92z"})))},{name:"whatsapp",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m2.048 22 1.406-5.136a9.9 9.9 0 0 1-1.323-4.955C2.133 6.446 6.579 2 12.042 2a9.85 9.85 0 0 1 7.011 2.906 9.85 9.85 0 0 1 2.9 7.011c-.002 5.464-4.448 9.91-9.91 9.91h-.004a9.9 9.9 0 0 1-4.736-1.206zm5.497-3.172.301.179a8.2 8.2 0 0 0 4.193 1.148h.003c4.54 0 8.235-3.695 8.237-8.237a8.2 8.2 0 0 0-2.41-5.828 8.18 8.18 0 0 0-5.824-2.416c-4.544 0-8.239 3.695-8.241 8.237a8.2 8.2 0 0 0 1.259 4.384l.196.312-.832 3.04zm9.49-4.554c-.062-.103-.227-.165-.475-.289s-1.465-.723-1.692-.806-.392-.124-.557.124-.64.806-.784.971-.289.186-.536.062-1.046-.385-1.991-1.229c-.736-.657-1.233-1.468-1.378-1.715s-.015-.382.109-.505c.111-.111.248-.289.371-.434.124-.145.165-.248.248-.413s.041-.31-.021-.434-.557-1.343-.763-1.839c-.202-.483-.407-.417-.559-.425-.144-.007-.31-.009-.475-.009a.9.9 0 0 0-.66.31c-.226.248-.866.847-.866 2.066s.887 2.396 1.011 2.562 1.746 2.666 4.23 3.739c.591.255 1.052.408 1.412.522.593.189 1.133.162 1.56.098.476-.071 1.465-.599 1.671-1.177.206-.58.206-1.075.145-1.179"})))},{name:"woocommerce",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 2H5C3.3 2 2 3.3 2 5v11c0 1.7 1.3 3 3 3h4l6 3-1-3h5c1.7 0 3-1.3 3-3V5c0-1.7-1.3-3-3-3m-1.6 4.5c-.4.8-.8 2.1-1 3.9-.3 1.8-.4 3.1-.3 4.1 0 .3 0 .5-.1.7s-.3.4-.6.4-.6-.1-.9-.4c-1-1-1.8-2.6-2.4-4.6-.7 1.4-1.2 2.4-1.6 3.1-.6 1.2-1.2 1.8-1.6 1.9-.3 0-.5-.2-.8-.7-.5-1.4-1.1-4.2-1.7-8.2 0-.3 0-.5.2-.7.1-.2.4-.3.7-.4.5 0 .9.2.9.8.3 2.3.7 4.2 1.1 5.7l2.4-4.5c.2-.4.4-.6.8-.6q.75 0 .9.9c.3 1.4.6 2.6 1 3.7.3-2.7.8-4.7 1.4-5.9.2-.3.4-.5.7-.5.2 0 .5.1.7.2q.3.3.3.6c0 .3 0 .4-.1.5"})))},{name:"wordpress",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.158 12.786 9.46 20.625a9 9 0 0 0 5.526-.144 1 1 0 0 1-.065-.124zM3.009 12a8.99 8.99 0 0 0 5.067 8.092L3.788 8.341A8.95 8.95 0 0 0 3.009 12m15.06-.454c0-1.112-.399-1.881-.741-2.48-.456-.741-.883-1.368-.883-2.109 0-.826.627-1.596 1.51-1.596q.06.002.116.007A8.96 8.96 0 0 0 12 3.009a8.98 8.98 0 0 0-7.512 4.052c.211.007.41.011.579.011.94 0 2.396-.114 2.396-.114.484-.028.541.684.057.741 0 0-.487.057-1.029.085l3.274 9.739 1.968-5.901-1.401-3.838c-.484-.028-.943-.085-.943-.085-.485-.029-.428-.769.057-.741 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.485-.028.542.684.057.741 0 0-.488.057-1.029.085l3.249 9.665.897-2.996q.684-1.753.684-2.907m1.82-3.86q.06.428.06.924c0 .912-.171 1.938-.684 3.22l-2.746 7.94a8.98 8.98 0 0 0 4.47-7.771 8.9 8.9 0 0 0-1.1-4.313M12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"})))},{name:"x",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387z"})))},{name:"xanga",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M9 9h6v6H9zM3 9h6V3H3zm12 0h6V3h-6zm0 12h6v-6h-6zM3 21h6v-6H3z"})))},{name:"youtube",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.8 8.001s-.195-1.378-.795-1.985c-.76-.797-1.613-.801-2.004-.847-2.799-.202-6.997-.202-6.997-.202h-.009s-4.198 0-6.997.202c-.39.047-1.242.051-2.003.847-.6.607-.795 1.985-.795 1.985S2 9.62 2 11.238v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.761.797 1.76.771 2.205.855 1.6.153 6.8.201 6.8.201s4.203-.006 7.001-.209c.391-.047 1.243-.051 2.004-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517c0-1.618-.2-3.237-.2-3.237M9.935 14.594l-.001-5.62 5.404 2.82z"})))}]},8992:(e,t,a)=>{"use strict";a(6072);var c=a(8120),n=a.n(c),r=a(1609);a(1135);r.PureComponent,n().string.isRequired,n().number,n().func,n().string},5973:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(1455),n=a.n(c),r=a(6185),l=a.n(r);const s={fetchWaf:()=>n()({path:"jetpack-protect/v1/waf",method:"GET"}).then(l()),toggleWaf:()=>n()({method:"POST",path:"jetpack-protect/v1/toggle-waf"}),updateWaf:e=>n()({method:"POST",path:"jetpack/v4/waf",data:e}),wafSeen:()=>n()({path:"jetpack-protect/v1/waf-seen",method:"POST"}),wafUpgradeSeen:()=>n()({path:"jetpack-protect/v1/waf-upgrade-seen",method:"POST"}),fetchOnboardingProgress:()=>n()({path:"jetpack-protect/v1/onboarding-progress",method:"GET"}),completeOnboardingSteps:e=>n()({path:"jetpack-protect/v1/onboarding-progress",method:"POST",data:{step_ids:e}}),fetchScanHistory:()=>n()({path:"jetpack-protect/v1/scan-history",method:"GET"})}},1186:(e,t,a)=>{"use strict";a.d(t,{A:()=>_});var c=a(6072),n=a.n(c),r=a(2947),l=a(5918),s=a(9384),i=a(1455),o=a.n(i),m=a(7143),p=a(7723),d=a(3832),u=a(1609),h=a.n(u),g=a(8140),v=a(6516),f=a(7478),E=a(8097),A=a(4962),y=a(3041),w=a(241),k=a(1517),b=a(6062);const __=p.__,_=({children:e})=>{(0,b.A)();const{isSeen:t}=(0,v.A)(),a=(0,m.useSelect)((e=>e(f.a).getNotice())),{refreshPlan:c,startScanOptimistically:i,refreshStatus:p,refreshScanHistory:_}=(0,m.useDispatch)(f.a),{adminUrl:R}=window.jetpackProtectInitialState||{},{run:C,isRegistered:j,hasCheckoutStarted:S}=(0,s.useProductCheckoutWorkflow)({productSlug:g.J3,redirectUrl:(0,d.addQueryArgs)(R,{checkPlan:!0}),siteProductAvailabilityHandler:async()=>o()({path:"jetpack-protect/v1/check-plan",method:"GET"}).then((e=>e)),useBlogIdSuffix:!0});return(0,u.useEffect)((()=>{(0,d.getQueryArg)(window.location.search,"checkPlan")&&(i(),setTimeout((()=>{c(),p(!0),_()}),5e3))}),[c,p,_,i]),!j||S?h().createElement(E.A,{onScanAdd:C}):h().createElement(r.A,{moduleName:__("Jetpack Protect","jetpack-protect"),header:h().createElement(A.A,null)},a.message&&h().createElement(y.A,n()({floating:!0,dismissable:!0},a)),h().createElement(l.A,{horizontalSpacing:0},h().createElement(w.A,{className:k.A.navigation},h().createElement(w.o,{link:"/scan",label:__("Scan","jetpack-protect")}),h().createElement(w.o,{link:"/firewall",label:h().createElement(h().Fragment,null,__("Firewall","jetpack-protect"),!1===t&&h().createElement("span",{className:k.A.badge},__("New","jetpack-protect")))}))),e)}},6062:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(9384),n=a(7143),r=a(1609),l=a(7478);const s=()=>{const{isRegistered:e}=(0,c.useConnection)(),{refreshStatus:t,refreshScanHistory:a}=(0,n.useDispatch)(l.a),s=(0,n.useSelect)((e=>e(l.a).getStatus()));(0,r.useEffect)((()=>{e&&!s.status&&(t(),a())}),[e])}},2929:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(6427),n=a(1609),r=a.n(n),l=a(3940);function s({className:e,color:t="#D63638"}){return r().createElement("div",{className:l.A.container},r().createElement(c.SVG,{className:e,width:"127",height:"136",viewBox:"0 0 127 136",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r().createElement(c.G,{filter:"url(#filter0_d_2716_19567)"},r().createElement(c.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M63.4061 36L86.8123 46.4057V61.9177C86.8123 75.141 78.1289 87.6611 65.8844 91.6107C64.2754 92.1298 62.5369 92.1297 60.9279 91.6107C48.6834 87.6611 40 75.141 40 61.9177V46.4057L63.4061 36Z",fill:t}),r().createElement(c.Rect,{x:"59.8953",y:"72.1666",width:"7.02184",height:"7",rx:"3.5",fill:"white"}),r().createElement(c.Path,{d:"M59.9619 51.0626C59.9258 50.4868 60.383 50 60.9599 50H65.8524C66.4293 50 66.8866 50.4868 66.8505 51.0626L65.8056 67.7292C65.7725 68.2562 65.3355 68.6667 64.8075 68.6667H62.0048C61.4769 68.6667 61.0398 68.2562 61.0068 67.7292L59.9619 51.0626Z",fill:"white"})),r().createElement("defs",null,r().createElement("filter",{id:"filter0_d_2716_19567",x:"0",y:"0",width:"126.812",height:"136",filterUnits:"userSpaceOnUse",colorInterpolationFilters:"sRGB"},r().createElement("feFlood",{floodOpacity:"0",result:"BackgroundImageFix"}),r().createElement("feColorMatrix",{in:"SourceAlpha",type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0",result:"hardAlpha"}),r().createElement("feOffset",{dy:"4"}),r().createElement("feGaussianBlur",{stdDeviation:"20"}),r().createElement("feComposite",{in2:"hardAlpha",operator:"out"}),r().createElement("feColorMatrix",{type:"matrix",values:"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0"}),r().createElement("feBlend",{mode:"normal",in2:"BackgroundImageFix",result:"effect1_dropShadow_2716_19567"}),r().createElement("feBlend",{mode:"normal",in:"SourceGraphic",in2:"effect1_dropShadow_2716_19567",result:"shape"})))))}},4907:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(6072),n=a.n(c),r=a(1112),l=a(6427),s=a(1609),i=a.n(s),o=a(3902);function m({children:e,...t}){return i().createElement(l.ButtonGroup,n()({className:o.A["button-group"]},t),e)}m.Button=e=>i().createElement(r.A,e);const p=m},5747:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(6461),n=a(7143),r=a(7723),l=a(7478),s=a(9417),i=a(9370);const __=r.__,o=({children:e})=>{const{checkCredentials:t}=(0,n.useDispatch)(l.a),{credentials:a,credentialsIsFetching:r}=(0,n.useSelect)((e=>({credentials:e(l.a).getCredentials(),credentialsIsFetching:e(l.a).getCredentialsIsFetching()})));return a||r||t(),a?0===a.length?React.createElement(s.A,null):e:React.createElement("div",{className:i.A.loading},React.createElement(c.A,{color:"black",style:{color:"black",marginTop:0,marginLeft:0}}),React.createElement("p",{className:i.A.loading__message},__("Checking credentials…","jetpack-protect")))}},9417:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(7425),n=a(1112),r=a(3924),l=a(7143),s=a(7723),i=a(1609),o=a(7478),m=a(3041),p=a(2148);const __=s.__,d=()=>{const{setModal:e}=(0,l.useDispatch)(o.a),{siteSuffix:t,blogID:a}=window.jetpackProtectInitialState,{checkCredentials:s}=(0,l.useDispatch)(o.a),d=(0,l.useSelect)((e=>e(o.a).getCredentials()));return(0,i.useEffect)((()=>{const e=setInterval((()=>{d&&0!==d.length||s()}),3e3);return()=>clearInterval(e)}),[s,d]),React.createElement(React.Fragment,null,React.createElement(c.Ay,{variant:"title-medium",mb:2},__("Site credentials needed","jetpack-protect")),React.createElement(m.A,{type:"info",message:__("Before Jetpack Protect can auto-fix threats on your site, it needs your server credentials.","jetpack-protect")}),React.createElement(c.Ay,{mb:3},__("Your server credentials allow Jetpack Protect to access the server that’s powering your website. This information is securely saved and only used to perform fix threats detected on your site.","jetpack-protect")),React.createElement(c.Ay,{mb:3},__("Once you’ve entered server credentials, Jetpack Protect will be fixing the selected threats.","jetpack-protect")),React.createElement("div",{className:p.A.footer},React.createElement(n.A,{variant:"secondary",onClick:t=>{t.preventDefault(),e({type:null})}},__("Not now","jetpack-protect")),React.createElement(n.A,{isExternalLink:!0,weight:"regular",href:(0,r.A)("jetpack-settings-security-credentials",{site:a??t})},__("Enter server credentials","jetpack-protect"))))}},9627:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(9032),n=a(1609),r=a(1526);const l=e=>{const t=e.lastIndexOf("/");return t>-1?[e.slice(0,t),e.slice(t)]:["",e]},s=({diff:e})=>React.createElement("div",{className:r.A["diff-viewer"]},(0,c.i)(e).map(((e,t)=>React.createElement(n.Fragment,{key:t},React.createElement("div",{key:`file-${t}`,className:r.A["diff-viewer__filename"]},(({oldFileName:e,newFileName:t})=>{const a="a"===e[0]&&"/"===e[1]&&"b"===t[0]&&"/"===t[1],[c,s]=a?[e.slice(2),t.slice(2)]:[e,t];if(c===s){const[e,t]=l(c);return React.createElement(n.Fragment,null,e&&React.createElement("span",{className:r.A["diff-viewer__path-prefix"]},e),React.createElement("span",{className:r.A["diff-viewer__path"]},t))}const i=Math.max(c.length,s.length);for(let e=0,t=0;e{let a=0;return e.lines.map(((c,n)=>React.createElement("div",{key:`${t}-${n}`},"+"===c[0]?" ":e.oldStart+a++)))}))),React.createElement("div",{key:"right-numbers",className:r.A["diff-viewer__line-numbers"]},e.hunks.map(((e,t)=>{let a=0;return e.lines.map(((c,n)=>React.createElement("div",{key:`${t}-${n}`},"-"===c[0]?" ":e.newStart+a++)))}))),React.createElement("div",{className:r.A["diff-viewer__lines"]},e.hunks.map(((e,t)=>e.lines.map(((e,a)=>{const c=e.slice(1).replace(/^\s*$/," "),n=`${t}-${a}`;switch(e[0]){case" ":return React.createElement("div",{key:n},c);case"-":return React.createElement("del",{key:n},c);case"+":return React.createElement("ins",{key:n},c);default:return}}))))))))))},7137:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(7425),n=a(7723),r=a(1609),l=a.n(r),s=a(5242),i=a(2929),o=a(5165),m=a(2938);const __=n.__;function p({baseErrorMessage:e="",errorMessage:t="",errorCode:a=""}){let n=t?`${t} (${a}).`:e;return n+=" "+__("Try again in a few minutes.","jetpack-protect"),l().createElement(o.A,{main:l().createElement("div",{className:m.A["main-content"]},l().createElement(i.A,{className:m.A["alert-icon-wrapper"],color:"#D63638"}),l().createElement(c.H3,null,e),l().createElement(c.Ay,null,n)),secondary:l().createElement("div",{className:m.A.illustration},l().createElement("img",{src:s,alt:""})),preserveSecondaryOnMobile:!1})}},8955:(e,t,a)=>{"use strict";a.d(t,{A:()=>y});var c=a(7425),n=a(1112),r=a(766),l=a(6427),s=a(7143),i=a(6087),o=a(7723),m=a(1609),p=a(8140),d=a(727),u=a(6516),h=a(7478),g=a(5165),v=a(934);const __=o.__,f=()=>{const{setModal:e}=(0,s.useDispatch)(h.a);return React.createElement("div",{className:v.A["standalone-mode-section"]},React.createElement(c.hE,null,__("Standalone mode","jetpack-protect")),React.createElement(c.Ay,{mb:2},__("Learn how you can execute the firewall before WordPress initializes. This mode offers the most protection.","jetpack-protect")),React.createElement(n.A,{variant:"link",isExternalLink:!0,weight:"regular",onClick:t=>{t.preventDefault(),e({type:"STANDALONE_MODE"})}},__("Learn more","jetpack-protect")))},E=()=>{const{config:e,isUpdating:t,toggleShareDebugData:a}=(0,u.A)(),{hasRequiredPlan:n}=(0,d.A)(),{jetpackWafShareDebugData:r}=e||{},{setNotice:o}=(0,s.useDispatch)(h.a),[g,f]=(0,m.useState)({jetpack_waf_share_debug_data:r}),E=(0,m.useCallback)((()=>{f({...g,jetpack_waf_share_debug_data:!g.jetpack_waf_share_debug_data}),a().then((()=>o({type:"success",duration:5e3,dismissable:!0,message:__("Changes saved.","jetpack-protect")}))).catch((()=>{o({type:"error",dismissable:!0,message:(0,i.createInterpolateElement)(__("An error ocurred. Please try again or contact support.","jetpack-protect"),{supportLink:React.createElement(l.ExternalLink,{href:n?p.NW:p.pQ})})})}))}),[g,a,o,n]);return(0,m.useEffect)((()=>{f({jetpack_waf_share_debug_data:r})}),[r]),React.createElement("div",{className:v.A["share-data-section"]},React.createElement(c.hE,{mb:2},__(" Share detailed data with Jetpack","jetpack-protect")),React.createElement("div",{className:v.A["footer-checkbox"]},React.createElement(l.CheckboxControl,{checked:Boolean(g.jetpack_waf_share_debug_data),onChange:E,disabled:t}),React.createElement(c.Ay,null,__("Allow Jetpack to collect detailed data from blocked requests to enhance firewall protection and accuracy.","jetpack-protect"))))},A=()=>{const{config:e,isUpdating:t,toggleShareData:a}=(0,u.A)(),{hasRequiredPlan:n}=(0,d.A)(),{jetpackWafShareData:r}=e||{},{setNotice:o}=(0,s.useDispatch)(h.a),[g,f]=(0,m.useState)({jetpack_waf_share_data:r}),E=(0,m.useCallback)((()=>{f({...g,jetpack_waf_share_data:!g.jetpack_waf_share_data}),a().then((()=>o({type:"success",duration:5e3,dismissable:!0,message:__("Changes saved.","jetpack-protect")}))).catch((()=>{o({type:"error",dismissable:!0,message:(0,i.createInterpolateElement)(__("An error ocurred. Please try again or contact support.","jetpack-protect"),{supportLink:React.createElement(l.ExternalLink,{href:n?p.NW:p.pQ})})})}))}),[g,a,o,n]);return(0,m.useEffect)((()=>{f({jetpack_waf_share_data:r})}),[r]),React.createElement("div",{className:v.A["share-data-section"]},React.createElement(c.hE,{mb:2},__(" Share basic data with Jetpack","jetpack-protect")),React.createElement("div",{className:v.A["footer-checkbox"]},React.createElement(l.CheckboxControl,{checked:Boolean(g.jetpack_waf_share_data),onChange:E,disabled:t}),React.createElement(c.Ay,null,__("Allow Jetpack to collect basic data from blocked requests to improve firewall protection and accuracy.","jetpack-protect"))))},y=()=>{const{isEnabled:e}=(0,u.A)();return React.createElement(r.A,null,React.createElement(g.A,{main:React.createElement(f,null),secondary:e&&React.createElement(React.Fragment,null,React.createElement(A,null),React.createElement(E,null)),preserveSecondaryOnMobile:!0}))}},9921:(e,t,a)=>{"use strict";a.d(t,{A:()=>C});var c=a(1112),n=a(7425),r=a(766),l=a(5918),s=a(8509),i=a(1158),o=a(9384),m=a(6427),p=a(7723),d=a(1113),u=a(748),h=a(1609),g=a.n(h),v=a(8140),f=a(1226),E=a(727),A=a(6516),y=a(1416);const __=p.__,w=()=>{const{adminUrl:e}=window.jetpackProtectInitialState||{},t=e+"#/firewall",{config:{automaticRulesAvailable:a}}=(0,A.A)(),{run:n}=(0,o.useProductCheckoutWorkflow)({productSlug:v.J3,redirectUrl:t,useBlogIdSuffix:!0}),{recordEventHandler:r}=(0,f.A)(),l=r("jetpack_protect_waf_header_get_scan_link_click",n);return g().createElement(c.A,{className:y.A["upgrade-button"],onClick:l},a?__("Upgrade to update automatic security rules","jetpack-protect",0):__("Upgrade to enable automatic firewall protection","jetpack-protect"))},k=({children:e=__("The free version of the firewall does not receive updates to automatic security rules.","jetpack-protect")})=>{const[t,a]=(0,h.useState)(!1),c=(0,h.useCallback)((()=>{a(!0)}),[]),r=(0,h.useCallback)((()=>{a(!1)}),[]);return g().createElement("div",{className:y.A["icon-popover"],onMouseLeave:r,onMouseEnter:c,onClick:c,onFocus:c,onBlur:r,role:"presentation"},g().createElement(d.A,{icon:u.A}),t&&g().createElement(m.Popover,{noArrow:!1,offset:5,inline:!0},g().createElement(n.Ay,{className:y.A["popover-text"],variant:"body-small"},e)))},b=({className:e,text:t="",popover:a=!1,children:c})=>g().createElement("div",{className:y.A["firewall-subheading__content"]},g().createElement(n.Ay,{className:y.A[e],weight:600},t),a&&g().createElement(k,{children:c})),_=({jetpackWafIpBlockListEnabled:e,jetpackWafIpAllowListEnabled:t,hasRequiredPlan:a,automaticRulesAvailable:c,jetpackWafAutomaticRules:n,bruteForceProtectionIsEnabled:r,wafSupported:l})=>{const s=e||t,i=l&&n&&s,o=l&&n&&!s,m=l&&!n&&s,p=l&&!n&&!s;return g().createElement(g().Fragment,null,g().createElement("div",{className:y.A["firewall-subheading"]},l&&r&&g().createElement(b,{className:"brute-force-protection-subheading",text:__("Brute force protection is active.","jetpack-protect")}),p&&g().createElement(b,{text:__("There are no firewall rules applied.","jetpack-protect")}),o&&g().createElement(b,{text:__("Automatic firewall protection is enabled.","jetpack-protect"),popover:!a}),m&&g().createElement(b,{text:__("Only manual IP list rules apply.","jetpack-protect"),popover:!a&&!c,children:__("The free version of the firewall only allows for use of manual rules.","jetpack-protect")}),i&&g().createElement(b,{text:__("All firewall rules apply.","jetpack-protect"),popover:!a})),!a&&l&&g().createElement(w,null))},R=({status:e,hasRequiredPlan:t,automaticRulesEnabled:a,automaticRulesAvailable:c,jetpackWafIpBlockListEnabled:o,jetpackWafIpAllowListEnabled:p,jetpackWafAutomaticRules:d,bruteForceProtectionIsEnabled:u,wafSupported:h,standaloneMode:v})=>g().createElement(r.A,null,g().createElement(l.A,{className:y.A["firewall-header"],horizontalSpacing:7,horizontalGap:0},g().createElement(s.A,null,"on"===e&&g().createElement(g().Fragment,null,g().createElement(i.A,{status:"active",label:v?__("Standalone mode","jetpack-protect"):__("Active","jetpack-protect",0)})," ",g().createElement(n.H3,{className:y.A["firewall-heading"],mb:1,mt:2},!h&&__("Brute force protection is active","jetpack-protect"),h&&(a?__("Automatic firewall is on","jetpack-protect"):__("Firewall is on","jetpack-protect",0))),g().createElement(_,{jetpackWafIpBlockListEnabled:o,jetpackWafIpAllowListEnabled:p,jetpackWafAutomaticRules:d,bruteForceProtectionIsEnabled:u,hasRequiredPlan:t,automaticRulesAvailable:c,wafSupported:h})),"off"===e&&g().createElement(g().Fragment,null,g().createElement(i.A,{status:"inactive",label:__("Inactive","jetpack-protect")}),g().createElement(n.H3,{className:y.A["firewall-heading"],mb:1,mt:2},!h&&__("Brute force protection is disabled","jetpack-protect"),h&&(c?__("Automatic firewall is off","jetpack-protect"):__("Firewall is off","jetpack-protect",0))),g().createElement(_,{jetpackWafIpBlockListEnabled:o,jetpackWafIpAllowListEnabled:p,jetpackWafAutomaticRules:d,bruteForceProtectionIsEnabled:u,hasRequiredPlan:t,automaticRulesAvailable:c,wafSupported:h})),"loading"===e&&g().createElement(g().Fragment,null,g().createElement(m.Spinner,{className:y.A.spinner}),g().createElement(n.H3,{className:y.A["firewall-heading"],mb:2,mt:2},__("Automatic firewall is being set up","jetpack-protect")),g().createElement(n.Ay,{className:y.A["loading-text"],weight:600},__("Please wait…","jetpack-protect")))),g().createElement(s.A,null,g().createElement("div",{className:y.A["stat-card-wrapper"]})))),C=()=>{const{config:{jetpackWafAutomaticRules:e,jetpackWafIpBlockListEnabled:t,jetpackWafIpAllowListEnabled:a,standaloneMode:c,automaticRulesAvailable:n,bruteForceProtection:r},isToggling:l,wafSupported:s,isEnabled:i}=(0,A.A)(),{hasRequiredPlan:o}=(0,E.A)(),m=(s?i:r)?"on":"off";return g().createElement(R,{status:l?"loading":m,hasRequiredPlan:o,automaticRulesEnabled:e,automaticRulesAvailable:n,jetpackWafIpBlockListEnabled:t,jetpackWafIpAllowListEnabled:a,jetpackWafAutomaticRules:e,bruteForceProtectionIsEnabled:r,wafSupported:s,standaloneMode:c})}},8680:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var c=a(7425),n=a(1112),r=a(7143),l=a(7723),s=a(1609),i=a(7478),o=a(5747),m=a(1571),p=a(4031),d=a(4047);const __=l.__,u=({threatList:e=[]})=>{const{setModal:t,fixThreats:a}=(0,r.useDispatch)(i.a),{threatsUpdating:l}=(0,r.useSelect)((e=>e(i.a).getThreatsUpdating())),[u,h]=(0,s.useState)(e.map((({id:e})=>e))),g=(0,s.useCallback)(((e,t)=>{h(e?[...u,t.id]:u.filter((e=>e!==t.id)))}),[u]);return React.createElement(p.A,null,React.createElement(o.A,null,React.createElement(c.Ay,{variant:"title-medium",mb:2},__("Fix all threats","jetpack-protect")),React.createElement(c.Ay,{mb:3},__("Jetpack will be fixing the selected threats:","jetpack-protect")),React.createElement("div",{className:d.A.list},e.map((e=>React.createElement(m.A,{key:e.id,threat:e,fixAllDialog:!0,onCheckFix:g})))),React.createElement("div",{className:d.A.footer},React.createElement(n.A,{variant:"secondary",onClick:e=>{e.preventDefault(),t({type:null})}},__("Cancel","jetpack-protect")),React.createElement(n.A,{isLoading:Boolean(l)&&l[u[0]],onClick:async e=>{e.preventDefault(),a(u,(()=>{t({type:null})}))},disabled:!u.length},__("Fix all threats","jetpack-protect")))))}},2607:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(7425),n=a(1112),r=a(7143),l=a(7723),s=a(7478),i=a(5747),o=a(1571),m=a(4031),p=a(2318);const __=l.__,d=({id:e,fixable:t,label:a,icon:l,severity:d})=>{const{setModal:u,fixThreats:h}=(0,r.useDispatch)(s.a),g=(0,r.useSelect)((e=>e(s.a).getThreatsUpdating()));return React.createElement(m.A,null,React.createElement(i.A,null,React.createElement(c.Ay,{variant:"title-medium",mb:2},__("Fix Threat","jetpack-protect")),React.createElement(c.Ay,{mb:3},__("Jetpack will be fixing the selected threat:","jetpack-protect")),React.createElement("div",{className:p.A.list},React.createElement(o.A,{threat:{id:e,fixable:t,label:a,icon:l,severity:d},fixAllDialog:!1})),React.createElement("div",{className:p.A.footer},React.createElement(n.A,{variant:"secondary",onClick:e=>{e.preventDefault(),u({type:null})}},__("Cancel","jetpack-protect")),React.createElement(n.A,{isLoading:Boolean(g&&g[e]),onClick:async t=>{t.preventDefault(),h([e],(()=>{u({type:null})}))}},__("Fix threat","jetpack-protect")))))}},7508:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(1609),n=a(9443);const r=({ariaLabel:e,checked:t=!1,className:a="",disabled:r=!1,id:l,onChange:s=()=>{},onKeyDown:i=()=>{},switchClassNames:o="",toggling:m})=>{const p=(0,c.useCallback)((e=>{r||s(e)}),[r,s]),d=(0,c.useCallback)((e=>{r||("Enter"!==e.key&&" "!==e.key||(e.preventDefault(),s(e)),i(e))}),[r,s,i]);return React.createElement(React.Fragment,null,React.createElement("div",null,React.createElement("input",{className:`${n.A["form-toggle"]} ${a} ${m?n.A["is-toggling"]:""}`,type:"checkbox",checked:t,readOnly:!0,disabled:r}),React.createElement("span",{className:`${n.A["form-toggle__switch"]} ${o}`,disabled:r,id:l,onClick:p,onKeyDown:d,role:"checkbox","aria-checked":t,"aria-label":e,tabIndex:r?-1:0})))}},4114:(e,t,a)=>{"use strict";a.d(t,{A:()=>u,E:()=>d});var c=a(7425),n=a(1113),r=a(8248),l=a(7350),s=a(3022),i=a(1609),o=a.n(i),m=a(4493);const p=o().createContext(),d=({id:e,title:t,label:a,icon:d,children:u,onOpen:h})=>{const g=(0,i.useContext)(p),v=g?.open===e,f=g?.setOpen,E=(0,s.A)(m.A["accordion-body"],{[m.A["accordion-body-open"]]:v,[m.A["accordion-body-close"]]:!v}),A=(0,i.useCallback)((()=>{v||h?.(),f((t=>t===e?null:e))}),[v,h,f,e]);return o().createElement("div",{className:m.A["accordion-item"]},o().createElement("button",{className:m.A["accordion-header"],onClick:A},o().createElement("div",null,o().createElement(c.Ay,{className:m.A["accordion-header-label"],mb:1},o().createElement(n.A,{icon:d,className:m.A["accordion-header-label-icon"]}),a),o().createElement(c.Ay,{className:m.A["accordion-header-description"],variant:v?"title-small":"body"},t)),o().createElement("div",{className:m.A["accordion-header-button"]},o().createElement(n.A,{icon:v?r.A:l.A,size:38}))),o().createElement("div",{className:E,"aria-hidden":v?"false":"true"},u))},u=({children:e})=>{const[t,a]=(0,i.useState)();return o().createElement(p.Provider,{value:{open:t,setOpen:a}},o().createElement("div",{className:m.A.accordion},e))}},5920:(e,t,a)=>{"use strict";a.d(t,{A:()=>h});var c=a(3924),n=a(7425),r=a(1112),l=a(7143),s=a(6087),i=a(7723),o=a(1113),m=a(7478),p=a(5576),d=a(4031),u=a(4871);const __=i.__,h=({id:e,title:t,label:a,icon:i,severity:h})=>{const{setModal:g,ignoreThreat:v}=(0,l.useDispatch)(m.a),f=(0,l.useSelect)((e=>e(m.a).getThreatsUpdating())),E=(0,c.A)("jetpack-protect-codeable-referral");return React.createElement(d.A,null,React.createElement(n.Ay,{variant:"title-medium",mb:2},__("Do you really want to ignore this threat?","jetpack-protect")),React.createElement(n.Ay,{mb:3},__("Jetpack will ignore the threat:","jetpack-protect")),React.createElement("div",{className:u.A.threat},React.createElement(o.A,{icon:i,className:u.A.threat__icon}),React.createElement("div",{className:u.A.threat__summary},React.createElement(n.Ay,{className:u.A.threat__summary__label,mb:1},a),React.createElement(n.Ay,{className:u.A.threat__summary__title},t)),React.createElement("div",{className:u.A.threat__severity},React.createElement(p.A,{severity:h}))),React.createElement(n.Ay,{mb:4},(0,s.createInterpolateElement)(__("By choosing to ignore this threat, you acknowledge that you have reviewed the detected code. You are accepting the risks of maintaining a potentially malicious or vulnerable file on your site. If you are unsure, please request an estimate with Codeable.","jetpack-protect"),{codeableLink:React.createElement(r.A,{variant:"link",isExternalLink:!0,href:E})})),React.createElement("div",{className:u.A.footer},React.createElement(r.A,{variant:"secondary",onClick:e=>{e.preventDefault(),g({type:null})}},__("Cancel","jetpack-protect")),React.createElement(r.A,{isDestructive:!0,isLoading:Boolean(f&&f[e]),onClick:async t=>{t.preventDefault(),v(e,(()=>{g({type:null})}))}},__("Ignore threat","jetpack-protect"))))}},8097:(e,t,a)=>{"use strict";a.d(t,{A:()=>v});var c=a(2947),n=a(7425),r=a(766),l=a(5918),s=a(8509),i=a(6087),o=a(7723),m=a(1609),p=a.n(m),d=a(1226),u=a(4962),h=a(9374),g=a(840);const __=o.__,v=({onScanAdd:e})=>((0,d.A)({pageViewEventName:"protect_interstitial"}),p().createElement(c.A,{moduleName:__("Jetpack Protect","jetpack-protect"),header:p().createElement("div",{className:g.A["protect-header"]},p().createElement(u.A,null),p().createElement(n.Ay,{variant:"body-small"},(0,i.createInterpolateElement)(__("Already have an existing plan or license key? Click here to get started","jetpack-protect"),{a:p().createElement("a",{href:"admin.php?page=my-jetpack#/add-license"})})))},p().createElement(r.A,null,p().createElement(l.A,{horizontalSpacing:3,horizontalGap:3},p().createElement(s.A,{sm:4,md:8,lg:12},p().createElement(h.A,{onScanAdd:e}))))))},4962:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(6427),n=a(1609),r=a.n(n);function l({iconColor:e="#069E08",color:t="#000"}){return r().createElement(c.SVG,{fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 245 41",width:245},r().createElement(c.Path,{d:"M159.347 27.3605H156.978V7.9082H162.371C163.176 7.9082 163.917 7.95666 164.596 8.05359C165.284 8.15051 165.914 8.30074 166.486 8.50428C167.649 8.92104 168.531 9.54619 169.132 10.3797C169.733 11.2036 170.033 12.2213 170.033 13.4328C170.033 14.4214 169.834 15.2937 169.437 16.0497C169.049 16.796 168.482 17.4211 167.736 17.9251C166.99 18.4291 166.079 18.812 165.003 19.0737C163.937 19.3257 162.725 19.4517 161.368 19.4517C160.719 19.4517 160.045 19.4226 159.347 19.3644V27.3605ZM159.347 17.1982C159.667 17.237 160.002 17.2661 160.35 17.2854C160.699 17.3048 161.029 17.3145 161.339 17.3145C162.454 17.3145 163.403 17.2273 164.189 17.0528C164.974 16.8784 165.613 16.6264 166.108 16.2968C166.602 15.9576 166.961 15.5505 167.183 15.0756C167.406 14.591 167.518 14.0434 167.518 13.4328C167.518 12.6768 167.334 12.0565 166.965 11.5719C166.607 11.0873 166.093 10.719 165.424 10.467C165.008 10.3119 164.528 10.2053 163.985 10.1471C163.442 10.0793 162.812 10.0453 162.095 10.0453H159.347V17.1982Z",fill:t}),r().createElement(c.Path,{d:"M181.093 15.3809H180.919C180.386 15.3809 179.862 15.4294 179.349 15.5263C178.835 15.6232 178.35 15.7735 177.895 15.977C177.449 16.1708 177.042 16.4131 176.674 16.7039C176.315 16.9947 176.014 17.3388 175.772 17.7361V27.3605H173.519V13.5491H175.263L175.699 15.7444H175.743C175.966 15.3858 176.237 15.0514 176.557 14.7412C176.887 14.4311 177.255 14.1597 177.662 13.9271C178.069 13.6945 178.515 13.5152 179 13.3892C179.484 13.2535 179.993 13.1856 180.526 13.1856C180.623 13.1856 180.72 13.1905 180.817 13.2002C180.924 13.2002 181.016 13.205 181.093 13.2147V15.3809Z",fill:t}),r().createElement(c.Path,{d:"M193.302 20.4694C193.302 19.6164 193.195 18.8604 192.982 18.2014C192.779 17.5326 192.488 16.9705 192.11 16.5149C191.741 16.0497 191.3 15.7008 190.787 15.4682C190.273 15.2258 189.711 15.1047 189.1 15.1047C188.49 15.1047 187.928 15.2258 187.414 15.4682C186.9 15.7008 186.454 16.0497 186.076 16.5149C185.708 16.9705 185.417 17.5326 185.204 18.2014C185.001 18.8604 184.899 19.6164 184.899 20.4694C184.899 21.3126 185.001 22.0686 185.204 22.7373C185.417 23.3964 185.713 23.9537 186.091 24.4092C186.469 24.8648 186.915 25.2137 187.428 25.456C187.942 25.6886 188.504 25.8049 189.115 25.8049C189.725 25.8049 190.283 25.6886 190.787 25.456C191.3 25.2137 191.741 24.8648 192.11 24.4092C192.488 23.9537 192.779 23.3964 192.982 22.7373C193.195 22.0686 193.302 21.3126 193.302 20.4694ZM195.657 20.4694C195.657 21.5549 195.502 22.5435 195.192 23.4352C194.882 24.3269 194.441 25.0926 193.869 25.7322C193.307 26.3622 192.623 26.8517 191.819 27.2006C191.015 27.5495 190.113 27.724 189.115 27.724C188.088 27.724 187.167 27.5495 186.353 27.2006C185.548 26.8517 184.86 26.3622 184.288 25.7322C183.726 25.0926 183.295 24.3269 182.994 23.4352C182.694 22.5435 182.544 21.5549 182.544 20.4694C182.544 19.3741 182.699 18.3807 183.009 17.489C183.319 16.5973 183.755 15.8316 184.317 15.1919C184.889 14.5522 185.577 14.0579 186.382 13.709C187.196 13.3601 188.102 13.1856 189.1 13.1856C190.118 13.1856 191.034 13.3601 191.848 13.709C192.662 14.0579 193.35 14.5522 193.913 15.1919C194.475 15.8316 194.906 16.5973 195.206 17.489C195.507 18.3807 195.657 19.3741 195.657 20.4694Z",fill:t}),r().createElement(c.Path,{d:"M206.354 27.3896C206.16 27.4672 205.864 27.5398 205.467 27.6077C205.07 27.6755 204.595 27.7143 204.042 27.724C203.315 27.724 202.685 27.6319 202.152 27.4478C201.619 27.2733 201.173 27.0213 200.815 26.6918C200.466 26.3525 200.204 25.9455 200.03 25.4705C199.855 24.9956 199.768 24.4674 199.768 23.8859V15.4827H197.107V13.5491H199.768V9.76911H202.021V13.5491H206.15V15.4827H202.021V23.5369C202.021 23.8568 202.065 24.1524 202.152 24.4238C202.249 24.6952 202.395 24.9326 202.588 25.1362C202.792 25.33 203.049 25.4851 203.359 25.6014C203.669 25.708 204.042 25.7613 204.478 25.7613C204.779 25.7613 205.094 25.7371 205.423 25.6886C205.763 25.6402 206.073 25.5772 206.354 25.4996V27.3896Z",fill:t}),r().createElement(c.Path,{d:"M214.681 15.1192C214.167 15.1192 213.687 15.221 213.242 15.4245C212.805 15.6281 212.423 15.9043 212.093 16.2532C211.764 16.6021 211.497 17.0141 211.293 17.489C211.09 17.9542 210.964 18.4534 210.915 18.9864H217.894C217.894 18.4437 217.821 17.9397 217.676 17.4744C217.54 16.9995 217.337 16.5876 217.065 16.2387C216.794 15.8898 216.459 15.6184 216.062 15.4245C215.665 15.221 215.204 15.1192 214.681 15.1192ZM215.917 25.7613C216.663 25.7613 217.341 25.7032 217.952 25.5869C218.572 25.4609 219.188 25.2864 219.798 25.0635V26.9389C219.304 27.1812 218.693 27.3702 217.967 27.5059C217.24 27.6513 216.459 27.724 215.626 27.724C214.637 27.724 213.707 27.598 212.835 27.346C211.972 27.094 211.216 26.6869 210.567 26.1248C209.917 25.5626 209.403 24.8309 209.025 23.9295C208.657 23.0184 208.473 21.9232 208.473 20.6438C208.473 19.3838 208.647 18.2934 208.996 17.3727C209.345 16.4422 209.811 15.6668 210.392 15.0465C210.974 14.4262 211.642 13.961 212.398 13.6509C213.154 13.3407 213.944 13.1856 214.768 13.1856C215.544 13.1856 216.266 13.3165 216.934 13.5782C217.613 13.8302 218.199 14.2324 218.693 14.7849C219.188 15.3373 219.575 16.0497 219.857 16.922C220.147 17.7943 220.293 18.8411 220.293 20.0623C220.293 20.1786 220.293 20.2804 220.293 20.3676C220.293 20.4451 220.288 20.6293 220.278 20.92H210.799C210.799 21.802 210.93 22.5532 211.192 23.1735C211.463 23.7841 211.827 24.2832 212.282 24.6709C212.747 25.0489 213.29 25.3252 213.91 25.4996C214.531 25.6741 215.199 25.7613 215.917 25.7613Z",fill:t}),r().createElement(c.Path,{d:"M229.885 13.1856C230.553 13.1856 231.193 13.2583 231.804 13.4037C232.414 13.5394 232.938 13.7332 233.374 13.9852V15.8607C232.763 15.6281 232.201 15.4536 231.687 15.3373C231.174 15.221 230.65 15.1628 230.117 15.1628C229.555 15.1628 228.998 15.2549 228.445 15.4391C227.893 15.6232 227.398 15.9285 226.962 16.355C226.526 16.7718 226.172 17.3291 225.901 18.0269C225.639 18.7151 225.508 19.5728 225.508 20.6002C225.508 21.3465 225.605 22.0346 225.799 22.6646C226.003 23.2946 226.298 23.8423 226.686 24.3075C227.083 24.763 227.578 25.1216 228.169 25.3833C228.76 25.6353 229.444 25.7613 230.219 25.7613C230.781 25.7613 231.348 25.7032 231.92 25.5869C232.492 25.4609 233.049 25.2864 233.592 25.0635V26.9389C233.427 27.0358 233.209 27.1328 232.938 27.2297C232.676 27.3266 232.385 27.409 232.065 27.4768C231.745 27.5544 231.406 27.6125 231.048 27.6513C230.689 27.6998 230.33 27.724 229.972 27.724C229.041 27.724 228.159 27.5835 227.326 27.3024C226.502 27.0213 225.78 26.59 225.16 26.0085C224.539 25.4269 224.05 24.6903 223.691 23.7986C223.333 22.907 223.153 21.8505 223.153 20.6293C223.153 19.7182 223.245 18.8992 223.429 18.1723C223.623 17.4454 223.885 16.8057 224.215 16.2532C224.544 15.7008 224.927 15.2307 225.363 14.843C225.809 14.4553 226.279 14.1403 226.773 13.898C227.277 13.646 227.796 13.4667 228.329 13.3601C228.862 13.2438 229.381 13.1856 229.885 13.1856Z",fill:t}),r().createElement(c.Path,{d:"M244.143 27.3896C243.949 27.4672 243.654 27.5398 243.256 27.6077C242.859 27.6755 242.384 27.7143 241.832 27.724C241.105 27.724 240.475 27.6319 239.942 27.4478C239.409 27.2733 238.963 27.0213 238.604 26.6918C238.255 26.3525 237.993 25.9455 237.819 25.4705C237.645 24.9956 237.557 24.4674 237.557 23.8859V15.4827H234.897V13.5491H237.557V9.76911H239.811V13.5491H243.94V15.4827H239.811V23.5369C239.811 23.8568 239.854 24.1524 239.942 24.4238C240.039 24.6952 240.184 24.9326 240.378 25.1362C240.581 25.33 240.838 25.4851 241.148 25.6014C241.458 25.708 241.832 25.7613 242.268 25.7613C242.568 25.7613 242.883 25.7371 243.213 25.6886C243.552 25.6402 243.862 25.5772 244.143 25.4996V27.3896Z",fill:t}),r().createElement(c.Path,{d:"M20.1063 40.2111C31.2106 40.2111 40.2126 31.2091 40.2126 20.1048C40.2126 9.00048 31.2106 0 20.1063 0C9.00197 0 0 9.00197 0 20.1063C0 31.2106 9.00197 40.2111 20.1063 40.2111Z",fill:e}),r().createElement(c.Path,{d:"M21.104 16.7295V36.2209L31.1571 16.7295H21.104Z",fill:"white"}),r().createElement(c.Path,{d:"M19.0701 23.4444V3.99023L9.05566 23.4444H19.0701Z",fill:"white"}),r().createElement(c.Path,{d:"M51.9141 33.3819C51.3379 32.499 50.8019 31.6176 50.2644 30.7733C53.1038 29.0462 54.0626 27.666 54.0626 25.0559V9.97619H50.7245V7.09961H57.8236V24.2891C57.8236 28.6635 56.558 31.1188 51.9141 33.3819Z",fill:t}),r().createElement(c.Path,{d:"M81.6522 23.0994C81.6522 24.557 82.6885 24.7104 83.3793 24.7104C84.0702 24.7104 85.0677 24.4796 85.8345 24.2503V26.9363C84.7595 27.2817 83.6473 27.5497 82.1122 27.5497C80.2705 27.5497 78.122 26.8589 78.122 23.6354V15.7307H76.1655V13.006H78.122V8.97852H81.6522V13.0075H86.1025V15.7322H81.6522V23.0994Z",fill:t}),r().createElement(c.Path,{d:"M89.0193 34.7251V12.9691H92.3961V14.2734C93.7391 13.2371 95.2355 12.585 97.0773 12.585C100.262 12.585 102.795 14.8109 102.795 19.6067C102.795 24.3652 100.033 27.5113 95.4663 27.5113C94.3541 27.5113 93.4711 27.358 92.5495 27.1659V34.6864H89.0193V34.7251ZM96.1557 15.5017C95.1194 15.5017 93.8151 16.0005 92.5867 17.0755V24.4814C93.3535 24.6347 94.1605 24.7494 95.234 24.7494C97.7279 24.7494 99.1484 23.1756 99.1484 19.8762C99.1484 16.8447 98.1121 15.5017 96.1557 15.5017Z",fill:t}),r().createElement(c.Path,{d:"M116.683 27.2051H113.384V25.6313H113.306C112.155 26.5142 110.735 27.4731 108.625 27.4731C106.783 27.4731 104.788 26.1301 104.788 23.4054C104.788 19.7605 107.896 19.0696 110.083 18.7629L113.19 18.3416V17.9202C113.19 16.001 112.423 15.3876 110.619 15.3876C109.736 15.3876 107.665 15.6556 105.976 16.3464L105.67 13.5071C107.205 12.9696 109.315 12.5869 111.08 12.5869C114.533 12.5869 116.759 13.9686 116.759 18.0736V27.2051H116.683ZM113.153 20.5675L110.236 21.0276C109.353 21.1422 108.433 21.6797 108.433 22.984C108.433 24.1349 109.085 24.7871 110.044 24.7871C111.08 24.7871 112.193 24.1736 113.152 23.4828V20.5675H113.153Z",fill:t}),r().createElement(c.Path,{d:"M131.264 26.745C129.806 27.2438 128.502 27.5505 126.851 27.5505C121.556 27.5505 119.445 24.5191 119.445 20.1074C119.445 15.465 122.362 12.5869 127.08 12.5869C128.845 12.5869 129.92 12.8936 131.109 13.2778V16.2705C130.073 15.8863 128.577 15.465 127.119 15.465C124.97 15.465 123.129 16.6159 123.129 19.9153C123.129 23.5602 124.97 24.6739 127.311 24.6739C128.423 24.6739 129.652 24.4431 131.301 23.791V26.745H131.264Z",fill:t}),r().createElement(c.Path,{d:"M137.941 19.1093C138.247 18.7639 138.478 18.4185 142.928 13.0077H147.532L141.776 19.7615L148.068 27.2432H143.464L137.978 20.4895V27.2432H134.449V7.09973H137.979V19.1093H137.941Z",fill:t}),r().createElement(c.Path,{d:"M73.5167 26.7445C71.6749 27.3207 70.1011 27.55 68.2593 27.55C63.7316 27.55 60.9309 25.2869 60.9309 19.9908C60.9309 16.1152 63.3102 12.585 67.8752 12.585C72.403 12.585 73.9768 15.731 73.9768 18.7238C73.9768 19.7213 73.8993 20.2588 73.8621 20.8335H64.7306C64.808 23.9409 66.5724 24.6705 69.2197 24.6705C70.6773 24.6705 71.9816 24.325 73.4795 23.7875V26.7416H73.5167V26.7445ZM70.2947 18.4945C70.2947 16.7673 69.7185 15.271 67.8395 15.271C66.0751 15.271 65.0001 16.5365 64.7693 18.4945H70.2947Z",fill:t}))}},8331:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(4054);const n=e=>React.createElement("mark",{key:e,className:c.A["marked-lines__mark"]},e),r=({context:e})=>{const{marks:t,...a}=e;return React.createElement("div",{className:c.A["marked-lines"]},React.createElement("div",{className:c.A["marked-lines__line-numbers"]},Object.keys(a).map((e=>{const a=Object.hasOwn(t,e);return React.createElement("div",{key:e,className:`${c.A["marked-lines__line-number"]} ${a?c.A["marked-lines__marked-line"]:""}`},e)}))),React.createElement("div",{className:c.A["marked-lines__lines"]},Object.keys(a).map((e=>{const r=a[e]||" ",l=Object.hasOwn(t,e);return React.createElement("div",{key:e,className:`${c.A["marked-lines__line"]} ${l?c.A["marked-lines__marked-line"]:""} `},React.createElement(React.Fragment,null,l?((e,t)=>{const[a,c]=e.reduce((([e,a],[c,r])=>{const l=t.slice(c,r);return[[...e,...c>a?[t.slice(a,c),n(l)]:[n(l)]],r]}),[[],0]);return c{"use strict";a.d(t,{A:()=>v});var c=a(7143),n=a(7723),r=a(1113),l=a(991),s=a(7478),i=a(9417),o=a(8680),m=a(2607),p=a(5920),d=a(3144),u=a(9623),h=a(7259);const __=n.__,g={IGNORE_THREAT:p.A,UNIGNORE_THREAT:u.A,FIX_THREAT:m.A,FIX_ALL_THREATS:o.A,CREDENTIALS_NEEDED:i.A,STANDALONE_MODE:d.A},v=()=>{const e=(0,c.useSelect)((e=>e(s.a).getModalType())),t=(0,c.useSelect)((e=>e(s.a).getModalProps())),{setModal:a}=(0,c.useDispatch)(s.a);if(!e)return null;const n=g[e];return React.createElement("div",{className:h.A.modal},React.createElement("div",{className:h.A.modal__window},React.createElement("button",{onClick:e=>{e.preventDefault(),a({type:null})},className:h.A.modal__close,title:__("Close Modal Window","jetpack-protect")},React.createElement(r.A,{icon:l.A,size:24,className:h.A.modal__close__icon,"aria-label":__("Close Modal Window","jetpack-protect")})),React.createElement(n,t)))}},9278:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var c=a(7425),n=a(6427),r=a(7723),l=a(1113),s=a(9783),i=a(3883),o=a(8120),m=a.n(o),p=a(1609),d=a.n(p),u=a(3066);const __=r.__,h=({count:e,checked:t})=>{const{popoverText:a,badgeElement:r}=((e,t)=>t?0===e?{popoverText:__("No known threats found to affect this version","jetpack-protect"),badgeElement:d().createElement(l.A,{icon:i.A,size:28,className:u.A["navigation-item-check-badge"]})}:{popoverText:null,badgeElement:d().createElement(c.Ay,{variant:"body-extra-small",className:u.A["navigation-item-badge"],component:"div"},e)}:{popoverText:__("This item was added to your site after the most recent scan. We will check for threats during the next scheduled one.","jetpack-protect"),badgeElement:d().createElement(l.A,{icon:s.A,size:28,className:u.A["navigation-item-info-badge"]})})(e,t),[o,m]=(0,p.useState)(!1),h=(0,p.useCallback)((()=>{m(!0)}),[]),g=(0,p.useCallback)((()=>{m(!1)}),[]);return d().createElement("div",{onMouseLeave:a?g:null,onMouseEnter:a?h:null,onClick:a?h:null,onFocus:a?h:null,onBlur:a?g:null,role:"presentation"},r,o&&d().createElement(n.Popover,{noArrow:!1,inline:!0},d().createElement(c.Ay,{variant:"body-small",className:u.A["popover-text"]},a)))};h.propTypes={count:m().number,checked:m().bool};const g=h},5498:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var c=a(1112),n=a(7723),r=a(1609),l=a.n(r),s=a(1549),i=a(3066),o=a(43);const __=n.__,m=({icon:e,label:t,children:a})=>{const[m,p]=(0,r.useState)(!0),{mode:d}=(0,r.useContext)(o._),u=Array.isArray(a)&&a?.length>=8&&"list"===d,h=u&&m?a.slice(0,8):a,g=u?a?.length-8:0,v=(0,r.useCallback)((()=>{p((e=>!e))}),[]);return l().createElement("li",{tabIndex:-1,role:"menuitem",className:i.A["navigation-group"]},l().createElement(s.A,{icon:e,className:i.A["navigation-group-label"]},t),l().createElement("div",{className:i.A["navigation-group-list"]},l().createElement("ul",{className:i.A["navigation-group-content"]},h),u&&l().createElement("div",{className:i.A["navigation-group-truncate"]},l().createElement(c.A,{variant:"link",onClick:v},m?(0,n.sprintf)(/* translators: %s: Number of hide items */
+__("Show %s more","jetpack-protect"),g):(0,n.sprintf)(/* translators: %s: Number of hide items */
+__("Hide %s items","jetpack-protect"),g)))))}},59:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>f,Me:()=>p.A,s$:()=>d.A});var c=a(7425),n=a(6427),r=a(7723),l=a(1113),s=a(8248),i=a(7350),o=a(1609),m=a.n(o),p=a(5498),d=a(7366),u=a(3066),h=a(43);const __=r.__,g=({children:e})=>m().createElement("ul",{className:u.A.navigation,role:"menu"},e),v=({children:e,data:t})=>{const a=(0,o.useRef)(void 0),[r,p]=(0,o.useState)(!1),d=t?.items?.find((e=>e?.id===t?.selectedItem))??{label:__("See all results","jetpack-protect")},{label:h,icon:g}=d,v=(0,o.useCallback)((()=>{p((e=>!e))}),[]);return m().createElement("button",{className:u.A["navigation-dropdown-button"],onClick:v,ref:a},m().createElement("div",{className:u.A["navigation-dropdown-label"]},g&&m().createElement(l.A,{icon:g,className:u.A["navigation-dropdown-icon"]}),m().createElement(c.Ay,null,h)),m().createElement(l.A,{icon:r?s.A:i.A,size:32}),m().createElement(n.Popover,{position:"bottom center",anchorRef:a?.current,inline:!0},m().createElement("div",{style:{display:r?"block":"none",width:a?.current?.getBoundingClientRect?.()?.width}},e)))},f=({children:e,selected:t,onSelect:a,mode:c="list"})=>{const n=(0,h.A)({selected:t,onSelect:a}),r=(e=>{switch(e){case"list":default:return g;case"dropdown":return v}})(c);return m().createElement(h._.Provider,{value:{...n,mode:c}},m().createElement(r,{data:n},e))}},7366:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var c=a(3022),n=a(1609),r=a.n(n),l=a(9278),s=a(1549),i=a(3066),o=a(43);const m=({id:e,label:t,icon:a,badge:m,disabled:p,onClick:d,onKeyDown:u,onFocus:h,checked:g})=>{const v=(0,n.useContext)(o._),f=v?.selectedItem===e,E=v?.registerItem,A=v?.registerRef,y=v?.handleClickItem,w=v?.handleKeyDownItem,k=v?.handleFocusItem,b=(0,c.A)(i.A["navigation-item"],{[i.A.clickable]:!p,[i.A.selected]:f}),_=(0,n.useCallback)((t=>{d?.(t),y?.(e)}),[y,e,d]),R=(0,n.useCallback)((e=>{u?.(e),w?.(e)}),[w,u]),C=(0,n.useCallback)((t=>{A(t,e)}),[A,e]),j=(0,n.useCallback)((t=>{h?.(t),k?.(e)}),[k,e,h]);return(0,n.useEffect)((()=>{E({id:e,disabled:p,label:t,icon:a})}),[]),r().createElement("li",{className:b,onClick:p?null:_,onKeyDown:R,onFocus:p?null:j,role:"menuitem",tabIndex:p?-1:0,ref:C},r().createElement(s.A,{icon:a},t),r().createElement(l.A,{count:m,checked:g}))}},1549:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(7425),n=a(1113),r=a(3022),l=a(8120),s=a.n(l),i=a(1609),o=a.n(i),m=a(3066);const p=({icon:e,children:t,className:a})=>o().createElement(c.Ay,{className:(0,r.A)(m.A["navigation-item-label"],a)},e&&o().createElement(n.A,{icon:e,className:m.A["navigation-item-icon"],size:28}),o().createElement("span",{className:m.A["navigation-item-label-content"]},t));p.propTypes={icon:s().node,children:s().node.isRequired};const d=p},43:(e,t,a)=>{"use strict";a.d(t,{A:()=>r,_:()=>n});var c=a(1609);const n=a.n(c)().createContext(),r=({selected:e,onSelect:t})=>{const[a,n]=(0,c.useState)([]),[r,l]=(0,c.useState)([]),[s,i]=(0,c.useState)(),o=(e,t)=>{const c=e-1,n=c<0?t:c,r=a[n];return r?.disabled?o(n,t):r},m=(e,t)=>{const c=e+1,n=c>t?0:c,r=a[n];return r?.disabled?m(n,t):r};return{selectedItem:e,handleClickItem:e=>{t(e)},handleKeyDownItem:c=>{const n=c?.code,l=a.findIndex((t=>t?.id===e)),i=a.length-1;let p;if("ArrowUp"===n){const e=o(l,i);p=e?.id}else if("ArrowDown"===n){const e=m(l,i);p=e?.id}else"Enter"!==n&&"Space"!==n||!s||(p=s);if(p){const e=r[p];e?.focus(),t(p)}},handleFocusItem:e=>{i(e)},registerRef:(e,t)=>{l((a=>!a[t]&&e?{...a,[t]:e}:a))},registerItem:e=>{n((t=>{const a=[...t],c=e?.id,n=a.findIndex((e=>e?.id===c));return n>=0?a[n]=e:a.push(e),a}))},items:a}}},3041:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var c=a(7143),n=a(7723),r=a(3883),l=a(311),s=a(9783),i=a(1113),o=a(991),m=a(1609),p=a(7478),d=a(600);const __=n.__,u=({dismissable:e=!1,duration:t=null,floating:a=!1,message:n,type:u="success"})=>{const{clearNotice:h}=(0,c.useDispatch)(p.a);let g;switch(u){case"success":g=r.A;break;case"error":g=l.A;break;default:g=s.A}const v=(0,m.useCallback)((()=>{h()}),[h]);return(0,m.useEffect)((()=>{let e;return t&&(e=setTimeout(h,t)),()=>clearTimeout(e)}),[h,t,n]),React.createElement("div",{className:`${d.A.notice} ${d.A[`notice--${u}`]} ${a?d.A["notice--floating"]:""}`},React.createElement("div",{className:d.A.notice__icon},React.createElement(i.A,{icon:g})),React.createElement("div",{className:d.A.notice__message},n),e&&React.createElement("button",{className:d.A.notice__close,"aria-label":__("Dismiss notice.","jetpack-protect"),onClick:v},React.createElement(i.A,{icon:o.A})))}},4254:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(1330),n=a(7723),r=a(1609),l=a(1936);const __=n.__,s=({id:e,anchor:t,position:a})=>{const{stepsCount:n,currentStep:s,currentStepCount:i,completeCurrentStep:o,completeAllCurrentSteps:m}=(0,l.Ay)(),{setRenderedSteps:p}=(0,r.useContext)(l.OC);return(0,r.useEffect)((()=>(p((t=>[...t,e])),()=>{p((t=>t.filter((t=>t!==e))))})),[e,p]),s?.id!==e?null:React.createElement(c.A,{anchor:t,title:s.title,noArrow:!1,children:s.description,buttonContent:i{"use strict";a.d(t,{A:()=>b,S:()=>k});var c=a(7425),n=a(442),r=a(6461),l=a(7143),s=a(8443),i=a(7723),o=a(1113),m=a(3883),p=a(8248),d=a(7350),u=a(3022),h=a(1609),g=a.n(h),v=a(7478),f=a(5576),E=a(7489);const __=i.__,A=g().createContext(),y=({firstDetected:e,fixedOn:t,status:a})=>g().createElement(g().Fragment,null,e&&g().createElement(c.Ay,{className:E.A["accordion-header-status"]},(0,i.sprintf)(/* translators: %s: First detected date */
+__("Threat found %s","jetpack-protect"),(0,s.dateI18n)("M j, Y",e)),"fixed"===a&&g().createElement(g().Fragment,null,g().createElement("span",{className:E.A["accordion-header-status-separator"]}),g().createElement("span",{className:E.A["is-fixed"]},(0,i.sprintf)(/* translators: %s: Fixed on date */
+__("Threat fixed %s","jetpack-protect"),(0,s.dateI18n)("M j, Y",t)))),"ignored"===a&&g().createElement(g().Fragment,null,g().createElement("span",{className:E.A["accordion-header-status-separator"]}),g().createElement("span",{className:E.A["is-ignored"]},__("Threat ignored","jetpack-protect")))),("fixed"===a||"ignored"===a)&&g().createElement(w,{status:"fixed"===a?"fixed":"ignored"})),w=({status:e})=>g().createElement("div",{className:`${E.A["status-badge"]} ${E.A[e]}`},"fixed"===e?__("Fixed","jetpack-protect"):__("Ignored","jetpack-protect",0)),k=({id:e,title:t,label:a,icon:s,fixable:i,severity:w,children:k,firstDetected:b,fixedOn:_,onOpen:R,status:C,hideAutoFixColumn:j=!1})=>{const S=(0,h.useContext)(A),x=S?.open===e,N=S?.setOpen,M=(0,l.useSelect)((e=>e(v.a).getThreatsAreFixing())),L=(0,u.A)(E.A["accordion-body"],{[E.A["accordion-body-open"]]:x,[E.A["accordion-body-close"]]:!x}),z=(0,h.useCallback)((()=>{x||R?.(),N((t=>t===e?null:e))}),[x,R,N,e]),[P]=(0,n.A)(["sm","lg"],[null,"<"]);return g().createElement("div",{className:E.A["accordion-item"]},g().createElement("button",{className:E.A["accordion-header"],onClick:z},g().createElement("div",null,g().createElement(c.Ay,{className:E.A["accordion-header-label"],mb:1},g().createElement(o.A,{icon:s,className:E.A["accordion-header-label-icon"]}),a),g().createElement(c.Ay,{className:E.A["accordion-header-description"],variant:x?"title-small":"body"},t),("fixed"===C||"ignored"===C)&&g().createElement(y,{firstDetected:b,status:C,fixedOn:_})),g().createElement("div",null,g().createElement(f.A,{severity:w})),!j&&g().createElement("div",null,i&&g().createElement(g().Fragment,null,M.indexOf(e)>=0?g().createElement(r.A,{color:"black"}):g().createElement(o.A,{icon:m.A,className:E.A["icon-check"],size:28}),P&&g().createElement("span",null,__("Auto-fix","jetpack-protect")))),g().createElement("div",{className:E.A["accordion-header-button"]},g().createElement(o.A,{icon:x?p.A:d.A,size:38}))),g().createElement("div",{className:L,"aria-hidden":x?"false":"true"},k))},b=({children:e})=>{const[t,a]=(0,h.useState)();return g().createElement(A.Provider,{value:{open:t,setOpen:a}},g().createElement("div",{className:E.A.accordion},e))}},5409:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(726),n=a(727);function r({children:e,redirect:t="/"}){const{hasRequiredPlan:a}=(0,n.A)();return a?e:React.createElement(c.C5,{to:t,replace:!0})}},9374:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var c=a(9245),n=a(489),r=a(1112),l=a(9384),s=a(7143),i=a(7723),o=a(1609),m=a.n(o),p=a(1226),d=a(727),u=a(6516),h=a(7478);const __=i.__,g=({onScanAdd:e})=>{const{handleRegisterSite:t,registrationError:a}=(0,l.useConnection)({skipUserConnection:!0}),{refreshPlan:i,refreshStatus:g,startScanOptimistically:v}=(0,s.useDispatch)(h.a),[f,E]=(0,o.useState)(!1),[A,y]=(0,o.useState)(!1),{jetpackScan:w}=(0,d.A)(),{refreshWaf:k}=(0,u.A)(),{pricingForUi:b}=w,{introductoryOffer:_,currencyCode:R="USD"}=b,C=b.cost?Math.ceil(b.cost/12*100)/100:null,j=_?.costPerInterval?Math.ceil(_.costPerInterval/12*100)/100:null,{recordEvent:S,recordEventHandler:x}=(0,p.A)(),N=x("jetpack_protect_pricing_table_get_scan_link_click",(()=>{y(!0),e()})),M=(0,o.useCallback)((async()=>{S("jetpack_protect_connected_product_activated"),E(!0);try{await t(),v(),await i(),await k(),await g(!0)}finally{E(!1)}}),[t,S,k,i,g,v]),L={title:__("Stay one step ahead of threats","jetpack-protect"),items:[{name:__("Scan for threats and vulnerabilities","jetpack-protect")},{name:__("Daily automated scans","jetpack-protect")},{name:__("Web Application Firewall","jetpack-protect")},{name:__("Brute force protection","jetpack-protect")},{name:__("Access to scan on Cloud","jetpack-protect")},{name:__("One-click auto fixes","jetpack-protect")},{name:__("Notifications","jetpack-protect")},{name:__("Severity labels","jetpack-protect")}]};return m().createElement(m().Fragment,null,m().createElement(c.Ay,L,m().createElement(c.N0,{primary:!0},m().createElement(c.i7,null,m().createElement(n.A,{price:C,offPrice:j,leyend:__("/month, billed yearly","jetpack-protect"),currency:R,hideDiscountLabel:!1}),m().createElement(r.A,{fullWidth:!0,onClick:N,isLoading:A,disabled:f||A},__("Get Jetpack Protect","jetpack-protect"))),m().createElement(c.eY,{isIncluded:!0,label:m().createElement("strong",null,__("Line by line malware scanning","jetpack-protect"))}),m().createElement(c.eY,{isIncluded:!0,label:m().createElement("strong",null,__("Plus on-demand manual scans","jetpack-protect"))}),m().createElement(c.eY,{isIncluded:!0,label:m().createElement("strong",null,__("Automatic protection and rule updates","jetpack-protect"))}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!0})),m().createElement(c.N0,null,m().createElement(c.i7,null,m().createElement(n.A,{price:0,leyend:__("Free forever","jetpack-protect"),currency:R,hidePriceFraction:!0}),m().createElement(r.A,{fullWidth:!0,variant:"secondary",onClick:M,isLoading:f,disabled:f||A,error:a?__("An error occurred. Please try again.","jetpack-protect"):null},__("Start for free","jetpack-protect"))),m().createElement(c.eY,{isIncluded:!0,label:__("Check items against database","jetpack-protect")}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!0,label:__("Manual rules only","jetpack-protect")}),m().createElement(c.eY,{isIncluded:!0}),m().createElement(c.eY,{isIncluded:!1}),m().createElement(c.eY,{isIncluded:!1}),m().createElement(c.eY,{isIncluded:!1}),m().createElement(c.eY,{isIncluded:!1}))))}},4256:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(3022),n=a(8744);const r=({className:e,total:t=100,value:a})=>{if(null==a)return null;const r=Math.min(Math.round(a/t*100),100),l={width:`${r}%`};return React.createElement("div",{className:(0,c.A)(e,n.A["progress-bar"])},React.createElement("div",{className:n.A["progress-bar__wrapper"]},React.createElement("div",{"aria-valuemax":t,"aria-valuemin":0,"aria-valuenow":Math.min(a,t),className:n.A["progress-bar__bar"],role:"progressbar",style:l})),React.createElement("p",{className:n.A["progress-bar__percent"]},`${r}%`))}},7827:(e,t,a)=>{"use strict";function c(){return React.createElement("svg",{width:"80",height:"96",viewBox:"0 0 80 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M40 0.00634766L80 17.7891V44.2985C80 66.8965 65.1605 88.2927 44.2352 95.0425C41.4856 95.9295 38.5144 95.9295 35.7648 95.0425C14.8395 88.2927 0 66.8965 0 44.2985V17.7891L40 0.00634766Z",fill:"#069E08"}),React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M60.9 33.6909L35.375 67.9124L19.2047 55.9263L22.7848 51.1264L34.1403 59.5436L56.0851 30.122L60.9 33.6909Z",fill:"white"}))}a.d(t,{A:()=>c})},3535:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(6072),n=a.n(c),r=a(1112),l=a(7143),s=a(7723),i=a(1609),o=a.n(i),m=a(7478);const __=s.__,p=(0,i.forwardRef)((({variant:e="secondary",children:t,...a},c)=>{const{scan:s}=(0,l.useDispatch)(m.a),i=(0,l.useSelect)((e=>e(m.a).getScanIsEnqueuing()),[]);return o().createElement(r.A,n()({ref:c,variant:e,isLoading:i,onClick:e=>{e.preventDefault(),s()}},a),t??__("Scan now","jetpack-protect"))}))},9454:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var c=a(3924),n=a(7425),r=a(1112),l=a(4437),s=a(5918),i=a(8509),o=a(9384),m=a(7723),p=a(1609),d=a.n(p),u=a(8140),h=a(1226),g=a(727),v=a(6516),f=a(5165),E=a(4969);const __=m.__,A=()=>{const{adminUrl:e,siteSuffix:t,blogID:a}=window.jetpackProtectInitialState||{},{run:s}=(0,o.useProductCheckoutWorkflow)({productSlug:u.J3,redirectUrl:e,useBlogIdSuffix:!0}),{recordEventHandler:i}=(0,h.A)(),m=i("jetpack_protect_footer_get_scan_link_click",s),{hasRequiredPlan:p}=(0,g.A)();if(p){const e=(0,c.A)("jetpack-scan-dash",{site:a??t});return d().createElement("div",{className:E.A["product-section"]},d().createElement(n.hE,null,__("Get access to our Cloud","jetpack-protect")),d().createElement(n.Ay,{mb:3},__("With your Protect upgrade, you have free access to scan your site on our Cloud, so you can be aware and fix your threats even if your site goes down. ","jetpack-protect")),d().createElement(r.A,{variant:"secondary",weight:"regular",href:e},__("Go to Cloud","jetpack-protect")))}return d().createElement("div",{className:E.A["product-section"]},d().createElement(n.hE,null,__("Advanced scan results","jetpack-protect")),d().createElement(n.Ay,{mb:3},__("Upgrade Jetpack Protect to get advanced scan tools, including one-click fixes for most threats and malware scanning.","jetpack-protect")),d().createElement(l.A,{description:__("Looking for advanced scan results and one-click fixes?","jetpack-protect"),cta:__("Upgrade Jetpack Protect now","jetpack-protect"),onClick:m}))},y=()=>{const{hasRequiredPlan:e}=(0,g.A)(),{globalStats:t}=(0,v.A)(),a=parseInt(t?.totalVulnerabilities),l=isNaN(a)?"50,000":a.toLocaleString();if(e){const e=(0,c.A)("protect-footer-learn-more-scan");return d().createElement("div",{className:E.A["info-section"]},d().createElement(n.hE,null,__("Line-by-line scanning","jetpack-protect")),d().createElement(n.Ay,{mb:2},__("We actively review line-by-line of your site files to identify threats and vulnerabilities. Jetpack monitors millions of websites to keep your site secure all the time. ","jetpack-protect"),d().createElement(r.A,{variant:"link",target:"_blank",weight:"regular",href:e},__("Learn more","jetpack-protect"))))}const s=(0,c.A)("jetpack-protect-footer-learn-more");return d().createElement("div",{className:E.A["info-section"]},d().createElement(n.hE,null,(0,m.sprintf)(
+// translators: placeholder is the number of total vulnerabilities i.e. "22,000".
+__("Over %s listed vulnerabilities","jetpack-protect"),l)),d().createElement(n.Ay,{mb:3},(0,m.sprintf)(
+// translators: placeholder is the number of total vulnerabilities i.e. "22,000".
+__("Every day we check your plugin, theme, and WordPress versions against our %s listed vulnerabilities powered by WPScan, an Automattic brand.","jetpack-protect"),l)),d().createElement(r.A,{variant:"link",isExternalLink:!0,href:s,weight:"regular"},__("Learn more","jetpack-protect")))},w=()=>{const{waf:e}=window.jetpackProtectInitialState||{};return e.wafSupported?d().createElement(f.A,{main:d().createElement(A,null),secondary:d().createElement(y,null),preserveSecondaryOnMobile:!0}):d().createElement(s.A,{horizontalSpacing:0,horizontalGap:0,fluid:!1},d().createElement(i.A,null,d().createElement(y,null)))}},5165:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(442),n=a(5918),r=a(8509),l=a(1609),s=a.n(l);const i=({main:e,secondary:t,preserveSecondaryOnMobile:a=!1})=>{const[l,i]=(0,c.A)(["sm","lg"]),o=!a&&l;return s().createElement(n.A,{horizontalSpacing:0,horizontalGap:0,fluid:!1},!o&&s().createElement(s().Fragment,null,s().createElement(r.A,{sm:12,md:4,lg:6},e),i&&s().createElement(r.A,{lg:1}),s().createElement(r.A,{sm:12,md:4,lg:5},t)),o&&s().createElement(r.A,null,e))}},5576:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(7723),n=a(2399);const __=c.__,r=e=>e>=5?"is-critical":e>=3&&e<5?"is-high":"is-low",l=({severity:e})=>React.createElement("div",{className:`${n.A["threat-severity-badge"]} ${n.A[r(e)]}`},(e=>{const t=__("Critical","jetpack-protect"),a=__("High","jetpack-protect"),c=__("Low","jetpack-protect");return e>=5?t:e>=3&&e<5?a:c})(e))},3144:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(7425),n=a(6087),r=a(7723),l=a(1847);const __=r.__,s=()=>React.createElement(React.Fragment,null,React.createElement(c.Ay,{variant:"title-medium-semi-bold",mb:2},__("Enhanced protection","jetpack-protect")),React.createElement(c.Ay,{mb:2},__("Learn how you can execute Jetpack Firewall before WordPress initializes. This mode offers the most protection.","jetpack-protect")),React.createElement("ul",{className:l.A.list},React.createElement("li",{className:l.A["list-item"]},React.createElement(c.Ay,{variant:"body-small"},(0,n.createInterpolateElement)(__("To ensure the firewall can best protect your site, please update: auto_prepend_file PHP directive to point to wp-content/jetpack-waf/bootstrap.php Typically this is set either in an .htaccess file or in the global PHP configuration; contact your host for further assistance.","jetpack-protect"),{mark:React.createElement("mark",{className:l.A.mark})}))),React.createElement("li",{className:l.A["list-item"]},React.createElement(c.Ay,{variant:"body-small"},__("Don't forget to undo this action when Firewall is turned off, or when you uninstall Jetpack.","jetpack-protect")))))},147:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(442),n=a(8443),r=a(7723),l=a(1609),s=a.n(l),i=a(727),o=a(7115),m=a(4254);const __=r.__,p=()=>{const[e]=(0,c.A)("sm"),{counts:{current:{threats:t}},lastChecked:a,hasRequiredPlan:p}=(0,i.A)(),[d,u]=(0,l.useState)(null);return s().createElement(o.A,{title:t>0?(0,r.sprintf)(/* translators: %s: Total number of threats */
+__("%1$s %2$s found","jetpack-protect"),t,1===t?"threat":"threats"):void 0,subtitle:s().createElement(s().Fragment,null,s().createElement("div",{ref:u},(0,r.sprintf)(/* translators: %s: Latest check date */
+__("Latest results as of %s","jetpack-protect"),(0,n.dateI18n)("F jS",a))),!p&&s().createElement(m.A,{id:"free-daily-scans",position:e?"bottom":"middle right",anchor:d}))})}},241:(e,t,a)=>{"use strict";a.d(t,{A:()=>l,o:()=>r});var c=a(9959),n=a(4356);const r=({label:e,link:t})=>React.createElement(c.k2,{to:t,className:({isActive:e})=>e?`${n.A.tab} ${n.A["tab--active"]}`:n.A.tab},e),l=({children:e,className:t=""})=>React.createElement("nav",{className:`${n.A.tabs} ${t}`},e)},4491:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});var c=a(6578);const n=({disabled:e=!1,id:t,label:a="",description:n="",placeholder:r="",rows:l=3,value:s="",onChange:i=()=>{}})=>React.createElement("div",null,Boolean(a)&&React.createElement("label",{className:c.A.label,htmlFor:t},a),Boolean(n)&&n,React.createElement("textarea",{className:c.A.textarea,disabled:e,placeholder:r,rows:l,id:t,name:t,onChange:i,value:s||""}))},1571:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(7425),n=a(7723),r=a(1113),l=a(1609),s=a.n(l),i=a(5576),o=a(9054);const __=n.__,m=e=>{switch(e.fixer){case"replace":return __("Jetpack Scan will replace the affected file or directory.","jetpack-protect");case"delete":return __("Jetpack Scan will delete the affected file or directory.","jetpack-protect");case"update":return e.target?(0,n.sprintf)(/* translators: %s: Version that the plugin will be upgraded to */
+__("Jetpack Scan will update to a newer version %s.","jetpack-protect"),e.target):__("Jetpack Scan will update to a newer version.","jetpack-protect");case"edit":return __("Jetpack Scan will edit the affected file or directory.","jetpack-protect");case"rollback":return e.target?(0,n.sprintf)(/* translators: %s: Version that the plugin will be upgraded to */
+__("Jetpack Scan will rollback the affected file to the version from %s.","jetpack-protect"),e.target):__("Jetpack Scan will rollback the affected file to an older (clean) version.","jetpack-protect");default:return __("Jetpack Scan will resolve the threat.","jetpack-protect")}};function p({threat:e,fixAllDialog:t,onCheckFix:a}){const[n,p]=(0,l.useState)(!0),d=(0,l.useCallback)((t=>{p(t.target.checked),a(t.target.checked,e)}),[a,e]);return s().createElement(s().Fragment,null,s().createElement("div",{className:o.A.threat},s().createElement(r.A,{icon:e.icon,className:o.A.threat__icon}),s().createElement("div",{className:o.A.threat__summary},s().createElement(c.Ay,{className:o.A.threat__summary__label,mb:1},e.label),s().createElement(c.Ay,{className:o.A.threat__summary__title},m(e.fixable))),s().createElement("div",{className:o.A.threat__severity},s().createElement(i.A,{severity:e.severity})),t&&s().createElement("div",{className:o.A.threat__checkbox},s().createElement("input",{type:"checkbox",checked:n,onChange:d,value:e.id}))))}},9314:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(7425),n=a(6087),r=a(7723),l=a(1609),s=a(727),i=a(4254),o=a(3535),m=a(1476);const __=r.__,_n=r._n,p=()=>React.createElement("svg",{width:"80",height:"96",viewBox:"0 0 80 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M40 0.00634766L80 17.7891V44.2985C80 66.8965 65.1605 88.2927 44.2352 95.0425C41.4856 95.9295 38.5144 95.9295 35.7648 95.0425C14.8395 88.2927 0 66.8965 0 44.2985V17.7891L40 0.00634766Z",fill:"#069E08"}),React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M60.9 33.6909L35.375 67.9124L19.2047 55.9263L22.7848 51.1264L34.1403 59.5436L56.0851 30.122L60.9 33.6909Z",fill:"white"})),d=()=>{const{lastChecked:e,hasRequiredPlan:t}=(0,s.A)(),[a,d]=(0,l.useState)(null),u=(0,l.useMemo)((()=>e?(e=>{const t=new Date,a=6e4*t.getTimezoneOffset(),c=Math.floor((new Date(t.getTime()+a).getTime()-e)/1e3);let n=c/31536e3;return n>1?(0,r.sprintf)(
+// translators: placeholder is a number amount of years i.e. "5 years ago".
+_n("%s year ago","%s years ago",Math.floor(n),"jetpack-protect"),Math.floor(n)):(n=c/2592e3,n>1?(0,r.sprintf)(
+// translators: placeholder is a number amount of months i.e. "5 months ago".
+_n("%s month ago","%s months ago",Math.floor(n),"jetpack-protect"),Math.floor(n)):(n=c/86400,n>1?(0,r.sprintf)(
+// translators: placeholder is a number amount of days i.e. "5 days ago".
+_n("%s day ago","%s days ago",Math.floor(n),"jetpack-protect"),Math.floor(n)):(n=c/3600,n>1?(0,r.sprintf)(
+// translators: placeholder is a number amount of hours i.e. "5 hours ago".
+_n("%s hour ago","%s hours ago",Math.floor(n),"jetpack-protect"),Math.floor(n)):(n=c/60,n>1?(0,r.sprintf)(
+// translators: placeholder is a number amount of minutes i.e. "5 minutes ago".
+_n("%s minute ago","%s minutes ago",Math.floor(n),"jetpack-protect"),Math.floor(n)):__("a few seconds ago","jetpack-protect")))))})(Date.parse(e)):null),[e]);return React.createElement("div",{className:m.A.empty},React.createElement(p,null),React.createElement(c.H3,{weight:"bold",mt:8},__("Don't worry about a thing","jetpack-protect")),React.createElement(c.Ay,{mb:4},(0,n.createInterpolateElement)((0,r.sprintf)(
+// translators: placeholder is the amount of time since the last scan, i.e. "5 minutes ago".
+__("The last Protect scan ran %s and everything looked great.","jetpack-protect"),u),{strong:React.createElement("strong",null)})),t&&React.createElement(React.Fragment,null,React.createElement(o.A,{ref:d}),React.createElement(i.A,{id:"paid-daily-and-manual-scans",position:"bottom middle",anchor:a})))}},5190:(e,t,a)=>{"use strict";a.d(t,{A:()=>v});var c=a(1112),n=a(7425),r=a(4437),l=a(9384),s=a(7723),i=a(1609),o=a.n(i),m=a(8140),p=a(1226),d=a(4114),u=a(4569),h=a(1476);const __=s.__,g=({description:e,fixedIn:t,icon:a,id:u,label:g,name:v,source:f,title:E,type:A})=>{const{adminUrl:y}=window.jetpackProtectInitialState||{},{run:w}=(0,l.useProductCheckoutWorkflow)({productSlug:m.J3,redirectUrl:y,useBlogIdSuffix:!0}),{recordEventHandler:k}=(0,p.A)(),b=k("jetpack_protect_threat_list_get_scan_link_click",w),_=f?o().createElement(c.A,{variant:"link",isExternalLink:!0,weight:"regular",href:f},__("See more technical details of this threat","jetpack-protect")):null;return o().createElement(d.E,{id:u,label:g,title:E,icon:a,onOpen:(0,i.useCallback)((()=>{["core","plugin","theme"].includes(A)&&k(`jetpack_protect_${A}_threat_open`)}),[k,A])},e&&o().createElement("div",{className:h.A["threat-section"]},o().createElement(n.Ay,{variant:"title-small",mb:2},__("What is the problem?","jetpack-protect")),o().createElement(n.Ay,{mb:2},e),_),t&&o().createElement("div",{className:h.A["threat-section"]},o().createElement(n.Ay,{variant:"title-small",mb:2},__("How to fix it?","jetpack-protect")),o().createElement(n.Ay,{mb:2},/* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */ /* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */
+(0,s.sprintf)(__("Update to %1$s %2$s","jetpack-protect"),v,t)),o().createElement(r.A,{description:__("Looking for advanced scan results and one-click fixes?","jetpack-protect"),cta:__("Upgrade Jetpack Protect now","jetpack-protect"),onClick:b,className:h.A["threat-item-cta"]})),!e&&o().createElement("div",{className:h.A["threat-section"]},_))},v=({list:e})=>o().createElement(u.A,{list:e},(({currentItems:e})=>o().createElement(d.A,null,e.map((({description:e,fixedIn:t,icon:a,id:c,label:n,name:r,source:l,table:s,title:i,type:m,version:p})=>o().createElement(g,{description:e,fixedIn:t,icon:a,id:c,label:n,key:c,name:r,source:l,table:s,title:i,type:m,version:p}))))))},5661:(e,t,a)=>{"use strict";a.d(t,{A:()=>k});var c=a(442),n=a(5918),r=a(8509),l=a(7425),s=a(1112),i=a(7143),o=a(7723),m=a(1609),p=a.n(m),d=a(727),u=a(7478),h=a(4254),g=a(3535),v=a(9314),f=a(5190),E=a(9395),A=a(6742),y=a(1476),w=a(993);const __=o.__,k=()=>{const{hasRequiredPlan:e}=(0,d.A)(),{item:t,list:a,selected:k,setSelected:b}=(0,w.A)(),_=a.filter((e=>e.fixable)),[R]=(0,c.A)("sm"),[C,j]=(0,m.useState)(null),[S,x]=(0,m.useState)(null),{setModal:N}=(0,i.useDispatch)(u.a),[M,L]=(0,m.useState)(null),[z,P]=(0,m.useState)(null),I=(0,m.useCallback)((()=>{switch(k){case"all":return 1===a.length?__("All threats","jetpack-protect"):(0,o.sprintf)(/* translators: placeholder is the amount of threats found on the site. */
+__("All %s threats","jetpack-protect"),a.length);case"core":return(0,o.sprintf)(/* translators: placeholder is the amount of WordPress threats found on the site. */
+__("%1$s WordPress %2$s","jetpack-protect"),a.length,1===a.length?"threat":"threats");case"files":return(0,o.sprintf)(/* translators: placeholder is the amount of file threats found on the site. */
+__("%1$s file %2$s","jetpack-protect"),a.length,1===a.length?"threat":"threats");case"database":return(0,o.sprintf)(/* translators: placeholder is the amount of database threats found on the site. */
+__("%1$s database %2$s","jetpack-protect"),a.length,1===a.length?"threat":"threats");default:return(0,o.sprintf)(/* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */
+__("%1$s %2$s in %3$s %4$s","jetpack-protect"),a.length,1===a.length?"threat":"threats",t?.name,t?.version)}}),[k,a,t]);return p().createElement(n.A,{fluid:!0,horizontalSpacing:0,horizontalGap:3},p().createElement(r.A,{lg:4},p().createElement("div",{ref:j},p().createElement(E.A,{selected:k,onSelect:b})),p().createElement(h.A,{id:e?"paid-scan-results":"free-scan-results",position:"top",anchor:C})),p().createElement(r.A,{lg:8},a?.length>0?p().createElement(p().Fragment,null,p().createElement("div",{className:y.A["list-header"]},p().createElement(l.hE,{className:y.A["list-title"]},I()),e&&p().createElement("div",{className:y.A["list-header__controls"]},_.length>0&&p().createElement(p().Fragment,null,p().createElement(s.A,{ref:L,variant:"primary",onClick:(T=_,e=>{e.preventDefault(),N({type:"FIX_ALL_THREATS",props:{threatList:T}})})},(0,o.sprintf)(/* translators: Translates to Show auto fixers $s: Number of fixable threats. */
+__("Show auto fixers (%s)","jetpack-protect"),_.length)),p().createElement(h.A,{id:"paid-fix-all-threats",position:R?"bottom right":"middle left",anchor:M})),p().createElement("div",null,p().createElement(g.A,{ref:P}),p().createElement(h.A,{id:"paid-daily-and-manual-scans",position:R?"bottom left":"middle left",anchor:z})))),e?p().createElement(p().Fragment,null,p().createElement("div",{ref:x},p().createElement(A.A,{list:a}),p().createElement("div",{className:y.A["manual-scan"]},p().createElement(l.Ay,{variant:"body-small",mb:4},__("If you have manually fixed any of the threats listed above, you can run a manual scan now or wait for Jetpack to scan your site later today.","jetpack-protect")),p().createElement(g.A,null))),p().createElement(h.A,{id:"paid-understand-severity",position:"top",anchor:S})):p().createElement(f.A,{list:a})):p().createElement(v.A,null)));var T}},9395:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var c=a(442),n=a(7723),r=a(311),l=a(4648),s=a(435),i=a(2072),o=a(4314),m=a(1651),p=a(1609),d=a(1226),u=a(727),h=a(59);const __=n.__,g=({selected:e,onSelect:t,sourceType:a="scan",statusFilter:n="all"})=>{const{results:{plugins:g,themes:v},counts:{current:{threats:f,core:E,files:A,database:y}},hasRequiredPlan:w}=(0,u.A)({sourceType:a,filter:{status:n}}),{recordEvent:k}=(0,d.A)(),[b]=(0,c.A)("lg","<"),_=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_all_click")}),[k]),R=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_core_click")}),[k]),C=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_plugin_click")}),[k]),j=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_theme_click")}),[k]),S=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_file_click")}),[k]),x=(0,p.useCallback)((()=>{k("jetpack_protect_navigation_database_click")}),[k]),N=(0,p.useMemo)((()=>"fixed"===n?__("All fixed threats","jetpack-protect"):"ignored"===n?__("All ignored threats","jetpack-protect",0):__("All threats","jetpack-protect")),[n]);return React.createElement(h.Ay,{selected:e,onSelect:t,mode:b?"dropdown":"list"},React.createElement(h.s$,{initial:!0,id:"all",label:N,icon:r.A,badge:f,disabled:f<=0,onClick:_,checked:!0}),React.createElement(h.s$,{id:"core",label:__("WordPress","jetpack-protect"),icon:l.A,badge:E,disabled:E<=0,onClick:R,checked:!0}),React.createElement(h.Me,{label:__("Plugins","jetpack-protect"),icon:s.A},g.map((({name:e,threats:t,checked:a})=>React.createElement(h.s$,{key:e,id:e,label:e,checked:a,badge:t?.length,disabled:t?.length<=0,onClick:C})))),React.createElement(h.Me,{label:__("Themes","jetpack-protect"),icon:i.A},v.map((({name:e,threats:t,checked:a})=>React.createElement(h.s$,{key:e,id:e,label:e,checked:a,badge:t?.length,disabled:t?.length<=0,onClick:j})))),w&&React.createElement(React.Fragment,null,React.createElement(h.s$,{id:"files",label:__("Files","jetpack-protect"),icon:o.A,badge:A,disabled:A<=0,onClick:S,checked:!0}),React.createElement(h.s$,{id:"database",label:__("Database","jetpack-protect"),icon:m.A,badge:y,disabled:y<=0,onClick:x,checked:!0})))}},4569:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(1112),n=a(442),r=a(7723),l=a(8888),s=a(9115),i=a(1609),o=a.n(i),m=a(1476);const __=r.__,p=({pageNumber:e,currentPage:t,onPageChange:a})=>{const n=(0,i.useMemo)((()=>t===e),[t,e]),l=(0,i.useCallback)((()=>{a(e)}),[a,e]);return o().createElement(c.A,{size:"medium",className:n?null:m.A.unfocused,onClick:l,"aria-current":n?"page":void 0,"aria-label":(0,r.sprintf)(/* translators: placeholder is a page number, i.e. "Page 123" */
+__("Page %d","jetpack-protect"),e)},e)},d=({list:e,itemPerPage:t=10,children:a})=>{const[r]=(0,n.A)("sm"),[d,u]=(0,i.useState)(1),h=(0,i.useCallback)((()=>u(d-1)),[d,u]),g=(0,i.useCallback)((()=>u(d+1)),[d,u]),v=(0,i.useMemo)((()=>Math.ceil(e.length/t)),[e,t]),f=(0,i.useMemo)((()=>{const a=d*t,c=a-t;return e.slice(c,a)}),[d,e,t]),E=(0,i.useMemo)((()=>{if(r)return[d];const e=[1];return d>3&&v>4&&e.push("…"),1===d?e.push(d+1,d+2,d+3):2===d?e.push(d,d+1,d+2):d3&&e.push(d-2),d>2&&e.push(d-1),e.push(d)):d===v&&(d>=5&&e.push(d-3),d>=4&&e.push(d-2),e.push(d-1)),e[e.length-1]e<=v||isNaN(e)))}),[d,r,v]);return o().createElement(o().Fragment,null,a({currentItems:f}),v>1&&o().createElement("nav",{role:"navigation","aria-label":__("Threat list pages","jetpack-protect"),className:m.A["pagination-container"]},o().createElement(c.A,{onClick:h,disabled:1===d,variant:"link",icon:l.A,iconSize:24,"aria-label":__("Previous page","jetpack-protect")}),E.map(((e,t)=>"number"==typeof e?o().createElement(p,{key:e,pageNumber:e,currentPage:d,onPageChange:u}):o().createElement("span",{key:`ellipses_${t}`},e))),o().createElement(c.A,{onClick:g,disabled:d===v,variant:"link",icon:s.A,iconSize:24,"aria-label":__("Next page","jetpack-protect")})))}},6742:(e,t,a)=>{"use strict";a.d(t,{A:()=>E});var c=a(1112),n=a(7425),r=a(442),l=a(7143),s=a(7723),i=a(1609),o=a.n(i),m=a(1226),p=a(7478),d=a(9627),u=a(8331),h=a(2006),g=a(4569),v=a(1476);const __=s.__,f=({context:e,description:t,diff:a,filename:r,firstDetected:g,fixedIn:f,fixedOn:E,icon:A,fixable:y,id:w,label:k,name:b,source:_,title:R,type:C,severity:j,status:S,hideAutoFixColumn:x=!1})=>{const N=(0,l.useSelect)((e=>e(p.a).getThreatsAreFixing())),{setModal:M}=(0,l.useDispatch)(p.a),{recordEvent:L}=(0,m.A)(),z=N.indexOf(w)>=0,P=_?o().createElement(c.A,{variant:"link",isExternalLink:!0,weight:"regular",href:_},__("See more technical details of this threat","jetpack-protect")):null;return o().createElement(h.S,{id:w,label:k,title:R,icon:A,fixable:y,severity:j,firstDetected:g,fixedOn:E,status:S,onOpen:(0,i.useCallback)((()=>{["core","plugin","theme","file","database"].includes(C)&&L(`jetpack_protect_${C}_threat_open`)}),[L,C]),hideAutoFixColumn:x},t&&o().createElement("div",{className:v.A["threat-section"]},o().createElement(n.Ay,{variant:"title-small",mb:2},"fixed"!==S?__("What is the problem?","jetpack-protect"):__("What was the problem?","jetpack-protect",0)),o().createElement(n.Ay,{mb:2},t),P),(r||e||a)&&o().createElement(n.Ay,{variant:"title-small",mb:2},__("The technical details","jetpack-protect")),r&&o().createElement(o().Fragment,null,o().createElement(n.Ay,{mb:2},/* translators: filename follows in separate line; e.g. "PHP.Injection.5 in: `post.php`" */
+__("Threat found in file:","jetpack-protect")),o().createElement("pre",{className:v.A["threat-filename"]},r)),e&&o().createElement(u.A,{context:e}),a&&o().createElement(d.A,{diff:a}),f&&"fixed"!==S&&o().createElement("div",{className:v.A["threat-section"]},o().createElement(n.Ay,{variant:"title-small",mb:2},__("How to fix it?","jetpack-protect")),o().createElement(n.Ay,{mb:2},/* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */ /* translators: Translates to Update to. %1$s: Name. %2$s: Fixed version */
+(0,s.sprintf)(__("Update to %1$s %2$s","jetpack-protect"),b,f))),!t&&o().createElement("div",{className:v.A["threat-section"]},P),["ignored","current"].includes(S)&&o().createElement("div",{className:v.A["threat-footer"]},"ignored"===S&&o().createElement(c.A,{isDestructive:!0,variant:"secondary",onClick:e=>{e.preventDefault(),M({type:"UNIGNORE_THREAT",props:{id:w,label:k,title:R,icon:A,severity:j}})},disabled:z},__("Unignore threat","jetpack-protect")),"current"===S&&o().createElement(o().Fragment,null,o().createElement(c.A,{isDestructive:!0,variant:"secondary",onClick:e=>{e.preventDefault(),M({type:"IGNORE_THREAT",props:{id:w,label:k,title:R,icon:A,severity:j}})}},__("Ignore threat","jetpack-protect")),y&&o().createElement(c.A,{disabled:z,onClick:e=>{e.preventDefault(),M({type:"FIX_THREAT",props:{id:w,fixable:y,label:k,icon:A,severity:j}})}},__("Fix threat","jetpack-protect")))))},E=({list:e,hideAutoFixColumn:t=!1})=>{const[a]=(0,r.A)(["sm","lg"],[null,"<"]);return o().createElement(o().Fragment,null,!a&&o().createElement("div",{className:v.A["accordion-header"]},o().createElement("span",null,__("Details","jetpack-protect")),o().createElement("span",null,__("Severity","jetpack-protect")),!t&&o().createElement("span",null,__("Auto-fix","jetpack-protect")),o().createElement("span",null)),o().createElement(g.A,{list:e},(({currentItems:e})=>o().createElement(h.A,null,e.map((({context:e,description:a,diff:c,filename:n,firstDetected:r,fixedIn:l,fixedOn:s,icon:i,fixable:m,id:p,label:d,name:u,severity:h,source:g,table:v,title:E,type:A,version:y,status:w})=>o().createElement(f,{context:e,description:a,diff:c,filename:n,firstDetected:r,fixedIn:l,fixedOn:s,icon:i,fixable:m,id:p,key:p,label:d,name:u,severity:h,source:g,table:v,title:E,type:A,version:y,status:w,hideAutoFixColumn:t})))))))}},993:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(4648),n=a(4314),r=a(1651),l=a(435),s=a(2072),i=a(1609),o=a(727);const m=(e,t)=>t.severity-e.severity,p=(e,t)=>"object"==typeof e&&0===Object.keys(e).length?[]:Array.isArray(e)?e.map((e=>p(e,t))).flat():e?.threats.map((a=>({...a,...e,...t}))),d=({source:e,status:t}={source:"scan",status:"all"})=>{const[a,d]=(0,i.useState)("all"),{results:{plugins:u,themes:h,core:g,files:v,database:f}}=(0,o.A)({sourceType:e,filter:{status:t,key:a}}),{unsortedList:E,item:A}=(0,i.useMemo)((()=>{if(a&&"all"!==a){switch(a){case"core":return{unsortedList:p(g,{icon:c.A}),item:g};case"files":return{unsortedList:p({threats:v},{icon:n.A}),item:v};case"database":return{unsortedList:p({threats:f},{icon:r.A}),item:f}}const e=u.find((e=>e?.name===a));if(e)return{unsortedList:p(e,{icon:l.A}),item:e};const t=h.find((e=>e?.name===a));if(t)return{unsortedList:p(t,{icon:s.A}),item:t}}return{unsortedList:[...p(g,{icon:c.A}),...p(u,{icon:l.A}),...p(h,{icon:s.A}),...p({threats:v},{icon:n.A}),...p({threats:f},{icon:r.A})],item:null}}),[g,f,v,u,a,h]),y=e=>e.name&&e.version?`${e.name} (${e.version})`:e.filename?e.filename.split("/").pop():e.table?e.table:void 0,w=(0,i.useMemo)((()=>E.sort(m).map((e=>({label:y(e),...e})))),[E]);return(0,i.useEffect)((()=>{"all"!==a&&"all"!==t&&0===w.length&&d("all")}),[a,t,A,w]),{item:A,list:w,selected:a,setSelected:d}}},9623:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(7425),n=a(1112),r=a(7143),l=a(7723),s=a(1113),i=a(7478),o=a(5576),m=a(4031),p=a(6834);const __=l.__,d=({id:e,title:t,label:a,icon:l,severity:d})=>{const{setModal:u,unignoreThreat:h}=(0,r.useDispatch)(i.a),g=(0,r.useSelect)((e=>e(i.a).getThreatsUpdating()));return React.createElement(m.A,null,React.createElement(c.Ay,{variant:"title-medium",mb:2},__("Do you really want to unignore this threat?","jetpack-protect")),React.createElement(c.Ay,{mb:3},__("Jetpack will unignore the threat:","jetpack-protect")),React.createElement("div",{className:p.A.threat},React.createElement(s.A,{icon:l,className:p.A.threat__icon}),React.createElement("div",{className:p.A.threat__summary},React.createElement(c.Ay,{className:p.A.threat__summary__label,mb:1},a),React.createElement(c.Ay,{className:p.A.threat__summary__title},t)),React.createElement("div",{className:p.A.threat__severity},React.createElement(o.A,{severity:d}))),React.createElement("div",{className:p.A.footer},React.createElement(n.A,{variant:"secondary",onClick:e=>{e.preventDefault(),u({type:null})}},__("Cancel","jetpack-protect")),React.createElement(n.A,{isDestructive:!0,isLoading:Boolean(g&&g[e]),onClick:async t=>{t.preventDefault(),h(e,(()=>{u({type:null})}))}},__("Unignore threat","jetpack-protect"))))}},4031:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(9384),n=a(1221);const r=({children:e})=>{const{isUserConnected:t,hasConnectedOwner:a}=(0,c.useConnection)();return t&&a?e:React.createElement(n.A,null)}},1221:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var c=a(7425),n=a(1112),r=a(9384),l=a(7143),s=a(7723),i=a(7478),o=a(3041),m=a(8340);const __=s.__,p=()=>{const{setModal:e}=(0,l.useDispatch)(i.a),{userIsConnecting:t,handleConnectUser:a}=(0,r.useConnection)({redirectUri:"admin.php?page=jetpack-protect"});return React.createElement(React.Fragment,null,React.createElement(c.Ay,{variant:"title-medium",mb:2},__("User connection needed","jetpack-protect")),React.createElement(o.A,{type:"info",message:__("Before Jetpack Protect can ignore and auto-fix threats on your site, a user connection is needed.","jetpack-protect")}),React.createElement(c.Ay,{mb:3},__("A user connection provides Jetpack Protect the access necessary to perform these tasks.","jetpack-protect")),React.createElement(c.Ay,{mb:3},__("Once you’ve secured a user connection, all Jetpack Protect features will be available for use.","jetpack-protect")),React.createElement("div",{className:m.A.footer},React.createElement(n.A,{variant:"secondary",onClick:t=>{t.preventDefault(),e({type:null})}},__("Not now","jetpack-protect")),React.createElement(n.A,{isExternalLink:!0,weight:"regular",isLoading:t,onClick:a},__("Connect your user account","jetpack-protect"))))}},8140:(e,t,a)=>{"use strict";a.d(t,{J3:()=>r,JD:()=>l,Mm:()=>i,NW:()=>n,_R:()=>s,pQ:()=>c,vI:()=>o});const c="https://wordpress.org/support/plugin/jetpack-protect/",n="https://jetpack.com/contact-support/?rel=support",r="jetpack_scan",l="optimistically_scanning",s="idle",i="unavailable",o=["scheduled","scanning",l]},1226:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(372),n=a(9384),r=a(1609);const l=({pageViewEventName:e,pageViewNamespace:t="jetpack",pageViewSuffix:a="page_view",pageViewEventProperties:l={}}={})=>{const{isUserConnected:s,isRegistered:i,userConnectionData:o}=(0,n.useConnection)(),{login:m,ID:p}=o.currentUser?.wpcomUser||{},{tracks:d}=c.A,{recordEvent:u}=d,h=(0,r.useCallback)((async(e,t)=>{u(e,t)}),[u]),g=(0,r.useCallback)(((e,t,a=()=>{})=>(a="function"==typeof t?t:a,t="function"==typeof t?{}:t,()=>h(e,t).then(a))),[h]);(0,r.useEffect)((()=>{s&&p&&m&&c.A.initialize(p,m)}),[s,p,m]);const v=e?`${t}_${e}_${a}`:null;return(0,r.useEffect)((()=>{i&&v&&u(v,l)}),[]),{recordEvent:h,recordEventHandler:g}}},1936:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>m,Ll:()=>o,OC:()=>i,dn:()=>s});var c=a(7143),n=a(1609),r=a(5973),l=a(7478);const s=(0,n.createContext)([]),i=(0,n.createContext)([]),o=({children:e})=>{const[t,a]=(0,n.useState)([]);return React.createElement(i.Provider,{value:{renderedSteps:t,setRenderedSteps:a}},e)},m=()=>{const{completeOnboardingSteps:e,fetchOnboardingProgress:t}=r.A,a=(0,n.useContext)(s),{renderedSteps:o}=(0,n.useContext)(i),m=(0,c.useSelect)((e=>e(l.a).getOnboardingProgress())),{setOnboardingProgress:p}=(0,c.useDispatch)(l.a),{currentStep:d,currentStepCount:u,stepsCount:h}=(0,n.useMemo)((()=>a.reduce(((e,t)=>(o.includes(t.id)&&(e.stepsCount++,e.currentStep||-1!==(m||[]).indexOf(t.id)||(e.currentStep=t,e.currentStepCount=e.stepsCount)),e)),{currentStep:null,currentStepCount:null,stepsCount:0})),[m,o,a]),g=(0,n.useCallback)((()=>{d&&(p([...m,d.id]),e([d.id]))}),[d,p,m,e]),v=(0,n.useCallback)((()=>{const t=a.reduce(((e,t)=>(t.id.startsWith("free-")&&e.push(t.id),e)),[]),c=[...m,...t];p([...new Set(c)]),e(t)}),[a,m,p,e]),f=(0,n.useCallback)((()=>{const t=a.reduce(((e,t)=>(t.id.startsWith("paid-")&&e.push(t.id),e)),[]),c=[...m,...t];p([...new Set(c)]),e(t)}),[a,m,p,e]),E=(0,n.useCallback)((()=>{d.id.startsWith("paid-")?f():v()}),[v,f,d]);return(0,n.useEffect)((()=>{null===m&&t().then((e=>p(e)))}),[t,m,p]),{progress:m,stepsCount:h,currentStep:d,currentStepCount:u,completeCurrentStep:g,completeAllCurrentSteps:E}}},727:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(7143),n=a(7723),r=a(1609),l=a(7478);const __=n.__,s=["all","core","plugins","themes","files","database"],i=(e,t,a)=>Array.isArray(e)?e.filter((e=>(!t.status||"all"===t.status||e.status===t.status)&&(!t.key||"all"===t.key||t.key===a))):[];function o({sourceType:e,filter:t}={sourceType:"scan",filter:{status:null,key:null}}){const{status:a,scanHistory:n,jetpackScan:o,hasRequiredPlan:m}=(0,c.useSelect)((e=>({status:e(l.a).getStatus(),scanHistory:e(l.a).getScanHistory(),jetpackScan:e(l.a).getJetpackScan(),hasRequiredPlan:e(l.a).hasRequiredPlan()}))),{counts:p,results:d,error:u,lastChecked:h,hasUncheckedItems:g}=(0,r.useMemo)((()=>{const c="history"===e?{...n}:{...a},r={results:{core:[],plugins:[],themes:[],files:[],database:[]},counts:{all:{threats:0,core:0,plugins:0,themes:0,files:0,database:0},current:{threats:0,core:0,plugins:0,themes:0,files:0,database:0}},error:null,lastChecked:c.lastChecked||null,hasUncheckedItems:c.hasUncheckedItems||!1},l=(e,a)=>{if(!Array.isArray(e))return[];e.forEach((e=>{r.counts.all[a]+=e?.threats?.length||0,r.counts.all.threats+=e?.threats?.length||0;const c=i(e?.threats,t,s.includes(t.key)?a:e?.name);r.results[a].push({...e,threats:c}),r.counts.current[a]+=c.length,r.counts.current.threats+=c.length}))},o=(e,a)=>{if(!Array.isArray(e))return[];r.counts.all[a]+=e.length,r.counts.all.threats+=e.length;const c=i(e,t,a);r.results[a]=[...r.results[a],...c],r.counts.current[a]+=c.length,r.counts.current.threats+=c.length};let m=Array.isArray(c.core)?c.core:[];return c.core.threats&&(m=[c.core]),l(m,"core"),l(c?.plugins,"plugins"),l(c?.themes,"themes"),o(c?.files,"files"),o(c?.database,"database"),c.error&&(r.error={message:c.errorMessage||__("An error occurred.","jetpack-protect"),code:c.errorCode||500}),r}),[n,e,a,t]);return{results:d,counts:p,error:u,lastChecked:h,hasUncheckedItems:g,jetpackScan:o,hasRequiredPlan:m}}},6516:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var c=a(7143),n=a(1609),r=a(5973),l=a(7478);const s=()=>{const{setWafConfig:e,setWafStats:t,setWafIsEnabled:a,setWafIsUpdating:s,setWafIsToggling:i}=(0,c.useDispatch)(l.a),o=(0,c.useSelect)((e=>e(l.a).getWaf())),m=(0,n.useCallback)((()=>(s(!0),r.A.fetchWaf().then((c=>{a(c?.isEnabled),e(c?.config),t(c?.stats)})).finally((()=>s(!1))))),[e,t,a,s]),p=(0,n.useCallback)((()=>(o.isEnabled||i(!0),s(!0),r.A.toggleWaf().then(m).finally((()=>{i(!1),s(!1)})))),[m,o.isEnabled,i,s]),d=(0,n.useCallback)((()=>o.isEnabled?Promise.resolve():p()),[p,o.isEnabled]),u=(0,n.useCallback)((()=>(s(!0),d().then((()=>r.A.updateWaf({jetpack_waf_automatic_rules:!o.config.jetpackWafAutomaticRules}))).then(m).finally((()=>s(!1))))),[d,m,s,o.config.jetpackWafAutomaticRules]),h=(0,n.useCallback)((()=>(s(!0),r.A.updateWaf({jetpack_waf_ip_allow_list_enabled:!o.config.jetpackWafIpAllowListEnabled}).then(m).finally((()=>s(!1))))),[m,s,o.config.jetpackWafIpAllowListEnabled]),g=(0,n.useCallback)((()=>(s(!0),r.A.updateWaf({jetpack_waf_ip_block_list_enabled:!o.config.jetpackWafIpBlockListEnabled}).then(m).finally((()=>s(!1))))),[m,s,o.config.jetpackWafIpBlockListEnabled]),v=(0,n.useCallback)((()=>(s(!0),r.A.updateWaf({brute_force_protection:!o.config.bruteForceProtection}).then(m).finally((()=>s(!1))))),[m,s,o.config.bruteForceProtection]),f=(0,n.useCallback)((()=>(s(!0),d().then((()=>r.A.updateWaf({jetpack_waf_share_data:!o.config.jetpackWafShareData}))).then(m).finally((()=>s(!1))))),[d,m,s,o.config.jetpackWafShareData]),E=(0,n.useCallback)((()=>(s(!0),d().then((()=>r.A.updateWaf({jetpack_waf_share_debug_data:!o.config.jetpackWafShareDebugData}))).then(m).finally((()=>s(!1))))),[d,m,s,o.config.jetpackWafShareDebugData]),A=(0,n.useCallback)((e=>(s(!0),r.A.updateWaf(e).then(m).finally((()=>s(!1))))),[m,s]);return(0,n.useEffect)((()=>{void 0!==o.config||o.isFetching||m()}),[o.config,o.isFetching,s,m]),{...o,refreshWaf:m,toggleWaf:p,toggleAutomaticRules:u,toggleIpAllowList:h,toggleIpBlockList:g,toggleBruteForceProtection:v,toggleShareData:f,toggleShareDebugData:E,updateConfig:A}}},1671:(e,t,a)=>{"use strict";a.d(t,{A:()=>I});var c=a(442),n=a(7656),r=a(7425),l=a(1112),s=a(4437),i=a(5918),o=a(8509),m=a(9384),p=a(6427),d=a(7143),u=a(6087),h=a(7723),g=a(1113),v=a(1249),f=a(6154),E=a.n(f),A=a(1609),y=a(5973),w=a(1186),k=a(8955),b=a(9921),_=a(7508),R=a(9454),C=a(4491),j=a(8140),S=a(1226),x=a(727),N=a(6516),M=a(7478),L=a(7642);const __=h.__,z=window?.jetpackProtectInitialState?.adminUrl,P=5e3,I=()=>{const[e]=(0,c.A)(["sm","lg"],[null,"<"]),{setWafIsSeen:t,setWafUpgradeIsSeen:a,setNotice:f}=(0,d.useDispatch)(M.a),{config:{jetpackWafAutomaticRules:I,jetpackWafIpBlockListEnabled:T,jetpackWafIpAllowListEnabled:V,jetpackWafIpBlockList:F,jetpackWafIpAllowList:H,automaticRulesAvailable:B,bruteForceProtection:O},currentIp:D,isEnabled:U,isSeen:W,upgradeIsSeen:q,displayUpgradeBadge:$,wafSupported:J,isUpdating:G,stats:{automaticRulesLastUpdated:Z},toggleAutomaticRules:K,toggleIpAllowList:Q,toggleIpBlockList:Y,toggleBruteForceProtection:X,toggleWaf:ee,updateConfig:te}=(0,N.A)(),{hasRequiredPlan:ae}=(0,x.A)(),{run:ce}=(0,m.useProductCheckoutWorkflow)({productSlug:j.J3,redirectUrl:`${z}#/firewall`,useBlogIdSuffix:!0}),{recordEventHandler:ne,recordEvent:re}=(0,S.A)(),[le,se]=(0,A.useState)(!1),[ie,oe]=(0,A.useState)({jetpack_waf_automatic_rules:I,jetpack_waf_ip_block_list_enabled:T,jetpack_waf_ip_allow_list_enabled:V,jetpack_waf_ip_block_list:F,jetpack_waf_ip_allow_list:H,brute_force_protection:O}),[me,pe]=(0,A.useState)(!1),[de,ue]=(0,A.useState)(!1),[he,ge]=(0,A.useState)(!1),ve=U&&!me,fe=U&&(ae||B),Ee=!me&&!!ie.jetpack_waf_ip_allow_list_enabled,Ae=ie.jetpack_waf_ip_block_list!==F,ye=ie.jetpack_waf_ip_allow_list!==H,we=!!ie.jetpack_waf_ip_block_list,ke=!!ie.jetpack_waf_ip_allow_list,be=U&&ie.jetpack_waf_ip_block_list_enabled,_e=(0,A.useCallback)((e=>{switch(e.code){case"file_system_error":return __("A filesystem error occurred.","jetpack-protect");case"rules_api_error":return __("An error occurred retrieving the latest firewall rules from Jetpack.","jetpack-protect");default:return!1}}),[]),Re=(0,A.useCallback)((e=>{const t=_e(e)||__("An error occurred.","jetpack-protect"),a=(0,u.createInterpolateElement)(__("Please try again or contact support.","jetpack-protect"),{supportLink:React.createElement(p.ExternalLink,{href:ae?j.NW:j.pQ})});f({type:"error",message:React.createElement(React.Fragment,null,t," ",a)})}),[_e,f,ae]),Ce=ne("jetpack_protect_waf_page_get_scan_link_click",ce),je=(0,A.useCallback)((()=>{pe(!0),ue(!0),te(ie).then((()=>f({type:"success",duration:P,message:__("Allow list changes saved.","jetpack-protect")}))).catch(Re).finally((()=>{pe(!1),ue(!1)}))}),[te,ie,Re,f]),Se=(0,A.useCallback)((()=>{pe(!0),ge(!0),te(ie).then((()=>f({type:"success",duration:P,message:__("Block list changes saved.","jetpack-protect")}))).catch(Re).finally((()=>{pe(!1),ge(!1)}))}),[te,ie,Re,f]),xe=(0,A.useCallback)((e=>{const{value:t,id:a}=e.target;oe({...ie,[a]:t})}),[ie]),Ne=(0,A.useCallback)((()=>{pe(!0);const e=!ie.jetpack_waf_automatic_rules;oe({...ie,jetpack_waf_automatic_rules:e}),K().then((()=>{se(!1),f({type:"success",duration:P,message:e?__("Automatic firewall protection is enabled.","jetpack-protect"):__("Automatic firewall protection is disabled.","jetpack-protect",0)}),re(e?"jetpack_protect_automatic_rules_enabled":"jetpack_protect_automatic_rules_disabled")})).then((()=>{q||(a(!0),y.A.wafUpgradeSeen())})).catch((e=>{se(!0),Re(e)})).finally((()=>pe(!1)))}),[ie,K,f,re,q,a,Re]),Me=(0,A.useCallback)((()=>{pe(!0);const e=!ie.brute_force_protection;oe({...ie,brute_force_protection:e}),X().then((()=>{f({type:"success",duration:P,message:e?__("Brute force protection is enabled.","jetpack-protect"):__("Brute force protection is disabled.","jetpack-protect",0)}),re(e?"jetpack_protect_brute_force_protection_enabled":"jetpack_protect_brute_force_protection_disabled")})).catch(Re).finally((()=>pe(!1)))}),[ie,X,Re,f,re]),Le=(0,A.useCallback)((()=>{const e=!ie.jetpack_waf_ip_allow_list_enabled;pe(!0),ue(!0),oe({...ie,jetpack_waf_ip_allow_list_enabled:e}),Q().then((()=>{f({type:"success",duration:P,message:e?__("Allow list active.","jetpack-protect"):__("Allow list is disabled.","jetpack-protect",0)}),re(e?"jetpack_protect_ip_allow_list_enabled":"jetpack_protect_ip_allow_list_disabled")})).catch(Re).finally((()=>{pe(!1),ue(!1)}))}),[ie,Q,Re,f,re]),ze=(0,A.useCallback)((()=>{const e=!ie.jetpack_waf_ip_block_list_enabled;pe(!0),ge(!0),oe({...ie,jetpack_waf_ip_block_list_enabled:e}),Y().then((()=>{f({type:"success",duration:P,message:e?__("Block list is active.","jetpack-protect"):__("Block list is disabled.","jetpack-protect",0)}),re(e?"jetpack_protect_ip_block_list_enabled":"jetpack_protect_ip_block_list_disabled")})).catch(Re).finally((()=>{pe(!1),ge(!1)}))}),[ie,Y,Re,f,re]),Pe=(0,A.useCallback)((()=>{a(!0),y.A.wafUpgradeSeen()}),[a]),Ie=(0,A.useMemo)((()=>ie.jetpack_waf_ip_allow_list.includes(D)),[ie.jetpack_waf_ip_allow_list,D]),Te=(0,A.useCallback)((()=>{const e=ie.jetpack_waf_ip_allow_list.length>0?`${ie.jetpack_waf_ip_allow_list}\n${D}`:D;oe((t=>({...t,jetpack_waf_ip_allow_list:e})))}),[ie.jetpack_waf_ip_allow_list,D]);(0,A.useEffect)((()=>{G||oe({jetpack_waf_automatic_rules:I,jetpack_waf_ip_block_list_enabled:T,jetpack_waf_ip_allow_list_enabled:V,jetpack_waf_ip_block_list:F,jetpack_waf_ip_allow_list:H,brute_force_protection:O})}),[T,V,F,H,I,O,G]),(0,A.useEffect)((()=>{W||(t(!0),y.A.wafSeen())}),[W,t]),(0,S.A)({pageViewEventName:"protect_waf",pageViewEventProperties:{has_plan:ae}});const Ve=React.createElement(n.A,{level:"error",title:"Jetpack Firewall is currently disabled.",children:React.createElement(r.Ay,null,__("Re-enable the Firewall to continue.","jetpack-protect")),actions:[React.createElement(l.A,{variant:"link",onClick:ee,isLoading:G,disabled:G},__("Enable Firewall","jetpack-protect"))],hideCloseButton:!0}),Fe=React.createElement(React.Fragment,null,React.createElement("div",{className:`${L.A["toggle-section"]} ${fe?"":L.A["toggle-section--disabled"]}`},React.createElement("div",{className:L.A["toggle-section__control"]},React.createElement(_.A,{checked:!!fe&&ie.jetpack_waf_automatic_rules,onChange:Ne,disabled:!ve||!fe}),ae&&!1===q&&React.createElement(p.Popover,{noArrow:!1,offset:8,position:"top right",inline:!0},React.createElement("div",{className:L.A.popover},React.createElement("div",{className:L.A.popover__header},React.createElement(r.Ay,{className:L.A.popover__title,variant:"title-small"},__("Thanks for upgrading!","jetpack-protect")),React.createElement(l.A,{className:L.A.popover__button,variant:"icon"},React.createElement(g.A,{onClick:Pe,icon:v.A,size:24,"aria-label":__("Close Window","jetpack-protect")}))),React.createElement(r.Ay,{className:L.A.popover__description,variant:"body",mt:2,mb:3},__("Turn on Jetpack Firewall to automatically protect your site with the latest security rules.","jetpack-protect")),React.createElement("div",{className:L.A.popover__footer},React.createElement(l.A,{onClick:Pe},__("Got it","jetpack-protect")))))),React.createElement("div",{className:L.A["toggle-section__content"]},React.createElement("div",{className:L.A["toggle-section__title"]},React.createElement(r.Ay,{variant:"title-medium",mb:2},__("Automatic firewall protection","jetpack-protect")),!e&&ae&&$&&React.createElement("span",{className:L.A.badge},__("NOW AVAILABLE","jetpack-protect"))),React.createElement(r.Ay,null,__("Block untrusted traffic by scanning every request made to your site. Jetpack’s security rules are always up-to-date to protect against the latest threats.","jetpack-protect")),React.createElement("div",{className:L.A["toggle-section__details"]},I&&Z&&!le&&React.createElement("div",{className:L.A["automatic-rules-stats"]},React.createElement(r.Ay,{className:L.A["automatic-rules-stats__version"],variant:"body-small"},__("Automatic security rules installed.","jetpack-protect")),React.createElement(r.Ay,{className:L.A["automatic-rules-stats__last-updated"],variant:"body-small"},(0,h.sprintf)(
+// translators: placeholder is the date latest rules were updated i.e. "September 23, 2022".
+__("Last updated on %s.","jetpack-protect"),E().unix(Z).format("MMMM D, YYYY")))),le&&React.createElement(React.Fragment,null,React.createElement(r.Ay,{className:L.A["automatic-rules-stats__failed-install"],variant:"body-small",mt:2},__("Failed to update automatic firewall rules.","jetpack-protect")," ",_e(le)),React.createElement(l.A,{variant:"link",href:ae?j.NW:j.pQ},React.createElement(r.Ay,{variant:"body-small"},__("Contact support","jetpack-protect"))))))),!ae&&React.createElement("div",{className:L.A["upgrade-trigger-section"]},React.createElement(s.A,{className:L.A["upgrade-trigger"],description:fe?__("Your site is not receiving the latest updates to automatic rules","jetpack-protect",0):__("Set up automatic rules with one click","jetpack-protect"),cta:fe?__("Upgrade to keep your site secure with up-to-date firewall rules","jetpack-protect",0):__("Upgrade to enable automatic firewall protection","jetpack-protect"),onClick:Ce}))),He=React.createElement("div",{className:L.A["toggle-section"]},React.createElement("div",{className:L.A["toggle-section__control"]},React.createElement(_.A,{id:"brute_force_protection",checked:ie.brute_force_protection,onChange:Me,disabled:me})),React.createElement("div",{className:L.A["toggle-section__content"]},React.createElement(r.Ay,{variant:"title-medium",mb:2},__("Brute force protection","jetpack-protect")),React.createElement(r.Ay,null,__("Prevent bots and hackers from attempting to log in to your website with common username and password combinations.","jetpack-protect")))),Be=React.createElement("div",{className:`${L.A["toggle-section"]} ${U?"":L.A["toggle-section--disabled"]}`},React.createElement("div",{className:L.A["toggle-section__control"]},React.createElement(_.A,{id:"jetpack_waf_ip_block_list_enabled",checked:be,onChange:ze,disabled:!ve})),React.createElement("div",{className:L.A["toggle-section__content"]},React.createElement(r.Ay,{variant:"title-medium",mb:2},__("Block IP addresses","jetpack-protect")),React.createElement(r.Ay,{mb:1},__("Stop specific visitors from accessing your site by their IP address.","jetpack-protect")),(be||we)&&React.createElement("div",{className:L.A["manual-rules-section"]},React.createElement(C.A,{id:"jetpack_waf_ip_block_list",placeholder:__("Example:","jetpack-protect")+"\n12.12.12.1\n12.12.12.2",rows:3,value:ie.jetpack_waf_ip_block_list,onChange:xe,disabled:!ve||!be})),be&&React.createElement("div",{className:L.A["block-list-button-container"]},React.createElement(l.A,{onClick:Se,isLoading:he,disabled:!ve||!Ae},__("Save block list","jetpack-protect"))))),Oe=React.createElement(React.Fragment,null,React.createElement("div",{className:L.A["toggle-section"]},React.createElement("div",{className:L.A["toggle-section__control"]},React.createElement(_.A,{id:"jetpack_waf_ip_allow_list_enabled",checked:ie.jetpack_waf_ip_allow_list_enabled,onChange:Le,disabled:me})),React.createElement("div",{className:L.A["toggle-section__content"]},React.createElement(r.Ay,{variant:"title-medium",mb:2},__("Trusted IP addresses","jetpack-protect")),React.createElement(r.Ay,{mb:1},__("IP addresses added to this list are always allowed by Jetpack.","jetpack-protect")),(ie.jetpack_waf_ip_allow_list_enabled||ke)&&React.createElement("div",{className:L.A["manual-rules-section"]},React.createElement(C.A,{id:"jetpack_waf_ip_allow_list",placeholder:__("Example:","jetpack-protect")+"\n12.12.12.1\n12.12.12.2",rows:3,value:ie.jetpack_waf_ip_allow_list,onChange:xe,disabled:!Ee}),React.createElement(r.Ay,{variant:"body-extra-small",mt:1},__("Add IP addresses here to ensure they always have access to your site, regardless of Jetpack's security features.","jetpack-protect"))),ie.jetpack_waf_ip_allow_list_enabled&&React.createElement("div",{className:L.A["allow-list-button-container"]},React.createElement("div",null,React.createElement(r.Ay,{variant:"body-small",className:L.A["allow-list-current-ip"]},(0,u.createInterpolateElement)((0,h.sprintf)(
+// translators: placeholder is the user's current IP address.
+__("Your current IP: %s","jetpack-protect"),D),{strong:React.createElement("strong",null)})),React.createElement(l.A,{variant:"secondary",size:"small",onClick:Te,disabled:!Ee||Ie||me},__("+ Add to Allow List","jetpack-protect"))),React.createElement(l.A,{onClick:je,isLoading:de,disabled:me||!ye},__("Save allow list","jetpack-protect"))))));return React.createElement(w.A,null,React.createElement(b.A,null),React.createElement(i.A,{className:L.A.container,horizontalSpacing:8,horizontalGap:4},J&&!U&&React.createElement(o.A,null,Ve," "),React.createElement(o.A,null,React.createElement("div",{className:L.A["toggle-wrapper"]},J&&Fe,He,J&&React.createElement(React.Fragment,null,Be,React.createElement("div",{className:L.A.divider})),Oe))),J?React.createElement(k.A,null):React.createElement(R.A,null))}},5717:(e,t,a)=>{"use strict";a.d(t,{A:()=>k});var c=a(766),n=a(5918),r=a(8509),l=a(7425),s=a(7723),i=a(1609),o=a(726),m=a(1186),p=a(7137),d=a(7827),u=a(9454),h=a(9395),g=a(6742),v=a(993),f=a(1226),E=a(727),A=a(7115),y=a(2621),w=a(5960);const __=s.__,_n=s._n,k=()=>{(0,f.A)({pageViewEventName:"protect_scan_history"});const{filter:e="all"}=(0,o.g)(),{item:t,list:a,selected:k,setSelected:b}=(0,v.A)({source:"history",status:e}),{counts:_,error:R,hasRequiredPlan:C}=(0,E.A)({sourceType:"history",filter:{status:e}}),{threats:j}=_.all,{counts:S}=(0,E.A)({sourceType:"history",filter:{status:"fixed",key:k}}),{threats:x}=S.current,{counts:N}=(0,E.A)({sourceType:"history",filter:{status:"ignored",key:k}}),{threats:M}=N.current,L=(0,i.useCallback)((()=>{switch(k){case"all":if(1===a.length)switch(e){case"fixed":return __("All fixed threats","jetpack-protect");case"ignored":return __("All ignored threats","jetpack-protect",0);default:return __("All threats","jetpack-protect")}switch(e){case"fixed":return(0,s.sprintf)(/* translators: placeholder is the amount of fixed threats found on the site. */
+__("All %s fixed threats","jetpack-protect"),a.length);case"ignored":return(0,s.sprintf)(/* translators: placeholder is the amount of ignored threats found on the site. */
+__("All %s ignored threats","jetpack-protect"),a.length);default:return(0,s.sprintf)(/* translators: placeholder is the amount of threats found on the site. */
+__("All %s threats","jetpack-protect"),a.length)}case"core":switch(e){case"fixed":return(0,s.sprintf)(/* translators: placeholder is the amount of fixed WordPress threats found on the site. */
+_n("%1$s fixed WordPress threat","%1$s fixed WordPress threats",a.length,"jetpack-protect"),a.length);case"ignored":return(0,s.sprintf)(/* translators: placeholder is the amount of ignored WordPress threats found on the site. */
+_n("%1$s ignored WordPress threat","%1$s ignored WordPress threats",a.length,"jetpack-protect"),a.length);default:return(0,s.sprintf)(/* translators: placeholder is the amount of WordPress threats found on the site. */
+_n("%1$s WordPress threat","%1$s WordPress threats",a.length,"jetpack-protect"),a.length)}case"files":switch(e){case"fixed":return(0,s.sprintf)(/* translators: placeholder is the amount of fixed file threats found on the site. */
+_n("%1$s fixed file threat","%1$s fixed file threats",a.length,"jetpack-protect"),a.length);case"ignored":return(0,s.sprintf)(/* translators: placeholder is the amount of ignored file threats found on the site. */
+_n("%1$s ignored file threat","%1$s ignored file threats",a.length,"jetpack-protect"),a.length);default:return(0,s.sprintf)(/* translators: placeholder is the amount of file threats found on the site. */
+_n("%1$s file threat","%1$s file threats",a.length,"jetpack-protect"),a.length)}case"database":switch(e){case"fixed":return(0,s.sprintf)(/* translators: placeholder is the amount of fixed database threats found on the site. */
+_n("%1$s fixed database threat","%1$s fixed database threats",a.length,"jetpack-protect"),a.length);case"ignored":return(0,s.sprintf)(/* translators: placeholder is the amount of ignored database threats found on the site. */
+_n("%1$s ignored database threat","%1$s ignored database threats",a.length,"jetpack-protect"),a.length);default:return(0,s.sprintf)(/* translators: placeholder is the amount of database threats found on the site. */
+_n("%1$s database threat","%1$s database threats",a.length,"jetpack-protect"),a.length)}default:switch(e){case"fixed":return(0,s.sprintf)(/* translators: Translates to "123 fixed threats in Example Plugin (1.2.3)" */
+_n("%1$s fixed threat in %2$s %3$s","%1$s fixed threats in %2$s %3$s",a.length,"jetpack-protect"),a.length,t?.name,t?.version);case"ignored":return(0,s.sprintf)(/* translators: Translates to "123 ignored threats in Example Plugin (1.2.3)" */
+_n("%1$s ignored threat in %2$s %3$s","%1$s ignored threats in %2$s %3$s",a.length,"jetpack-protect"),a.length,t?.name,t?.version);default:return(0,s.sprintf)(/* translators: Translates to "123 threats in Example Plugin (1.2.3)" */
+_n("%1$s threat in %2$s %3$s","%1$s threats in %2$s %3$s",a.length,"jetpack-protect"),a.length,t?.name,t?.version)}}}),[k,a.length,e,t?.name,t?.version]);return C?0===a.length&&"all"!==e?React.createElement(o.C5,{to:"/scan/history"}):React.createElement(m.A,null,React.createElement(c.A,null,React.createElement(n.A,{horizontalSpacing:3,horizontalGap:4},React.createElement(r.A,null,React.createElement(A.A,{subtitle:R?null:__("Threat history","jetpack-protect"),title:R?null:(0,s.sprintf)(/* translators: %s: Total number of threats */
+__("%1$s previously active %2$s","jetpack-protect"),j,1===j?"threat":"threats")})),R?React.createElement(r.A,null,React.createElement(p.A,{baseErrorMessage:__("An error occurred loading your site's threat history.","jetpack-protect"),errorMessage:R.message,errorCode:R.code})):React.createElement(r.A,null,React.createElement(n.A,{fluid:!0,horizontalSpacing:0,horizontalGap:3},React.createElement(r.A,{lg:4},React.createElement(h.A,{selected:k,onSelect:b,sourceType:"history",statusFilter:e})),React.createElement(r.A,{lg:8},a.length>0?React.createElement("div",null,React.createElement("div",{className:w.A["list-header"]},React.createElement(l.hE,{className:w.A["list-title"]},L()),React.createElement("div",{className:w.A["list-header__controls"]},React.createElement(y.A,{numFixed:x,numIgnored:M}))),React.createElement(g.A,{list:a,hideAutoFixColumn:!0})):React.createElement(React.Fragment,null,React.createElement("div",{className:w.A["list-header"]},React.createElement("div",{className:w.A["list-header__controls"]},React.createElement(y.A,null))),React.createElement("div",{className:w.A.empty},React.createElement(d.A,null),React.createElement(l.H3,{weight:"bold",mt:8},__("Don't worry about a thing","jetpack-protect")),React.createElement(l.Ay,{mb:4},(0,s.sprintf)(/* translators: %s: Filter type */
+__("There are no%sthreats in your scan history.","jetpack-protect"),"all"===e?" ":` ${e} `))))))))),React.createElement(u.A,null)):React.createElement(o.C5,{to:"/scan"})}},2621:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(7723),n=a(1609),r=a.n(n),l=a(726),s=a(4907);const __=c.__;function i({numFixed:e,numIgnored:t}){const a=(0,l.Zp)(),{filter:c="all"}=(0,l.g)(),i=(0,n.useCallback)((e=>()=>a(e)),[a]);return r().createElement(s.A,null,r().createElement(s.A.Button,{variant:"all"===c?"primary":"secondary",onClick:i("/scan/history")},__("All","jetpack-protect")),r().createElement(s.A.Button,{variant:"fixed"===c?"primary":"secondary",onClick:i("/scan/history/fixed"),disabled:!e},__("Fixed","jetpack-protect")),r().createElement(s.A.Button,{variant:"ignored"===c?"primary":"secondary",onClick:i("/scan/history/ignored"),disabled:!t},__("Ignored","jetpack-protect")))}},5148:(e,t,a)=>{"use strict";a.d(t,{A:()=>V});var c=a(8509),n=a(5918),r=a(7425),l=a(766),s=a(9384),i=a(6427),o=a(7143),m=a(7723),p=a(1609),d=a.n(p),u=a(5242),h=a(1186),g=a(7137),v=a(4256),f=a(9454),E=a(5165),A=a(147),y=a(5661),w=a(8140),k=a(1226),b=a(1936),_=a(727),R=a(6516),C=a(7478),j=a(3411),S=a(7115),x=a(6359),N=a(3396),M=a(4404);const __=m.__,L=()=>{const{hasConnectionError:e}=(0,s.useConnectionErrorNotice)();return d().createElement(d().Fragment,null,e&&d().createElement(c.A,{className:x.A["connection-error-col"]},d().createElement(s.ConnectionError,null)),d().createElement(c.A,null,d().createElement("div",{id:"jp-admin-notices",className:"my-jetpack-jitm-card"})))},z=()=>d().createElement(n.A,{horizontalSpacing:0},d().createElement(L,null)),P=({errorMessage:e,errorCode:t})=>d().createElement(d().Fragment,null,d().createElement(z,null),d().createElement(n.A,{horizontalSpacing:3,horizontalGap:4},d().createElement(c.A,null,d().createElement(S.A,null)),d().createElement(c.A,null,d().createElement(g.A,{baseErrorMessage:__("We are having problems scanning your site.","jetpack-protect"),errorMessage:e,errorCode:t})))),I=({currentProgress:e})=>{const{hasRequiredPlan:t}=(0,_.A)(),{globalStats:a}=(0,R.A)(),l=parseInt(a?.totalVulnerabilities),s=isNaN(l)?"50,000":l.toLocaleString();return d().createElement(d().Fragment,null,d().createElement(z,null),d().createElement(n.A,{horizontalSpacing:3,horizontalGap:4},d().createElement(c.A,null,d().createElement(S.A,null)),d().createElement(c.A,null,d().createElement(E.A,{main:d().createElement("div",{className:x.A["main-content"]},d().createElement(n.A,{horizontalSpacing:3,horizontalGap:7},d().createElement(c.A,{className:x.A["loading-content"]},d().createElement(i.Spinner,{style:{color:"black",marginTop:0,marginLeft:0}}),d().createElement("span",null,__("Scanning your site…","jetpack-protect"))),d().createElement(c.A,null,d().createElement(r.H3,{style:{textWrap:"balance"}},__("Your results will be ready soon","jetpack-protect")),t&&null!==e&&e>=0&&d().createElement(v.A,{value:e}),d().createElement(r.Ay,null,(0,m.sprintf)(
+// translators: placeholder is the number of total vulnerabilities i.e. "22,000".
+__("We are scanning for security threats from our more than %s listed vulnerabilities, powered by WPScan. This could take a minute or two.","jetpack-protect"),s))))),secondary:d().createElement("div",{className:x.A.illustration},d().createElement("img",{src:u,alt:""})),preserveSecondaryOnMobile:!1}))))},T=()=>d().createElement(d().Fragment,null,d().createElement(z,null),d().createElement(n.A,{horizontalSpacing:3,horizontalGap:4},d().createElement(c.A,null,d().createElement(A.A,null)),d().createElement(c.A,null,d().createElement(y.A,null)))),V=()=>{const{lastChecked:e,hasRequiredPlan:t}=(0,_.A)(),{refreshStatus:a}=(0,o.useDispatch)(C.a),{scanInProgress:c,statusIsFetching:n,scanIsUnavailable:r,status:s,scanError:i}=(0,o.useSelect)((e=>({scanError:e(C.a).scanError(),scanInProgress:e(C.a).scanInProgress(),scanIsUnavailable:e(C.a).getScanIsUnavailable(),status:e(C.a).getStatus(),statusIsFetching:e(C.a).getStatusIsFetching()})));let m;m=i?"error":e?"active":"in_progress",(0,k.A)({pageViewEventName:"protect_admin",pageViewEventProperties:{check_status:m,has_plan:t}}),(0,M.A)(),(0,N.A)(),(0,p.useEffect)((()=>{n||w.Mm!==s.status||r||a(!0)}),[n,s.status,a,r]);const u=(0,p.useMemo)((()=>c?d().createElement(I,{currentProgress:s.currentProgress}):i?d().createElement(P,{errorMessage:i.message,errorCode:i.code}):d().createElement(T,null)),[c,s.currentProgress,i]);return d().createElement(b.dn.Provider,{value:j.A},d().createElement(h.A,null,d().createElement(l.A,null,u),d().createElement(f.A,null)))}},3411:(e,t,a)=>{"use strict";a.d(t,{A:()=>E});var c=a(6072),n=a.n(c),r=a(7425),l=a(1112),s=a(3924),i=a(9384),o=a(6087),m=a(7723),p=a(8140),d=a(1226);const __=m.__,{adminUrl:u,siteSuffix:h}=window.jetpackProtectInitialState,g=__("Your scan results","jetpack-protect"),v=React.createElement(r.Ay,null,__("Navigate through the results of the scan on your WordPress installation, plugins, themes, and other files","jetpack-protect")),f=e=>{const{run:t}=(0,i.useProductCheckoutWorkflow)({productSlug:p.J3,redirectUrl:u}),{recordEventHandler:a}=(0,d.A)(),c=a("jetpack_protect_onboarding_get_scan_link_click",t);return React.createElement(l.A,n()({variant:"link",weight:"regular",onClick:c},e))},E=[{id:"free-scan-results",title:g,description:v},{id:"free-daily-scans",title:__("Daily automated scans","jetpack-protect"),description:React.createElement(r.Ay,null,(0,o.createInterpolateElement)(__("We run daily automated scans. Do you want to be able to scan manually? Upgrade","jetpack-protect"),{upgradeLink:React.createElement(f,null)}))},{id:"paid-scan-results",title:g,description:v},{id:"paid-fix-all-threats",title:__("Auto-fix with one click","jetpack-protect"),description:React.createElement(r.Ay,null,__("Jetpack Protect offers one-click fixes for most threats. Press this button to be safe again.","jetpack-protect"),React.createElement("br",null),React.createElement("br",null),(0,o.createInterpolateElement)(__("Note that you'll have to input your server credentials first.","jetpack-protect"),{credentialsLink:React.createElement(l.A,{variant:"link",weight:"regular",href:(0,s.A)("jetpack-settings-security-credentials",{site:h})})}))},{id:"paid-understand-severity",title:__("Understand severity","jetpack-protect"),description:React.createElement(r.Ay,null,__("Learn how critical these threats are for the security of your site by glancing at the severity labels.","jetpack-protect"))},{id:"paid-daily-and-manual-scans",title:__("Daily & manual scanning","jetpack-protect"),description:React.createElement(r.Ay,null,__("We run daily automated scans but you can also run on-demand scans if you want to check the latest status.","jetpack-protect"))}]},7115:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(8478),n=a(5918),r=a(8509),l=a(7425),s=a(1609),i=a.n(s),o=a(727),m=a(5412),p=a(6359);const d=({title:e,subtitle:t,controls:a})=>{const s=(0,c.Wy)("protect"),{hasRequiredPlan:d}=(0,o.A)();return i().createElement(n.A,{fluid:!0},i().createElement(r.A,null,i().createElement("div",{className:p.A["scan-section-header"]},i().createElement("div",{className:p.A["scan-section-header__content"]},t&&i().createElement(l.hE,{size:"small",className:p.A["scan-section-header__subtitle"]},i().createElement(s,{size:32,className:p.A["scan-section-header__icon"]}),t),e&&i().createElement(l.Ay,{variant:"headline-small",component:"h1",className:p.A["scan-section-header__title"]},e),!!d&&i().createElement(m.A,null)),i().createElement("div",{className:p.A["scan-section-header__controls"]},i().createElement("div",{className:p.A["scan-section-header__controls__row"]},a)))))}},5412:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var c=a(7723),n=a(1609),r=a.n(n),l=a(726),s=a(4907);const __=c.__;function i(){const e=(0,l.Zp)(),t=(0,l.zy)(),a=(0,n.useCallback)((()=>e("/scan")),[e]),c=(0,n.useCallback)((()=>e("/scan/history")),[e]);return r().createElement("div",null,r().createElement(s.A,null,r().createElement(s.A.Button,{variant:"/scan"===t.pathname?"primary":"secondary",onClick:a},__("Scanner","jetpack-protect")),r().createElement(s.A.Button,{variant:t.pathname.includes("/scan/history")?"primary":"secondary",onClick:c},__("History","jetpack-protect"))))}},3396:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(7143),n=a(1609),r=a(7478);const l=()=>{const{checkCredentials:e}=(0,c.useDispatch)(r.a),t=(0,c.useSelect)((e=>e(r.a).getCredentials()));(0,n.useEffect)((()=>{t||e()}),[e,t])}},4404:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var c=a(1455),n=a.n(c),r=a(7143),l=a(6185),s=a.n(l),i=a(1609),o=a(8140),m=a(1226),p=a(7478);const d=()=>{const{recordEvent:e}=(0,m.A)(),t=(0,r.useSelect)((e=>e(p.a).getStatus())),{setStatus:a,setStatusProgress:c,setStatusIsFetching:l,setScanIsUnavailable:d}=(0,r.useDispatch)(p.a);(0,i.useEffect)((()=>{let r;const i=e=>o.vI.indexOf(e)>=0,m=(e,t)=>!t&&o._R===e,p=()=>new Promise(((e,t)=>{n()({path:"jetpack-protect/v1/status?hard_refresh=true",method:"GET"}).then((a=>{if(a?.error)throw a?.error_message;if(i(a?.status)||m(a?.status,a?.last_checked))return c(a?.current_progress),void(r=setTimeout((()=>{p().then((t=>e(t))).catch((e=>t(e)))}),1e4));e(a)})).catch((()=>{setTimeout((()=>{p().then((t=>e(t))).catch((e=>t(e)))}),5e3)}))}));if(i(t?.status)||m(t?.status,t?.lastChecked))return r=setTimeout((()=>{l(!0),p().then((t=>{d(o.Mm===t.status),a(s()(t)),e("jetpack_protect_scan_completed",{scan_status:t.status})})).finally((()=>{l(!1)}))}),1e4),()=>clearTimeout(r)}),[t?.status,t?.lastChecked,d,a,c,l,e])}},3772:(e,t,a)=>{"use strict";a.d(t,{$Z:()=>I,A1:()=>p,Ay:()=>ee,B6:()=>y,E0:()=>T,EJ:()=>w,JD:()=>P,Mf:()=>b,Wl:()=>d,bK:()=>f,bf:()=>L,c5:()=>_,cF:()=>M,ci:()=>S,fm:()=>j,hk:()=>A,iS:()=>E,iZ:()=>z,id:()=>m,jy:()=>N,mD:()=>u,oJ:()=>C,oW:()=>k,pW:()=>g,vN:()=>R,vT:()=>x,wd:()=>v,yA:()=>h});var c=a(1455),n=a.n(c),r=a(7723),l=a(6185),s=a.n(l),i=a(5973),o=a(8140);const _n=r._n,__=r.__,m="SET_CREDENTIALS_STATE_IS_FETCHING",p="SET_CREDENTIALS_STATE",d="SET_SCAN_HISTORY",u="SET_STATUS",h="SET_STATUS_PROGRESS",g="START_SCAN_OPTIMISTICALLY",v="SET_STATUS_IS_FETCHING",f="SET_SCAN_IS_UNAVAILABLE",E="SET_SCAN_IS_ENQUEUING",A="SET_INSTALLED_PLUGINS",y="SET_INSTALLED_THEMES",w="SET_WP_VERSION",k="SET_JETPACK_SCAN",b="SET_THREAT_IS_UPDATING",_="SET_THREATS_ARE_FIXING",R="SET_MODAL",C="SET_NOTICE",j="CLEAR_NOTICE",S="SET_HAS_REQUIRED_PLAN",x="SET_ONBOARDING_PROGRESS",N="SET_WAF_IS_SEEN",M="SET_WAF_UPGRADE_IS_SEEN",L="SET_WAF_IS_ENABLED",z="SET_WAF_IS_UPDATING",P="SET_WAF_IS_TOGGLING",I="SET_WAF_CONFIG",T="SET_WAF_STATS",V=e=>({type:d,scanHistory:e}),F=e=>({type:u,status:e}),H=()=>({type:g}),B=e=>n()({path:"jetpack-protect/v1/status"+(e?"?hard_refresh=true":""),method:"GET"}),O=(e=!1)=>async({dispatch:t})=>(t($(!0)),await new Promise(((a,c)=>B(e).then(U).then((e=>{t(J(o.Mm===e.status)),t(F(s()(e))),a(e)})).catch((e=>{c(e)})).finally((()=>{t($(!1))}))))),D=()=>async({dispatch:e})=>i.A.fetchScanHistory().then((e=>s()(e))).then((t=>{e(V(t))})),U=(e,t=0)=>new Promise(((a,c)=>{o.Mm===e.status&&t<3?B(!0).then((e=>{setTimeout((()=>{U(e,t+1).then((e=>a(e))).catch((e=>c(e)))}),5e3)})).catch(c):a(e)})),W=e=>({type:m,isFetching:e}),q=e=>({type:p,credentials:e}),$=e=>({type:v,status:e}),J=e=>({type:f,status:e}),G=e=>({type:E,isEnqueuing:e}),Z=(e,t)=>({type:b,payload:{threatId:e,isUpdating:t}}),K=e=>({type:_,threatIds:e}),Q=e=>async({dispatch:t})=>{const a=e.reduce(((e,t)=>`${e}threat_ids[]=${t}&`),"jetpack-protect/v1/fix-threats-status?");return t(K(e)),await n()({path:a,method:"GET"}).then((async a=>{const c=Object.values(a.threats);if(c.filter((e=>"in_progress"===e.status)).length>0)return await new Promise((()=>{setTimeout((()=>{t(Q(e))}),1e3)}));if(!c.filter((e=>"fixed"===e.status)).length===e.length)throw"Not all threats could be fixed."})).then((()=>{t(O()),t(D()),t(Y({type:"success",message:(0,r.sprintf)(
+// translators: placeholder is the number amount of fixed threats.
+_n("%s threat was fixed successfully","%s threats were fixed successfully",e.length,"jetpack-protect"),e.length)}))})).catch((()=>{t(Y({type:"error",message:__("Not all threats could be fixed. Please contact our support.","jetpack-protect")}))})).finally((()=>{t(K([]))}))},Y=e=>({type:C,payload:e}),X=e=>({type:S,hasRequiredPlan:e}),ee={checkCredentials:()=>async({dispatch:e})=>await new Promise(((t,a)=>(e(W(!0)),n()({path:"jetpack-protect/v1/check-credentials",method:"POST"}).then((a=>{e(q(a)),t(a)})).catch((e=>{a(e)})).finally((()=>{e(W(!1))}))))),setCredentials:q,setCredentialsIsFetching:W,setScanHistory:V,setStatus:F,setStatusProgress:e=>({type:h,currentProgress:e}),startScanOptimistically:H,refreshStatus:O,refreshScanHistory:D,setStatusIsFetching:$,setScanIsEnqueuing:G,setInstalledPlugins:e=>({type:A,plugins:e}),setInstalledThemes:e=>({type:y,themes:e}),setwpVersion:e=>({type:w,version:e}),setJetpackScan:e=>({type:k,scan:e}),ignoreThreat:(e,t=()=>{})=>async({dispatch:a})=>(a(Z(e,!0)),await new Promise((()=>n()({path:`jetpack-protect/v1/ignore-threat?threat_id=${e}`,method:"POST"}).then((()=>a(O()))).then((()=>a(D()))).then((()=>a(Y({type:"success",message:__("Threat ignored","jetpack-protect")})))).catch((()=>a(Y({type:"error",message:__("An error ocurred ignoring the threat.","jetpack-protect")})))).finally((()=>{a(Z(e,!1)),t()}))))),unignoreThreat:(e,t=()=>{})=>async({dispatch:a})=>(a(Z(e,!0)),await new Promise((()=>n()({path:`jetpack-protect/v1/unignore-threat?threat_id=${e}`,method:"POST"}).then((()=>a(D()))).then((()=>a(O()))).then((()=>a(Y({type:"success",message:__("Threat unignored","jetpack-protect")})))).catch((()=>a(Y({type:"error",message:__("An error ocurred unignoring the threat.","jetpack-protect")})))).finally((()=>{a(Z(e,!1)),t()}))))),setModal:e=>({type:R,payload:e}),setNotice:Y,clearNotice:()=>({type:j}),fixThreats:(e,t=()=>{})=>async({dispatch:a})=>(e.forEach((e=>{a(Z(e,!0))})),await new Promise((()=>n()({path:`jetpack-protect/v1/fix-threats?threat_ids=${e}`,method:"POST",data:{threatIds:e}}).then((()=>a(Y({type:"success",message:__("We're hard at work fixing this threat in the background. Please check back shortly.","jetpack-protect")})))).then((()=>{setTimeout((()=>a(Q(e))),1e3)})).catch((()=>a(Y({type:"error",message:__("Error fixing threats. Please contact support.","jetpack-protect")})))).finally((()=>{e.forEach((e=>{a(Z(e,!1))})),t()}))))),scan:(e=()=>{})=>async({dispatch:t})=>(t(G(!0)),await new Promise((()=>n()({path:"jetpack-protect/v1/scan",method:"POST"}).then((()=>{t(H()),setTimeout((()=>t(O(!0))),5e3)})).catch((()=>t(Y({type:"error",message:__("An error ocurred enqueuing the scan","jetpack-protect")})))).finally((()=>{t(G(!1)),e()}))))),setThreatsAreFixing:K,refreshPlan:()=>({dispatch:e})=>{n()({path:"jetpack-protect/v1/check-plan",method:"GET"}).then((t=>e(X(t))))},setHasRequiredPlan:X,setScanIsUnavailable:J,setOnboardingProgress:e=>({type:x,progress:e}),setWafIsEnabled:e=>({type:L,isEnabled:e}),setWafIsSeen:e=>({type:N,isSeen:e}),setWafUpgradeIsSeen:e=>({type:M,upgradeIsSeen:e}),setWafIsUpdating:e=>({type:z,isUpdating:e}),setWafIsToggling:e=>({type:P,isToggling:e}),setWafConfig:e=>({type:I,config:e}),setWafStats:e=>({type:T,stats:e})}},3010:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var c=a(7143),n=a(6185),r=a.n(n),l=a(8140),s=a(3772);const i={wafSupported:null,bruteForceSupported:null,isSeen:!1,upgradeIsSeen:!1,isEnabled:!1,isUpdating:!1,isToggling:!1,config:void 0,stats:void 0},o=(0,c.combineReducers)({credentials:(e=null,t)=>t.type===s.A1?t.credentials:e,credentialsIsFetching:(e=!1,t)=>t.type===s.id?t.isFetching:e,scanHistory:(e={},t)=>t.type===s.Wl?r()(t.scanHistory):e,status:(e={},t)=>{switch(t.type){case s.mD:return t.status;case s.yA:return{...e,currentProgress:t.currentProgress};case s.pW:return{...e,currentProgress:0,status:l.JD}}return e},statusIsFetching:(e=!1,t)=>t.type===s.wd?t.status:e,scanIsUnavailable:(e=!1,t)=>t.type===s.bK?t.status:e,scanIsEnqueuing:(e=!1,t)=>t.type===s.iS?t.isEnqueuing:e,installedPlugins:(e={},t)=>t.type===s.hk?t.plugins:e,installedThemes:(e={},t)=>t.type===s.B6?t.themes:e,wpVersion:(e={},t)=>t.type===s.EJ?t.version:e,jetpackScan:(e={},t)=>t.type===s.oW?t.scan:e,threatsUpdating:(e={},t)=>t.type===s.Mf?{...e,[t.payload.threatId]:t.payload.isUpdating}:e,modal:(e={},t)=>t.type===s.vN?{...e,...t.payload}:e,notice:(e={},t)=>{switch(t.type){case s.oJ:return{...e,...t.payload};case s.fm:return{}}return e},threatsAreFixing:(e=[],t)=>t.type===s.c5?t.threatIds:e,hasRequiredPlan:(e=!1,t)=>t.type===s.ci?t.hasRequiredPlan:e,onboardingProgress:(e=null,t)=>t.type===s.vT?t.progress:e,waf:(e=i,t)=>{switch(t.type){case s.jy:return{...e,isSeen:t.isSeen};case s.cF:return{...e,upgradeIsSeen:t.upgradeIsSeen};case s.bf:return{...e,isEnabled:t.isEnabled};case s.$Z:return{...e,config:t.config};case s.E0:return{...e,stats:t.stats};case s.iZ:return{...e,isUpdating:t.isUpdating};case s.JD:return{...e,isToggling:t.isToggling}}return e}})},3260:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(1455),n=a.n(c),r=a(3772);const l={getJetpackScan:{isFulfilled:e=>Object.keys(e?.jetpackScan).length>0,fulfill:()=>async({dispatch:e})=>{const t=await n()({path:"/my-jetpack/v1/site/products/scan",method:"GET"});e(r.Ay.setJetpackScan(t))}}}},5649:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var c=a(7723),n=a(8140);const __=c.__,r={getCredentials:e=>e.credentials||null,getCredentialsIsFetching:e=>e.credentialsIsFetching||!1,getInstalledPlugins:e=>e.installedPlugins||{},getInstalledThemes:e=>e.installedThemes||{},getScanHistory:e=>e.scanHistory||{},getStatus:e=>e.status||{},getStatusIsFetching:e=>e.statusIsFetching||!1,getScanIsUnavailable:e=>e.scanIsUnavailable||!1,getScanIsEnqueuing:e=>e.scanIsEnqueuing||!1,scanInProgress:e=>{const{status:t,lastChecked:a,error:c}=r.getStatus(e),l=r.getScanIsUnavailable(e);return n.JD===t||!l&&(!!n.vI.includes(t)||!a&&!c)},scanError:e=>{const{status:t,error:a,errorCode:c,errorMessage:n}=r.getStatus(e),l=r.getScanIsUnavailable(e),s=r.getStatusIsFetching(e);return a?{code:c,message:n}:l?{code:"scan_unavailable",message:__("We are having problems scanning your site.","jetpack-protect")}:t||s?null:{code:"scan_unavailable",message:__("We are having problems scanning your site.","jetpack-protect")}},getWpVersion:e=>e.wpVersion||"",getJetpackScan:e=>e.jetpackScan||{},getThreatsUpdating:e=>e.threatsUpdating||{},getModalType:e=>e.modal?.type||null,getModalProps:e=>e.modal?.props||{},getNotice:e=>e.notice||null,getThreatsAreFixing:e=>e.threatsAreFixing||[],hasRequiredPlan:e=>e.hasRequiredPlan||!1,getOnboardingProgress:e=>e.onboardingProgress||null,getWaf:e=>e.waf},l=r},6673:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var c=a(7143);class n{static store=null;static mayBeInit(e,t){null===n.store&&(n.store=(0,c.createReduxStore)(e,t),(0,c.register)(n.store))}}const r=n},7478:(e,t,a)=>{"use strict";a.d(t,{a:()=>m,k:()=>p});var c=a(6185),n=a.n(c),r=a(3772),l=a(3010),s=a(3260),i=a(5649),o=a(6673);const m="jetpack-protect";function p(){o.A.mayBeInit(m,{__experimentalUseThunks:!0,reducer:l.A,actions:r.Ay,selectors:i.A,resolvers:s.A,initialState:n()(window.jetpackProtectInitialState)||{}})}},5242:(e,t,a)=>{"use strict";e.exports=a.p+"images/in-progress-dabfeaa364c305be480c.png"},4611:e=>{"use strict";if(void 0==={consumer_slug:"jetpack-protect"}){var t=new Error('Cannot find module \'{"consumer_slug":"jetpack-protect"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"jetpack-protect"}},9384:e=>{"use strict";e.exports=window.JetpackConnection},7999:e=>{"use strict";e.exports=window.JetpackScriptDataModule},1609:e=>{"use strict";e.exports=window.React},790:e=>{"use strict";e.exports=window.ReactJSXRuntime},6154:e=>{"use strict";e.exports=window.moment},1455:e=>{"use strict";e.exports=window.wp.apiFetch},6427:e=>{"use strict";e.exports=window.wp.components},9491:e=>{"use strict";e.exports=window.wp.compose},7143:e=>{"use strict";e.exports=window.wp.data},8443:e=>{"use strict";e.exports=window.wp.date},6087:e=>{"use strict";e.exports=window.wp.element},7723:e=>{"use strict";e.exports=window.wp.i18n},5573:e=>{"use strict";e.exports=window.wp.primitives},3832:e=>{"use strict";e.exports=window.wp.url},6072:e=>{function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;tc})},3022:(e,t,a)=>{"use strict";function c(e){var t,a,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var r=e.length;for(t=0;tn});const n=function(){for(var e,t,a=0,n="",r=arguments.length;a{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var c in t)a.o(t,c)&&!a.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:t[c]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var c=t.getElementsByTagName("script");if(c.length)for(var n=c.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=c[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{"use strict";var e=a(723),t=a(6087),c=a(1609),n=a.n(c),r=a(726),l=a(9959),s=a(4440),i=a(5409),o=a(1936),m=a(1671),p=a(5148),d=a(5717),u=a(7478);a(5490);function h(){const e=(0,r.zy)();return(0,c.useEffect)((()=>window.scrollTo(0,0)),[e]),null}(0,u.k)(),function(){const a=document.getElementById("jetpack-protect-root");if(null===a)return;const c=n().createElement(e.Ay,null,n().createElement(o.Ll,{value:{renderedSteps:[]}},n().createElement(l.I9,null,n().createElement(h,null),n().createElement(r.BV,null,n().createElement(r.qh,{path:"/scan",element:n().createElement(p.A,null)}),n().createElement(r.qh,{path:"/scan/history",element:n().createElement(i.A,null,n().createElement(d.A,null))}),n().createElement(r.qh,{path:"/scan/history/:filter",element:n().createElement(i.A,null,n().createElement(d.A,null))}),n().createElement(r.qh,{path:"/firewall",element:n().createElement(m.A,null)}),n().createElement(r.qh,{path:"*",element:n().createElement(r.C5,{to:"/scan",replace:!0})}))),n().createElement(s.A,null)));t.createRoot(a).render(c)}()})()})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js.LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..e6a98f84
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.js.LICENSE.txt
@@ -0,0 +1,29 @@
+/*
+ * Exposes number format capability
+ *
+ * @copyright Copyright (c) 2013 Kevin van Zonneveld (http://kvz.io) and Contributors (http://phpjs.org/authors).
+ * @license See CREDITS.md
+ * @see https://github.com/kvz/phpjs/blob/ffe1356af23a6f2512c84c954dd4e828e92579fa/functions/strings/number_format.js
+ */
+
+/**
+ * React Router DOM v6.2.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * React Router v6.2.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.rtl.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.rtl.css
new file mode 100644
index 00000000..98348029
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/build/index.rtl.css
@@ -0,0 +1 @@
+._aiMxmJRAw5jRPbZFX57{background-color:var(--jp-gray-90);border-radius:var(--jp-border-radius);color:var(--jp-white);display:flex;overflow:hidden}._aiMxmJRAw5jRPbZFX57.eWgNBUaexiR66ZI1Px4U{border-right:4px solid var(--jp-yellow-20);margin-bottom:calc(var(--spacing-base)*3)}._aiMxmJRAw5jRPbZFX57.ZGELG1CO333FilJXOaeI{left:calc(var(--spacing-base)*3);margin-right:calc(var(--spacing-base)*3);position:fixed;top:calc(var(--spacing-base)*6)}@media(max-width:782px){._aiMxmJRAw5jRPbZFX57.ZGELG1CO333FilJXOaeI{top:calc(var(--spacing-base)*8)}}._aiMxmJRAw5jRPbZFX57 a,._aiMxmJRAw5jRPbZFX57 a:active,._aiMxmJRAw5jRPbZFX57 a:hover,._aiMxmJRAw5jRPbZFX57 a:link,._aiMxmJRAw5jRPbZFX57 a:visited{color:var(--jp-white)}.BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-yellow-30);fill:var(--jp-white);align-items:center;display:flex;justify-content:center;padding:calc(var(--spacing-base)*1.5)}.hRRUwTCPRpurhMwRNZkg .BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-green-50)}.Z6q3IxY_uR1y2lAPTkVF .BnI88X_e8ItF1c9Uozmj{background-color:var(--jp-red)}.eWgNBUaexiR66ZI1Px4U .BnI88X_e8ItF1c9Uozmj{fill:var(--jp-yellow-50);background-color:var(--jp-yellow-5)}.ST8sowTbBVLRPrk4ZQrn{font-size:14px;padding:calc(var(--spacing-base)*1.75)}.eWgNBUaexiR66ZI1Px4U .ST8sowTbBVLRPrk4ZQrn{background-color:var(--jp-yellow-5);color:var(--jp-gray-90)}.lMkO08Vd8YQMfwrwaI8u{fill:var(--jp-gray);align-items:center;background:#0000;border:none;cursor:pointer;display:flex;justify-content:center;padding:calc(var(--spacing-base)*1.5)}._Wc3apZobag_9Ag_THTb{display:flex;justify-content:space-between}.WQVtrU6q0L1Igcj7wCrQ{margin:0;padding:0}.UujoBFTnQNY2cWU2SIsH{font-size:var(--font-headline-medium);font-weight:700;line-height:52px}.TeGO5V_thHw5lDAm1_2M{font-weight:700}.TeGO5V_thHw5lDAm1_2M,.WolQzb2MsSgiNmLtc7_j{font-size:var(--font-headline-small);line-height:40px}.WolQzb2MsSgiNmLtc7_j{font-weight:400}.hUB0JT8p1T2Hw28N6qC8{font-weight:500}.gKZWDv5chz3_O3Syp74H,.hUB0JT8p1T2Hw28N6qC8{font-size:var(--font-title-medium);line-height:32px}.gKZWDv5chz3_O3Syp74H{font-weight:600}.zY2No8Ga4b8shbOQGhnv{font-size:var(--font-title-small);font-weight:500;line-height:30px}.tIj0D1t8Cc892ikmgFPZ{font-size:var(--font-body);font-weight:400;line-height:24px}.KdcN0BnOaVeVhyLRKqhS{font-size:var(--font-body-small);font-weight:400;line-height:24px}.dso3Rh3tl3Xv1GumBktz{font-weight:400}.dso3Rh3tl3Xv1GumBktz,.mQ1UlbN9u4Mg9byO8m7v{font-size:var(--font-body-extra-small);line-height:20px}.mQ1UlbN9u4Mg9byO8m7v{font-weight:700}.PItlW5vRExLnTj4a8eLE{font-size:var(--font-body-extra-small);font-weight:600;line-height:16px}.TwRpPlktzxhmFVeua7P5{margin:calc(var( --spacing-base )*0)}.zVfqx7gyb3o9mxfGynn1{margin-left:calc(var( --spacing-base )*0);margin-right:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy{margin-bottom:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy,.xqDIp6cNVr_E6RXaiPyD{margin-top:calc(var( --spacing-base )*0)}.S8EwaXk1kyPizt6x4WH2{margin-left:calc(var( --spacing-base )*0)}.ODX5Vr1TARoLFkDDFooD{margin-bottom:calc(var( --spacing-base )*0)}.cphJ8dCpfimnky7P2FHg{margin-right:calc(var( --spacing-base )*0)}.PFgIhNxIyiSuNvQjAIYj{margin:calc(var( --spacing-base )*1)}.M2jKmUzDxvJjjVEPU3zn{margin-left:calc(var( --spacing-base )*1);margin-right:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk{margin-bottom:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk,.rcTN5uw9xIEeMEGL3Xi_{margin-top:calc(var( --spacing-base )*1)}.CQSkybjq2TcRM1Xo9COV{margin-left:calc(var( --spacing-base )*1)}.hfqOWgq6_MEGdFE82eOY{margin-bottom:calc(var( --spacing-base )*1)}.I8MxZQYTbuu595yfesWA{margin-right:calc(var( --spacing-base )*1)}.kQkc6rmdpvLKPkyoJtVQ{margin:calc(var( --spacing-base )*2)}.j6vFPxWuu4Jan2ldoxpp{margin-left:calc(var( --spacing-base )*2);margin-right:calc(var( --spacing-base )*2)}.hqr39dC4H_AbactPAkCG{margin-bottom:calc(var( --spacing-base )*2)}.c3dQnMi16C6J6Ecy4283,.hqr39dC4H_AbactPAkCG{margin-top:calc(var( --spacing-base )*2)}.YNZmHOuRo6hU7zzKfPdP{margin-left:calc(var( --spacing-base )*2)}.Db8lbak1_wunpPk8NwKU{margin-bottom:calc(var( --spacing-base )*2)}.ftsYE5J9hLzquQ0tA5dY{margin-right:calc(var( --spacing-base )*2)}.Det4MHzLUW7EeDnafPzq{margin:calc(var( --spacing-base )*3)}.h_8EEAztC29Vve1datb5{margin-left:calc(var( --spacing-base )*3);margin-right:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM{margin-bottom:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM,.soADBBkcIKCBXzCTuV9_{margin-top:calc(var( --spacing-base )*3)}.zSX59ziEaEWGjnpZa4uV{margin-left:calc(var( --spacing-base )*3)}.yrVTnq_WBMbejg89c2ZQ{margin-bottom:calc(var( --spacing-base )*3)}.UKtHPJnI2cXBWtPDm5hM{margin-right:calc(var( --spacing-base )*3)}.guexok_Tqd5Tf52hRlbT{margin:calc(var( --spacing-base )*4)}.oS1E2KfTBZkJ3F0tN7T6{margin-left:calc(var( --spacing-base )*4);margin-right:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd{margin-bottom:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd,.ot2kkMcYHv53hLZ4LSn0{margin-top:calc(var( --spacing-base )*4)}.A1krOZZhlQ6Sp8Cy4bly{margin-left:calc(var( --spacing-base )*4)}.pkDbXXXL32237M0hokEh{margin-bottom:calc(var( --spacing-base )*4)}.XXv4kDTGvEnQeuGKOPU3{margin-right:calc(var( --spacing-base )*4)}.yGqHk1a57gaISwkXwXe6{margin:calc(var( --spacing-base )*5)}.X8cghM358X3DkXLc9aNK{margin-left:calc(var( --spacing-base )*5);margin-right:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f{margin-bottom:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f,.yqeuzwyGQ7zG0avrGqi_{margin-top:calc(var( --spacing-base )*5)}.g9emeCkuHvYhveiJbfXO{margin-left:calc(var( --spacing-base )*5)}.Lvk3dqcyHbZ07QCRlrUQ{margin-bottom:calc(var( --spacing-base )*5)}.r3yQECDQ9qX0XZzXlVAg{margin-right:calc(var( --spacing-base )*5)}.aQhlPwht2Cz1X_63Miw0{margin:calc(var( --spacing-base )*6)}.JyHb0vK3wJgpblL9s5j8{margin-left:calc(var( --spacing-base )*6);margin-right:calc(var( --spacing-base )*6)}.cY2gULL1lAv6WPNIRuf3{margin-bottom:calc(var( --spacing-base )*6)}.NBWQ9Lwhh_fnry3lg_p7,.cY2gULL1lAv6WPNIRuf3{margin-top:calc(var( --spacing-base )*6)}.yIOniNe5E40C8fWvBm5V{margin-left:calc(var( --spacing-base )*6)}.t30usboNSyqfQWIwHvT3{margin-bottom:calc(var( --spacing-base )*6)}.Nm_TyFkYCMhOoghoToKJ{margin-right:calc(var( --spacing-base )*6)}.C4qJKoBXpgKtpmrqtEKB{margin:calc(var( --spacing-base )*7)}.S93Srbu6NQ_PBr7DmTiD{margin-left:calc(var( --spacing-base )*7);margin-right:calc(var( --spacing-base )*7)}.fJj8k6gGJDks3crUZxOS{margin-bottom:calc(var( --spacing-base )*7)}.cW6D6djs7Ppm7fD7TeoV,.fJj8k6gGJDks3crUZxOS{margin-top:calc(var( --spacing-base )*7)}.DuCnqNfcxcP3Z__Yo5Ro{margin-left:calc(var( --spacing-base )*7)}.im8407m2fw5vOg7O2zsw{margin-bottom:calc(var( --spacing-base )*7)}.G0fbeBgvz2sh3uTP9gNl{margin-right:calc(var( --spacing-base )*7)}.kvW3sBCxRxUqz1jrVMJl{margin:calc(var( --spacing-base )*8)}.tOjEqjLONQdkiYx_XRnw{margin-left:calc(var( --spacing-base )*8);margin-right:calc(var( --spacing-base )*8)}.op5hFSx318zgxsoZZNLN{margin-bottom:calc(var( --spacing-base )*8)}.c9WfNHP6TFKWIfLxv52J,.op5hFSx318zgxsoZZNLN{margin-top:calc(var( --spacing-base )*8)}.sBA75QqcqRwwYSHJh2wc{margin-left:calc(var( --spacing-base )*8)}.GpL6idrXmSOM6jB8Ohsf{margin-bottom:calc(var( --spacing-base )*8)}.HbtWJoQwpgGycz8dGzeT{margin-right:calc(var( --spacing-base )*8)}.uxX3khU88VQ_Ah49Ejsa{padding:calc(var( --spacing-base )*0)}.KX0FhpBKwKzs9fOUdbNz{padding-left:calc(var( --spacing-base )*0);padding-right:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz{padding-bottom:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz,.emxLHRjQuJsImnPbQIzE{padding-top:calc(var( --spacing-base )*0)}.kJ8WzlpTVgdViXt8ukP9{padding-left:calc(var( --spacing-base )*0)}.tg_UIUI11VBzrTAn2AzJ{padding-bottom:calc(var( --spacing-base )*0)}.uczvl8kaz84oPQJ2DB2R{padding-right:calc(var( --spacing-base )*0)}.o7UHPcdVK3lt7q3lqV4o{padding:calc(var( --spacing-base )*1)}.IDqEOxvDoYrFYxELPmtX{padding-left:calc(var( --spacing-base )*1);padding-right:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2{padding-bottom:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2,.npy3hw4A5QSkDicb2CJJ{padding-top:calc(var( --spacing-base )*1)}.LgbptTApNY5NwLQvEFAt{padding-left:calc(var( --spacing-base )*1)}.WZQy2SZuZso59bUsXXyl{padding-bottom:calc(var( --spacing-base )*1)}.o331apInxNunbYB3SfPE{padding-right:calc(var( --spacing-base )*1)}.fMPIyD9Vqki1Lrc_yJnG{padding:calc(var( --spacing-base )*2)}.i2pMcTcdrr10IQoiSm_L{padding-left:calc(var( --spacing-base )*2);padding-right:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH{padding-bottom:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH,.o9bGieUKcYc8o0Ij9oZX{padding-top:calc(var( --spacing-base )*2)}.SwZcFez1RDqWsOFjB5iG{padding-left:calc(var( --spacing-base )*2)}.eHpLc_idmuEqeqCTvqkN{padding-bottom:calc(var( --spacing-base )*2)}.vU39i2B4P1fUTMB2l6Vo{padding-right:calc(var( --spacing-base )*2)}.JHWNzBnE29awhdu5BEh1{padding:calc(var( --spacing-base )*3)}.X72lGbb56L3KFzC2xQ9N{padding-left:calc(var( --spacing-base )*3);padding-right:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e{padding-bottom:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e,.srV0KSDC83a2fiimSMMQ{padding-top:calc(var( --spacing-base )*3)}.lUWfkmbQjCskhcNwkyCm{padding-left:calc(var( --spacing-base )*3)}.Ts0dIlc3aTSL7V4cIHis{padding-bottom:calc(var( --spacing-base )*3)}.CzlqQXXhX6MvorArFZ8B{padding-right:calc(var( --spacing-base )*3)}.TqMPkQtR_DdZuKb5vBoV{padding:calc(var( --spacing-base )*4)}.a7UrjhI69Vetlcj9ZVzz{padding-left:calc(var( --spacing-base )*4);padding-right:calc(var( --spacing-base )*4)}.StEhBzGs2Gi5dDEkjhAv{padding-bottom:calc(var( --spacing-base )*4)}.FGneZfZyvYrt1dG0zcnm,.StEhBzGs2Gi5dDEkjhAv{padding-top:calc(var( --spacing-base )*4)}.APEH216rpdlJWgD2fHc8{padding-left:calc(var( --spacing-base )*4)}.oGwXC3ohCic9XnAj6x69{padding-bottom:calc(var( --spacing-base )*4)}.U6gnT9y42ViPNOcNzBwb{padding-right:calc(var( --spacing-base )*4)}.IpdRLBwnHqbqFrixgbYC{padding:calc(var( --spacing-base )*5)}.HgNeXvkBa9o3bQ5fvFZm{padding-left:calc(var( --spacing-base )*5);padding-right:calc(var( --spacing-base )*5)}.tJtFZM3XfPG9v9TSDfN1{padding-bottom:calc(var( --spacing-base )*5)}.PdifHW45QeXYfK568uD8,.tJtFZM3XfPG9v9TSDfN1{padding-top:calc(var( --spacing-base )*5)}.mbLkWTTZ0Za_BBbFZ5b2{padding-left:calc(var( --spacing-base )*5)}.vVWpZpLlWrkTt0hMk8XU{padding-bottom:calc(var( --spacing-base )*5)}.RxfaJj5a1Nt6IavEo5Zl{padding-right:calc(var( --spacing-base )*5)}.SppJULDGdnOGcjZNCYBy{padding:calc(var( --spacing-base )*6)}.palY2nLwdoyooPUm9Hhk{padding-left:calc(var( --spacing-base )*6);padding-right:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_{padding-bottom:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_,.YEEJ9b90ueQaPfiU8aeN{padding-top:calc(var( --spacing-base )*6)}.QE0ssnsKvWJMqlhPbY5u{padding-left:calc(var( --spacing-base )*6)}.n8yA3jHlMRyLd5UIfoND{padding-bottom:calc(var( --spacing-base )*6)}.tXHmxYnHzbwtfxEaG51n{padding-right:calc(var( --spacing-base )*6)}.kBTsPKkO_3g_tLkj77Um{padding:calc(var( --spacing-base )*7)}.RyhrFx6Y1FGDrGAAyaxm{padding-left:calc(var( --spacing-base )*7);padding-right:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO{padding-bottom:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO,.vQVSq6SvWKbOMu6r4H6b{padding-top:calc(var( --spacing-base )*7)}.oBy5__aEADMsH46mrgFX{padding-left:calc(var( --spacing-base )*7)}.KVEXoJqf1s92j0JMdNmN{padding-bottom:calc(var( --spacing-base )*7)}.ZMXGNrNaKW3k_3TLz0Fq{padding-right:calc(var( --spacing-base )*7)}.tuiR9PhkHXhGyEgzRZRI{padding:calc(var( --spacing-base )*8)}.U7454qyWkQNa2iaSJziu{padding-left:calc(var( --spacing-base )*8);padding-right:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8{padding-bottom:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8,.X1rm9DQ1zLGLfogja5Gn{padding-top:calc(var( --spacing-base )*8)}.JS7G6kAuqJo5GIuF8S5t{padding-left:calc(var( --spacing-base )*8)}.Y8F9ga1TDCMbM1lj4gUz{padding-bottom:calc(var( --spacing-base )*8)}.AJuyNGrI63BOWql719H8{padding-right:calc(var( --spacing-base )*8)}.zI5tJ_qhWE6Oe6Lk75GY{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;border-radius:var(--jp-border-radius);font-weight:600;justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo{height:calc(var(--spacing-base)*5);padding:var(--spacing-base);width:calc(var(--spacing-base)*5)}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo>svg:first-child{margin:0;padding:0}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo.Na39I683LAaSA99REg14{height:calc(var(--spacing-base)*4);min-width:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*4)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body);height:auto;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK{padding:var(--spacing-base) calc(var(--spacing-base)*2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body-extra-small);height:auto;line-height:20px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK>svg:first-child{margin-left:calc(var(--spacing-base)/2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo)>.components-spinner{height:20px}.zI5tJ_qhWE6Oe6Lk75GY.lZAo6_oGfclXOO9CC6Rd{font-weight:400}.zI5tJ_qhWE6Oe6Lk75GY.xJDOiJxTt0R_wSl8Ipz_{min-width:100%}.zI5tJ_qhWE6Oe6Lk75GY.is-primary:disabled,.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:disabled{background:var(--jp-gray);color:var(--jp-gray-20)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary{background:var(--jp-white);box-shadow:inset 0 0 0 1.51px var(--jp-black)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:active:not(:disabled),.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:hover:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-link.Na39I683LAaSA99REg14,.zI5tJ_qhWE6Oe6Lk75GY.is-link.ipS7tKy9GntCS4R3vekF{padding:0}.zI5tJ_qhWE6Oe6Lk75GY.is-link:hover:not(:disabled){text-decoration-thickness:3px}.zI5tJ_qhWE6Oe6Lk75GY.is-link:focus:not(:disabled){text-decoration-line:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:not(:disabled){background:var(--jp-red-50);box-shadow:inset 0 0 0 1px var(--jp-red-50);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:hover:not(:disabled){background:var(--jp-red-60);box-shadow:inset 0 0 0 1px var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:focus:not(:disabled){background:var(--jp-red-70);box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:active:not(:disabled){background:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:not(:disabled){background:var(--jp-white);box-shadow:inset 0 0 0 1.5px var(--jp-red-50);color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:hover:not(:disabled){background:var(--jp-red-0);box-shadow:inset 0 0 0 1.5px var(--jp-red-60);color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:active:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:not(:disabled){color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:hover:not(:disabled){box-shadow:none;color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6{position:relative}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6.has-icon{justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>:not(.components-spinner){visibility:hidden}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>.components-spinner{margin:0;position:absolute}.CDuBjJp_8jxzx5j6Nept{margin-right:calc(var(--spacing-base)/2)}.kdsaL7c4bpTwf_A4fIUT{padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6);text-align:center}.b0eN3as5AgxQW7EAkarg{margin-bottom:0}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid #0000;border-radius:50%;box-sizing:border-box;margin:auto}.jp-components-spinner__outer{border-top-color:#fff}.jp-components-spinner__inner{border-left-color:#fff;border-top-color:#fff;height:100%;opacity:.4;width:100%}.JiJhrZaThvWCpM2AfGen{border-radius:32px;flex-shrink:0;font-size:12px;font-style:normal;font-weight:600;line-height:16px;padding:calc(var(--spacing-base)/2);position:relative;text-align:center;width:60px}._7SGksgOpcPbHfPPpQTV{background:var(--jp-red-5);color:var(--jp-red-60)}.pGNquShR54adQ61sx3lP{background:var(--jp-yellow-5);color:var(--jp-yellow-60)}.IM5kkexAfwGLM6zz0Exd{background:var(--jp-gray-0);color:var(--jp-gray-50)}.NHzH3tt6CypjZ92CvK9x{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;padding:calc(var(--spacing-base)*2)}.NHzH3tt6CypjZ92CvK9x:first-of-type{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius)}.NHzH3tt6CypjZ92CvK9x:last-of-type{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius)}.NHzH3tt6CypjZ92CvK9x+.NHzH3tt6CypjZ92CvK9x{border-top:0}.D9zvYDUrOP_zwSm0yJMs{margin-left:calc(var(--spacing-base)*2);min-width:24px}._XISfmbjoVlqhB61hHYn{width:100%}.AQDPBnMZFu7BOBuo8mYW{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.cZ9s5eCAZe3R82Y6Ru3z{color:var(--jp-gray-80);font-size:14px;line-height:21px}.AKnbWQiViZ2O_dwCV8Fw,.W6alQ2_S5Rh06djX9m27{align-self:center;margin-left:var(--spacing-base);margin-right:calc(var(--spacing-base)*2)}.uUEJGMrSV3XoBwX5xEwA{display:flex;justify-content:space-between}.sQkG5Cu80gPaeFj3L_wa{margin-bottom:calc(var(--spacing-base)*5)}.oIl6GCMeUnzE0inXbuj9{display:flex;justify-content:space-between}.RP2MVoGqaCFXPKZhhxQ1{margin-bottom:calc(var(--spacing-base)*5)}.YpEs8b7KE7fzVuXUbOEb{display:flex;justify-content:space-between}.EqpwvErHtRi_WQkJKgi1{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;margin-bottom:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2)}.EicvN1QaJu5OJLzdUN5A{margin-left:calc(var(--spacing-base)*2);min-width:24px}.b7ynAmUwGlxK_vxyIN0y{width:100%}.uSV9HYRxjL4S6zIZDlqP{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.XpW8Mvw_XFEbqxUdw155{color:var(--jp-gray-80);font-size:14px;line-height:21px}.Fkj60BmQ5sUo9zHcJwVv{align-self:center;margin-left:var(--spacing-base);margin-right:calc(var(--spacing-base)*2)}.XLzPr74ad3osCq9kxy2q{display:flex;justify-content:space-between}.jNlU3vgp4xEGwmX5aTyK{background-color:var(--jp-gray-5)}.gE8s4nh3f7iGIBrFeyCT{list-style-type:disc;padding-right:calc(var(--spacing-base)*2.5)}.L9hh_sX51PzO41icwJlh{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:flex;margin-bottom:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2)}.o8E4Bv6U0d7USFxSjRCj{margin-left:calc(var(--spacing-base)*2);min-width:24px}.sT31awD6bHO8KJewvmaO{width:100%}.VVTRIG51r8ORUIBPs5gN{font-size:18px;font-weight:600;line-height:24px;margin-bottom:0}.AiaWRbRLFT9xvP9vn5jA{color:var(--jp-gray-80);font-size:14px;line-height:21px}.MP1wWkqvqfvAc7Izl7x4{align-self:center;margin-left:var(--spacing-base);margin-right:calc(var(--spacing-base)*2)}.i9X_KxEJiGpRT7q_RU6i{display:flex;justify-content:space-between}.WtVEv641JBaLl929sZq2{align-items:flex-start;background-color:#00000040;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding-top:calc(var(--spacing-base)*12 + 2px);position:fixed;right:0;top:0;z-index:1000001}.G0aPt7WmA1rkUE0wcTno{background:var(--jp-white);border:1px solid var(--jp-gray);border-radius:calc(var(--jp-border-radius)*2);box-shadow:0 8px 20px #00000040;padding:calc(var(--spacing-base)*4);position:relative;width:616px}.VkrhWjfEIlIwYEumycbP{background:none;border:none;cursor:pointer;left:calc(var(--spacing-base)*3);padding:0;position:absolute;top:calc(var(--spacing-base)*3)}.yFzeV4cmWRbZKk5tIyEw{display:block}.gridicon{fill:currentColor;display:inline-block}.gridicon.needs-offset g{transform:translate(-1px,1px)}.gridicon.needs-offset-x g{transform:translate(-1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}:root{--font-title-large:36px;--font-title-small:24px;--font-body:16px;--font-label:12px;--jp-black:#000;--jp-black-80:#2c3338;--jp-white:#fff;--jp-white-off:#f9f9f6;--jp-gray:#dcdcde;--jp-gray-0:#f6f7f7;--jp-gray-5:#dcdcde;--jp-gray-10:#c3c4c7;--jp-gray-20:#a7aaad;--jp-gray-30:#8c8f94;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-70:#3c434a;--jp-gray-80:#2c3338;--jp-gray-90:#1d2327;--jp-gray-100:#101517;--jp-gray-off:#e2e2df;--jp-yellow-5:#f5e6b3;--jp-yellow-10:#f2cf75;--jp-yellow-40:#c08c00;--jp-orange-20:#faa754;--jp-blue-5:#ced9f2;--jp-red-0:#f7ebec;--jp-red-50:#d63638;--jp-red-60:#b32d2e;--jp-red-80:#8a2424;--jp-red:#d63639;--jp-pink:#c9356e;--jp-green-0:#f0f2eb;--jp-green-5:#d0e6b8;--jp-green-10:#9dd977;--jp-green-20:#64ca43;--jp-green-30:#2fb41f;--jp-green-40:#069e08;--jp-green-50:#008710;--jp-green-60:#007117;--jp-green-70:#005b18;--jp-green-80:#004515;--jp-green-90:#003010;--jp-green-100:#001c09;--jp-green:#069e08;--jp-green-primary:var(--jp-green-40);--jp-green-secondary:var(--jp-green-30);--jp-border-radius:4px;--jp-border-radius-rna:8px;--jp-menu-border-height:1px;--jp-underline-thickness:2px;--jp-modal-padding-large:32px;--jp-modal-padding:24px;--jp-modal-padding-small:16px;--jp-modal-radius:8px;--jp-button-padding:8px;--jp-button-radius:4px;--jp-gap:16px;--jp-highlight:#3858e9}:where(body){font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}.jp-wrap{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.jp-row{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.jp-row{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.jp-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.sm-col-span-1{grid-column-end:span 1}.sm-col-span-2{grid-column-end:span 2}.sm-col-span-3{grid-column-end:span 3}.sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.md-col-span-1{grid-column-end:span 1}.md-col-span-2{grid-column-end:span 2}.md-col-span-3{grid-column-end:span 3}.md-col-span-4{grid-column-end:span 4}.md-col-span-5{grid-column-end:span 5}.md-col-span-6{grid-column-end:span 6}.md-col-span-7{grid-column-end:span 7}.md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.lg-col-span-1{grid-column-end:span 1}.lg-col-span-2{grid-column-end:span 2}.lg-col-span-3{grid-column-end:span 3}.lg-col-span-4{grid-column-end:span 4}.lg-col-span-5{grid-column-end:span 5}.lg-col-span-6{grid-column-end:span 6}.lg-col-span-7{grid-column-end:span 7}.lg-col-span-8{grid-column-end:span 8}.lg-col-span-9{grid-column-end:span 9}.lg-col-span-10{grid-column-end:span 10}.lg-col-span-11{grid-column-end:span 11}.lg-col-span-12{grid-column-end:span 12}}@media(max-width:960px){.md-col-span-0{display:none}}@media(max-width:600px){.sm-col-span-0{display:none}}.jp-cut{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);margin:32px 0;padding:16px 24px 16px 64px;position:relative;text-decoration:none}.jp-cut,.jp-cut span{display:block}.jp-cut span:last-of-type{font-weight:600}.jp-cut:focus span:last-of-type,.jp-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(-8px)}.jp-cut:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.components-popover:not(.is-without-arrow):before{border-color:var(--jp-gray)}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-left:-62px}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-right:-62px}.icon-tooltip-helper .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.icon-tooltip-helper .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.icon-tooltip-helper.is-wide .components-popover__content{width:440px}.icon-tooltip-wrapper{color:var(--jp-black);display:inline-block;position:relative}.icon-tooltip-wrapper .components-button.is-link:focus:not(:disabled){box-shadow:none}.icon-tooltip-helper{height:18px;pointer-events:none;position:absolute;right:-53px;top:0;width:124px}.icon-tooltip-container{pointer-events:all}.icon-tooltip-container .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;margin:0 10px;max-width:90vw;outline:none;padding:24px;white-space:normal;width:304px}.icon-tooltip-title{font-size:16px;font-weight:600;line-height:19px}.icon-tooltip-title:not(:last-child){margin-bottom:8px}.icon-tooltip-content{font-size:14px;font-weight:400;line-height:24px}.icon-tooltip-content ul{list-style-type:disc;margin:0 1rem 0 0}.icon-tooltip-content ul li:last-child{margin-bottom:0}.terms-of-service{color:var(--jp-black);font-size:var(--font-body)}.terms-of-service .terms-of-service__link{color:var(--jp-green-50);text-decoration:underline;white-space:nowrap}.p4qz2tkq0p9hxucJ6Qk2{--padding:calc(var(--spacing-base)*4);color:var(--jp-black)}.lbNDyXioOwvyvbALtCBm{--gap:calc(var(--spacing-base)*3);padding:var(--padding) 0;position:relative}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm{column-gap:var(--gap);display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--columns),1fr);grid-template-rows:repeat(var(--rows),minmax(min-content,max-content))}.cLaNK_XcbTGlRQ4Tp43Q{margin-top:var(--padding)}.s2Lsn4kbm6BrS3DSndRB .cLaNK_XcbTGlRQ4Tp43Q{display:contents}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>*{background:var(--jp-white);position:relative}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>:after{bottom:0;box-shadow:0 4px 24px #0000000d;content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.cLaNK_XcbTGlRQ4Tp43Q>:first-child{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius);border-width:1px 1px 0}.cLaNK_XcbTGlRQ4Tp43Q>:last-child{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius);border-width:0 1px 1px}.DAkZc1P9A3K12fjEliMg{display:flex;flex-direction:column;justify-content:space-between;padding:var(--padding)}.WUBuYABl8nymjs9NnCEL{align-items:center;display:flex;padding-bottom:calc(var(--spacing-base)*2);position:relative}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)){padding-top:calc(var(--spacing-base)*2)}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{background-color:var(--jp-gray);content:"";height:1px;left:var(--padding);position:absolute;right:var(--padding);top:0;z-index:5}.s2Lsn4kbm6BrS3DSndRB .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{left:unset;right:0;width:calc(100% + var(--gap))}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm>:last-child .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{width:100%}.ANtCFeb41NhA8PA3H7ZN,.WUBuYABl8nymjs9NnCEL:last-of-type{padding-bottom:var(--padding)}.Ql2gy_148yW8Vw5vhaKD{padding-left:var(--padding);padding-right:var(--padding)}.EAQrAnQEW1z1BfdY5gbC{margin:0 var(--spacing-base);fill:var(--jp-gray);flex-shrink:0}.EAQrAnQEW1z1BfdY5gbC.JDSTlLoOC_4aUoH2oNM2{fill:var(--jp-green-40)}.EAQrAnQEW1z1BfdY5gbC.zNdQRJ1w7BvaQOYyqzHK{fill:var(--jp-red-50)}.lr7vbX95SKtoe7DarJcZ{margin-right:auto}.s2Lsn4kbm6BrS3DSndRB .lr7vbX95SKtoe7DarJcZ{margin:0 var(--spacing-base);top:1px}.WUBuYABl8nymjs9NnCEL .KRrGp2xdkeBOxLZeuQ6X{fill:var(--jp-gray-20);flex-shrink:0}.H_ZJiRVJg0LiMXPGOcmt{text-align:center;width:fit-content}.H_ZJiRVJg0LiMXPGOcmt>a{color:#000}.s2Lsn4kbm6BrS3DSndRB .H_ZJiRVJg0LiMXPGOcmt{grid-column:2;overflow:hidden;padding-left:var(--padding);padding-right:var(--padding);white-space:nowrap}.x21z_DixObRDsDaWotP1{align-items:right;display:flex;justify-content:right;margin:0 calc(var(--spacing-base)*4)}.dovianZYLKhnbnh9I06o{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-end}.lljtQMhW7lq5tE5SDJEf{align-items:flex-start;display:flex;flex-basis:0;flex-grow:2}.lljtQMhW7lq5tE5SDJEf .NubApIV1vQCRUNprfm6b{margin-right:auto}.dhFQXpZfMwVI8vuYHnwC{align-items:flex-start;display:inline-flex;flex:0 0 auto;position:relative}.dhFQXpZfMwVI8vuYHnwC:first-child{margin-left:calc(var(--spacing-base)*2)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k{color:var(--jp-gray-20)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.C64ZjjUAqJC1T2Sa7apS{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:calc(var(--spacing-base)*3)}.UpZDGew6Ay1hPoP6eI7b{color:var(--jp-gray-40);font-size:var(--font-body-small);line-height:20px}.UpZDGew6Ay1hPoP6eI7b:after{content:""}.NubApIV1vQCRUNprfm6b{background-color:var(--jp-yellow-10);border-radius:4px;font-size:13px;font-weight:600;margin-right:var(--spacing-base);padding-left:var(--spacing-base);padding-right:var(--spacing-base)}.TDiiPbuW1Z0_05u_pvcK{font-weight:400}.UL3B1tQ854mN7r6taB61{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.IG56Hw7ZR_7rKVsM78qw:focus:not(:disabled){box-shadow:none}.jp-dashboard-footer{align-items:center;color:var(--jp-black);display:flex;flex-wrap:wrap;font-size:var(--font-body-extra-small);line-height:1.333;max-width:1128px;width:100%}.jp-dashboard-footer a{text-decoration:none}.jp-dashboard-footer a:any-link,.jp-dashboard-footer a[role=button]{color:inherit}.jp-dashboard-footer a:hover{text-decoration:underline;text-decoration-thickness:1.5px}.jp-dashboard-footer a:focus{border-radius:2px;box-shadow:none;outline:1.5px solid currentColor;outline-offset:3px}.jp-dashboard-footer.is-sm>ul{gap:.125rem}.jp-dashboard-footer.is-md,.jp-dashboard-footer.is-sm>ul{align-items:flex-start;flex-direction:column}.jp-dashboard-footer>ul{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0;width:100%}.jp-dashboard-footer>ul>li{margin-bottom:0}.jp-dashboard-footer>ul>li>a{align-items:center;display:flex;gap:.25rem;min-height:44px}.jp-dashboard-footer__accessible-external-link{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px}.jp-dashboard-footer__jp-item{font-weight:600;padding-inline-end:1rem}.jp-dashboard-footer.is-sm .jp-dashboard-footer__jp-item{padding-bottom:1rem}.jp-dashboard-footer.is-lg .jp-dashboard-footer__a8c-item{margin-inline-start:auto}.jp-dashboard-footer.is-sm .jp-dashboard-footer__a8c-item{padding-top:1rem}.jp-dashboard-footer__a8c-item>a,.jp-dashboard-footer__jp-item>a{text-decoration:none}@media(max-width:599px){.RuVLl3q4lxTQa3wbhBJB{grid-column-end:span 1}.f9LZTRG4MMK42rS89afW{grid-column-start:1}.bHe_zKxjjpUwHw_MdYE1{grid-column-end:2}.QZbNrOqE2aNSn50xVhpU{grid-column-end:span 2}.ev7W3z7zVYPeHAlYqZjf{grid-column-start:2}.NJWd1m_e7lOiPYru2ZMP{grid-column-end:3}.Xc6nt1Qc1DI0Z2A3gt1r{grid-column-end:span 3}.UIcN_GXiPRoIsin8Kohg{grid-column-start:3}.GRKCyqb5LufCSCgykKFc{grid-column-end:4}.i_qTq8gqhhC3vIUepVRB{grid-column-end:span 4}.G3qaZ3Jpbvam_1XvGxgc{grid-column-start:4}.VRCNYKZtO9zukEwmgP1y{grid-column-end:5}}@media(min-width:600px)and (max-width:959px){.tRm008K_WJL79WoNZTNL{grid-column-end:span 1}.l5T2P_bgKts4tdaRkS1d{grid-column-start:1}.zOCxfLZpF6BlgC7a_Yq1{grid-column-end:2}.F80DdgVn0m5OpvtSQWka{grid-column-end:span 2}.oI1c7JYfiJtMQHbhngtU{grid-column-start:2}.pMQtA_4jh1_1lVknqEP5{grid-column-end:3}.VenqMpdgyKQVUNNQcfqd{grid-column-end:span 3}.seNYL99uoczf9V4MxBxT{grid-column-start:3}.YKfF1HFhI9KygA5l3b2J{grid-column-end:4}.yAi0Cv1xDWkoqsaUhvhR{grid-column-end:span 4}.ubhnyZOnkgxNhh6XtVWv{grid-column-start:4}.RGOPGQbWMJ9Ei5oFxS7X{grid-column-end:5}.Sz1E2aWbX483ijdi6yge{grid-column-end:span 5}.tku6_bRYrX9tMbgYGmIl{grid-column-start:5}.b5JHttOhSEcI1WBlqAjk{grid-column-end:6}.FboSx5MoKTAWbxXyYlCw{grid-column-end:span 6}.Jhs8yEEmodG30edbJvag{grid-column-start:6}.IpzbbKVqEqPcfIGkXkwt{grid-column-end:7}.mhCPwfAZ4Kmm_empzJAq{grid-column-end:span 7}.x034ilrJF7rO9UJB2rI1{grid-column-start:7}.Wt8t2e16viRrOJ1lLA5v{grid-column-end:8}.S6pIrEy9AMLKx9bgh_Ae{grid-column-end:span 8}.kEfI4tGyuWfHTlRnvIab{grid-column-start:8}.PUzX4RRsKq1dnsz3gebS{grid-column-end:9}}@media(min-width:960px){.X_pdcLJikd8LS_YAdJlB{grid-column-end:span 1}.tl936d14Huby4khYp05X{grid-column-start:1}.hnge0LnR69d3NXEtEE1t{grid-column-end:2}.fj0NUMuyZQcPNgKcjp5Z{grid-column-end:span 2}.R2ncBX7a2NigdYCcV1OX{grid-column-start:2}.t8vMSDVYno9k9itRwnXb{grid-column-end:3}.wsDuEN2GqHx6qzo8dUdk{grid-column-end:span 3}.cIEVPUweWtLBy3xaXnMx{grid-column-start:3}.fajUWBwu1m2B479j3jmz{grid-column-end:4}.YR0c7fQTgMkDdWzwSyLp{grid-column-end:span 4}.xlwp8BmplxkKNMI7gamo{grid-column-start:4}._C4O1w9DUqx1m3gPf8aA{grid-column-end:5}.Z54F1hAErckAIrKlxnXW{grid-column-end:span 5}.ezSDWkRHmKSxDJXxuiOH{grid-column-start:5}.T0ChoeAjGJjkkNrYhD4g{grid-column-end:6}.qtMoMPF6yHvGJnWHSsde{grid-column-end:span 6}.gdoywN5VPiWERfIBqkph{grid-column-start:6}.wUev_VH5uf_pwFFlbnAU{grid-column-end:7}.egIPDFJsOpownTClq9XP{grid-column-end:span 7}.yGhp9yoAW7k0kQik9AB7{grid-column-start:7}.SJ43U9mR5wUg5V2qBeQA{grid-column-end:8}.cTuyHfMwSUJxN_HdIEgd{grid-column-end:span 8}.smCr8DaIagcumdvdldiK{grid-column-start:8}.T03NHzQJvzwL6wAfIiTL{grid-column-end:9}.pMvxM3RJGjqyNdf9qg1Y{grid-column-end:span 9}.iIVpNRwEnQ_JI5gpp9EN{grid-column-start:9}.ZbQ4u4vGSX5rJOje4uGL{grid-column-end:10}.gKb5wuIDAlKGbrjK2vxy{grid-column-end:span 10}.Z7pINdImE2WJiYnZBTqm{grid-column-start:10}.ZTxp6qpvwurMdOnLLSz1{grid-column-end:11}.NnQTlbfnxPDR6cQ7rygg{grid-column-end:span 11}.O137wZd6Yl0olSA9PsXR{grid-column-start:11}.zf2OJtQ2MPz6SDoh6CB0{grid-column-end:12}.U3H6UHW6HqRt9hdzVg3O{grid-column-end:span 12}.zynnNeS_ZBTxABcVpUQH{grid-column-start:12}.vI8tltFZtFUNAy9Iag9s{grid-column-end:13}}.SqdhUZkXCRuIpErj1B3z{--max-container-width:1128px;--vertical-gutter:24px;--horizontal-spacing:8px;column-gap:var(--vertical-gutter);display:grid;margin:0 auto;max-width:var(--max-container-width);width:100%}@media(max-width:599px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 16px}}@media(min-width:600px)and (max-width:959px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(8,minmax(0,1fr));padding:0 18px}}@media(min-width:960px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(12,minmax(0,1fr));padding:0 24px}}.SqdhUZkXCRuIpErj1B3z.OZC_9a1LhpWF9dv15Gdh{max-width:none;padding:unset}.sexr0jUxC1jVixdKiDnC{margin-right:-20px}@media(max-width:782px){.sexr0jUxC1jVixdKiDnC{margin-right:-10px}}.sexr0jUxC1jVixdKiDnC.vKQ11sLeAM45M04P1ccj{background-color:var(--jp-white)}.vMa4i_Dza2t5Zi_Bw9Nf{background:var(--jp-white-off);padding-top:1px}.lyrXe0pA852TUmyekDb5{display:flex}.KgEeDTKgTC5ZjzYlbTqN{color:var(--jp-black);font-size:var(--font-body);line-height:1.5;margin-left:calc(var(--spacing-base)*4);padding:var(--spacing-base) 0;text-decoration:none}.KgEeDTKgTC5ZjzYlbTqN:last-child{margin-left:0}.KgEeDTKgTC5ZjzYlbTqN:focus,.KgEeDTKgTC5ZjzYlbTqN:hover{border-bottom-color:var(--jp-green);box-shadow:none;color:var(--jp-green)}.Lv4WoNVkeJntqvUyG4dX{border-bottom:1px solid var(--jp-black)}.vvXnRXxrU1kP1KsdSr4J{margin-top:calc(var(--spacing-base)*3*-1)}.aDCTkUFaJEeZzYYE6qv5{background-color:var(--jp-green);border-radius:32px;color:var(--jp-white);font-size:12px;letter-spacing:-2%;line-height:1;margin-right:var(--spacing-base);padding:calc(var(--spacing-base)/2) var(--spacing-base);position:relative;top:-1px}.uQlXhcfYn9tbnK27_Gct{align-items:center;display:flex}.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:checked,.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:indeterminate{background:var(--jp-green-40);border-color:var(--jp-green-40)}.uQlXhcfYn9tbnK27_Gct input[type=checkbox]:focus{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--jp-green-40)}.PO9zDOaSkcv_RqpfZF_v,.e5YHJiYcvfgdEEJsS_YM{margin-bottom:calc(var(--spacing-base)*7);margin-top:calc(var(--spacing-base)*7)}@media(max-width:599px){.PO9zDOaSkcv_RqpfZF_v{margin-top:0}}svg.V6B8ltQ7TH3UKzUC_qy1{color:var(--jp-black);height:32px;margin:0;width:32px}.C9hcvYAbgHPhN2Tl22xg{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.C9hcvYAbgHPhN2Tl22xg .XkbIpr2gzB4XEhHgzkY4{margin-left:calc(var(--spacing-base)/2)}.BfcZn0_X33Ajdd1Gl18G{display:flex}.BfcZn0_X33Ajdd1Gl18G>.rBmVJIeTNpd0RJWaRGuJ{display:flex;margin-right:calc(var(--spacing-base)/2);fill:var(--jp-gray-20)}.jVq5444f1Xh6nNkz0Qe_{margin-top:calc(var(--spacing-base)*4)}.amF9cOnMiv2nHbkMXQiQ{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between}.FodE_7RbLD8zeBSd6eVR{display:flex;flex-wrap:wrap;margin-right:auto}.FodE_7RbLD8zeBSd6eVR>:first-child{margin-left:calc(var(--spacing-base)*3)}.twyPhW_K164HITnDrwEg{padding:calc(var(--spacing-base)*2);width:250px}.tbcd9xc_TjcFdokOt3F_{font-size:18px}@media(max-width:599px){.pnoqLV3l30xuvj2hLlJc{width:90%}.FodE_7RbLD8zeBSd6eVR{margin-top:calc(var(--spacing-base)*3)}.FodE_7RbLD8zeBSd6eVR>:first-child{margin-bottom:var(--spacing-base);margin-left:0}}.bZ4b33s2MdcOjaDKBbeV{--spacing-base:8px;--wp-admin-border-width-focus:1.5px;align-items:center;display:flex;white-space:nowrap}.UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-gray-50);border-radius:50%;flex-shrink:0;height:.666em;width:.666em}.QuS0vdcr87FsiBvSSrvA{font-weight:600;line-height:1.666;margin-right:calc(var(--spacing-base)/2)}.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ a,.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ span{color:var(--jp-green-50)}.bZ4b33s2MdcOjaDKBbeV.bGx0wbQAwuY7k8P3PHVQ .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-green-50)}.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y a,.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y span{color:var(--jp-gray-50)}.bZ4b33s2MdcOjaDKBbeV.wR8Cz8uHgObTQavolv5y .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-gray-50)}.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww a,.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww span{color:var(--jp-red-50)}.bZ4b33s2MdcOjaDKBbeV.IzbBYGwBKhSYFUQlIMww .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-red-50)}.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 a,.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 span{color:var(--jp-yellow-30)}.bZ4b33s2MdcOjaDKBbeV.Kdvp_HJf89IBrZuCaLm8 .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-yellow-30)}.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a a,.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a span{color:var(--jp-blue-40)}.bZ4b33s2MdcOjaDKBbeV.hVf5vsbBWm8OFye7cy7a .UzkzDaqt2mXprJh2OXRz{background-color:var(--jp-blue-40)}.IunwKwdvL271DxBIniPb[type=checkbox]{display:none}.svA9WxEcOByd5S2fZonA{border:2px solid var(--jp-black);border-radius:100px;box-sizing:border-box;cursor:pointer;display:inline-block;height:24px;outline:0;padding:2px;position:relative;transition:all .4s ease,box-shadow 0s;vertical-align:middle;width:48px}.svA9WxEcOByd5S2fZonA:after{background:var(--jp-black);border-radius:50%;content:"";display:block;height:16px;position:relative;right:0;transition:all .2s ease;width:16px}.IunwKwdvL271DxBIniPb:checked+.svA9WxEcOByd5S2fZonA:after{right:22px}.IunwKwdvL271DxBIniPb:checked:disabled+.svA9WxEcOByd5S2fZonA{background-color:var(--jp-black);border-color:var(--jp-black)}.IunwKwdvL271DxBIniPb:checked:disabled+.svA9WxEcOByd5S2fZonA:after{background-color:var(--jp-white)}.IunwKwdvL271DxBIniPb:checked:not(:disabled)+.svA9WxEcOByd5S2fZonA{background-color:var(--jp-green);border-color:var(--jp-green)}.IunwKwdvL271DxBIniPb:checked:not(:disabled)+.svA9WxEcOByd5S2fZonA:after{background-color:var(--jp-white)}.IunwKwdvL271DxBIniPb:disabled+span.svA9WxEcOByd5S2fZonA{cursor:default;opacity:.25}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n+.svA9WxEcOByd5S2fZonA{border-radius:8px;height:16px;width:24px}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n+.svA9WxEcOByd5S2fZonA:after{height:12px;width:12px}.IunwKwdvL271DxBIniPb.wOd7DeP76v1fczKfah5n:checked+.svA9WxEcOByd5S2fZonA:after{right:8px}.Clxt94RgGnDrhORZZyPr,.K2OG1vK5PSOYDWKtqKKG{margin-bottom:calc(var(--spacing-base)*7);margin-top:calc(var(--spacing-base)*7)}.msOlyh2T7D6uhbM6AROg{align-items:center;background:none;border:2px solid var(--jp-green-40);border-radius:var(--jp-border-radius);color:var(--jp-gray-80);display:flex;gap:calc(var(--spacing-base)*3);justify-content:space-between;padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);position:relative;text-align:right;width:100%}.msOlyh2T7D6uhbM6AROg a,.msOlyh2T7D6uhbM6AROg button{all:unset;color:var(--jp-gray-80);cursor:pointer}.msOlyh2T7D6uhbM6AROg a:after,.msOlyh2T7D6uhbM6AROg button:after{content:"";height:100%;position:absolute;right:0;top:0;width:100%}.msOlyh2T7D6uhbM6AROg:focus-within{border-color:var(--jp-black)}.msOlyh2T7D6uhbM6AROg:focus-within .cPN7USVqSBpxUswfDtUZ,.msOlyh2T7D6uhbM6AROg:hover .cPN7USVqSBpxUswfDtUZ{transform:translateX(calc((var(--spacing-base)*2)*-1))}.msOlyh2T7D6uhbM6AROg:focus-within .EmnJAyEzzn1QpA8HtypY,.msOlyh2T7D6uhbM6AROg:hover .EmnJAyEzzn1QpA8HtypY{text-decoration:underline;text-decoration-thickness:2px}.EmnJAyEzzn1QpA8HtypY,.msOlyh2T7D6uhbM6AROg .EmnJAyEzzn1QpA8HtypY{font-weight:700}.cPN7USVqSBpxUswfDtUZ{fill:var(--jp-green-40);pointer-events:none;transition:transform .1s ease-out}.vV7YZikAz0oHYsuvtxMq{display:inline;margin:0 calc(var(--spacing-base)/3) 0 0;vertical-align:middle}.vV7YZikAz0oHYsuvtxMq svg{position:relative;z-index:10}.T1YaMupeZmBIpXZHY9EZ{display:inline}.rigH8UdiDrmmSLQMUurD{background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-border-radius);color:var(--jp-black);display:block;font-size:var(--font-body);letter-spacing:-.02em;line-height:1.5;padding:var(--spacing-base) calc(var(--spacing-base)*1.5);transition:box-shadow .1s ease-out;width:100%}.rigH8UdiDrmmSLQMUurD::placeholder{color:var(--jp-gray-20)}.rigH8UdiDrmmSLQMUurD:focus{box-shadow:0 0 0 2px var(--jp-green-5)}.rigH8UdiDrmmSLQMUurD:focus,.rigH8UdiDrmmSLQMUurD:hover:not(:disabled){border:1px solid var(--jp-green)}.rigH8UdiDrmmSLQMUurD:disabled{background-color:var(--jp-gray-0);color:var(--jp-gray-30)}.V8FDM08CpcwQs4UwN2nI{color:var(--jp-black);display:block;font-size:var(--font-title-small);font-weight:600;margin-bottom:var(--spacing-base)}.L1LjeCYPldBcTLILS13l{max-width:calc(744px + var(--spacing-base)*6);width:100%}.JWWznnb8sAKHIOhE59_z{display:flex}.JWWznnb8sAKHIOhE59_z:not(:first-child){margin-top:calc(var(--spacing-base)*7)}.kV5wl2UResIqqBdSTuQr{margin-left:calc(var(--spacing-base)*2);padding-top:calc(var(--spacing-base)/2)}@media(min-width:600px){.kV5wl2UResIqqBdSTuQr{margin-left:calc(var(--spacing-base)*5)}}.oePuSIKcH_JzEhDJcHh8{width:100%}.mxYw7vghJF8H8C0FjvPz{align-items:center;display:flex}.lyiOCAyjT_eQyDg8Ier_ .oePuSIKcH_JzEhDJcHh8{opacity:.5}.IclfL4iNXTZfBAbHZdog>:last-child{margin-top:calc(var(--spacing-base)*2)}@media(min-width:600px){.IclfL4iNXTZfBAbHZdog{display:flex;justify-content:space-between}}.bOadM4auwszaOl0el95T{display:flex;flex-wrap:wrap;margin-top:calc(var(--spacing-base)*2)}.G7vkgqk8AEd6pRbNUyE4{color:var(--jp-green-50);margin-left:calc(var(--spacing-base)/2)}.qnlbRElIsj4nB45F5s3a{color:var(--jp-gray-50)}.TvvdPGzRa_ubn3BnQOnQ{color:var(--jp-red-50)}.ciEDIqQimh9OqgCN4t3c{display:flex;flex-wrap:wrap}.qQ3tqN6Pi9DJ2xYLvfvA{color:var(--jp-gray-50)}.xmutRBXpbSs8i1QMo5FT{margin-left:calc(var(--spacing-base)/2)}.kQ5SrYe6QmF63mEYQ26R,.xmutRBXpbSs8i1QMo5FT{color:var(--jp-green-50)}.yAFMUkq1ot9DZF05RUwG{margin-top:calc(var(--spacing-base)*3)}@media(min-width:600px){.yAFMUkq1ot9DZF05RUwG{padding-right:calc(var(--spacing-base)*11)}}.EbfrbByI7NQ2_MD_gDXp{align-items:center;border:1px solid var(--jp-gray-30);border-radius:4px;color:var(--jp-gray-30);display:flex;font-size:12px;height:21px;margin-bottom:calc(var(--spacing-base)*2);margin-right:var(--spacing-base);padding:calc(var(--spacing-base)/2)}.hCwaBLH_6dELyWWwB8S1{padding:calc(var(--spacing-base)*3);width:304px}.V3U9oKSdRmKjOQ523C86{display:flex;justify-content:space-between}.OSrT4pA4vIGzg9EE6rcv{margin:calc(var(--spacing-base)*-1) calc(var(--spacing-base)*-3)}.OSrT4pA4vIGzg9EE6rcv:focus,.OSrT4pA4vIGzg9EE6rcv:focus:not(:disabled){box-shadow:none}.rbL50q3wwzE6X7VBHcmW{display:flex;justify-content:flex-end}.gF7LiE_q_elhMrhdypAl{color:var(--jp-gray-50)}.gF7LiE_q_elhMrhdypAl:before{background:var(--jp-gray-50);border-radius:50%;content:"";display:inline-block;height:8px;margin-left:var(--spacing-base);width:8px}.gF7LiE_q_elhMrhdypAl.fbJbqf_YrPpMG4JKF79U{color:var(--jp-green-40)}.gF7LiE_q_elhMrhdypAl.fbJbqf_YrPpMG4JKF79U:before{background:var(--jp-green-40)}.g593fzjQCE_4rNiiwLdg{line-height:1;margin-bottom:calc(var(--spacing-base)*1.5)}.CIp_BwDbLdjYPSVrreqg{align-items:flex-start;justify-content:space-between}.CIp_BwDbLdjYPSVrreqg,.m2epTt5F7wBQNcMdguwQ{display:flex;margin-top:calc(var(--spacing-base)*2)}.m2epTt5F7wBQNcMdguwQ{justify-content:right}.HrEvG7sxsWbTLD0sk477{border-bottom:2px solid var(--jp-gray-5);margin-top:calc(var(--spacing-base)*7)}.VHYulMcpzbr10HWR0iSE{align-items:flex-start;border:1px solid var(--jp-black);border-color:var(--jp-gray-5);border-radius:4px;border-right-width:6px;display:flex;font-size:var(--font-body);padding:24px 18px 27px 31px}.FGpSkMCiIHQjszcV0dbn{margin-left:20px}.FGpSkMCiIHQjszcV0dbn,.KoWZcCwhW13xvkEb0QON{height:calc(var(--spacing-base)*3);width:calc(var(--spacing-base)*3)}.KoWZcCwhW13xvkEb0QON{background-color:#0000;border:none;cursor:pointer;outline:none}@media screen and (max-width:600px){.VHYulMcpzbr10HWR0iSE{box-shadow:0 4px 8px #00000008,0 1px 2px #0000000f;padding-top:68px;position:relative}.FGpSkMCiIHQjszcV0dbn{position:absolute;right:24px;top:24px}.KoWZcCwhW13xvkEb0QON{left:24px;position:absolute;top:24px}}.smrfczkC53EaFM8OJUXs{flex-grow:1}.IKYRWoPwt9xOVEx1wzNS{font-weight:600;margin-bottom:8px}.qM0qY6mPYp1MPN54A3Kg{align-items:center;display:flex;margin-top:20px}.qM0qY6mPYp1MPN54A3Kg a,.qM0qY6mPYp1MPN54A3Kg a:active,.qM0qY6mPYp1MPN54A3Kg a:focus,.qM0qY6mPYp1MPN54A3Kg a:hover{color:var(--jp-black)}.qM0qY6mPYp1MPN54A3Kg>*{margin-left:24px}.A5YkDkkXuiYgavrY6Nux{border-right-color:var(--jp-red)}.A5YkDkkXuiYgavrY6Nux .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-red)}.cT5rwuPMZzWvi5o6shMl{border-right-color:var(--jp-yellow-20)}.cT5rwuPMZzWvi5o6shMl .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-yellow-20)}.yo0O3uvNomPsYUXFCpAS{border-right-color:var(--black)}.yo0O3uvNomPsYUXFCpAS .y_IPyP1wIAOhyNaqvXJq{fill:var(--black)}.oZdDFf1jBLkzn5ICCC6x{border-right-color:var(--jp-green)}.oZdDFf1jBLkzn5ICCC6x .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-green)}.EU0Rvu4PDqVtnCAmbgHg{height:56px;margin-bottom:calc(var(--spacing-base)*8);width:48px}.EU0Rvu4PDqVtnCAmbgHg>svg{position:relative;right:-40px;top:-36px}.MeZ8EJKfFWG5h1abL4gD{padding:calc(var(--spacing-base)*7) 0}.vzMlFr1AXWqefpRrb976{align-items:center;display:flex;justify-content:space-between;margin-bottom:calc(var(--spacing-base)*3)}.gYSOMa4xxLXmsNzvFPkW{background-color:var(--jp-gray-5);border-radius:calc(var(--spacing-base)*3);width:100%}.hNJWdt5qmZkWYAH_vjIp{background-color:var(--jp-green-40);border-radius:calc(var(--spacing-base)*3);height:9px;transition:width .2s}.DHMUfGyHbl5BgD5vjxVz{color:var(--jp-gray-90);font-weight:600;line-height:24px;margin-right:auto;padding-right:var(--spacing-base)}.XqQBRzrxyMhhZvPXIHgk .components-button{box-shadow:inset 0 0 0 1.5px var(--jp-gray);position:relative}.XqQBRzrxyMhhZvPXIHgk .components-button:first-child{border-radius:0 var(--jp-border-radius) var(--jp-border-radius) 0}.XqQBRzrxyMhhZvPXIHgk .components-button:last-child{border-radius:var(--jp-border-radius) 0 0 var(--jp-border-radius)}.XqQBRzrxyMhhZvPXIHgk .components-button:hover{z-index:1}.XqQBRzrxyMhhZvPXIHgk .components-button+.components-button{margin-right:-1.5px}.ttGgvvtxu52J_2mCCopL{padding:calc(var(--spacing-base)*7) 0}.HKtrpPFSTSG9Xek34vBa,.UZsYf4noF2SMuyOqGWPA{align-items:center;display:flex}.HKtrpPFSTSG9Xek34vBa{height:100%}.HKtrpPFSTSG9Xek34vBa img{object-fit:cover;width:100%}.dgFk23NY71PPMar8DEME,.t_Av4raklvnsBRBA4hms{margin-top:calc(var(--spacing-base)*3 + 1px)}.t_Av4raklvnsBRBA4hms{display:flex;justify-content:flex-end}.B5k6PdQs1UVDzb2J98wR>:first-child{flex:1}@media(min-width:960px){.B5k6PdQs1UVDzb2J98wR{align-items:flex-start;display:flex}}._h9h7RagEFrCDu7S2Vfi{display:flex;flex-direction:column;gap:var(--spacing-base)}._h9h7RagEFrCDu7S2Vfi>:last-child{margin-top:calc(var(--spacing-base)*2)}.sSzimfzP9ZeilBh2H0Um{align-items:center;color:var(--jp-black);display:flex;margin-bottom:0}.X7CVf27QOnW2yuV332eo{margin-left:var(--spacing-base);margin-right:-4px}.SaA9v6DNQOHPx1EK90y9{align-items:flex-end;flex-direction:column}.SaA9v6DNQOHPx1EK90y9,.kadiUBzNiR_qFA1y7Eig{display:flex;gap:calc(var(--spacing-base)*2)}.cuoSlhSNrqf1dozY22Xb{fill:#000}.JLquNpQVlysAamuh5lJO,.lAIiifeLMmZAPlQ9n9ZR{fill:var(--jp-green-primary)}.cbOwD8Y4tFjwimmtchQI{fill:#757575}.cbOwD8Y4tFjwimmtchQI.aLWBKY0yRghEk7tNCgK3{fill:var(--color-bluesky)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw{fill:var(--color-facebook)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.af4Y_zItXvLAOEoSDPSv{fill:var(--color-twitter)}.cbOwD8Y4tFjwimmtchQI.f68aqF3XSD1OBvXR1get{fill:var(--color-linkedin)}.cbOwD8Y4tFjwimmtchQI.xFI0dt3UiXRlRQdqPWkx{fill:var(--color-tumblr)}.cbOwD8Y4tFjwimmtchQI.q7JEoyymveP6kF747M43{fill:var(--color-gplus)}.cbOwD8Y4tFjwimmtchQI.DKOBOTVmTLbh26gUH_73{fill:var(--color-mastodon)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw{fill:var(--color-nextdoor)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.cL3m0xBYTYhIKI7lCqDB{fill:var(--color-instagram)}.cbOwD8Y4tFjwimmtchQI.fftumuc_lJ6v0tq4UMVR{fill:var(--color-whatsapp)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI{fill:var(--color-threads)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI.social-logo{border-radius:40%}._fUXxnSp5pagKBp9gSN7 *{box-sizing:border-box}.GqFcAwJvIrg1v7f6QUfw{display:flex;flex-direction:column;min-height:230px;padding:calc(var(--spacing-base)*3);width:304px}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S{display:flex;justify-content:space-between;margin-bottom:calc(var(--spacing-base)*2)}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .KnqJLKwSceJTwFJrPGHq{max-width:226px}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .PJU0_yA9jNf7ao0jhHut{background-color:var(--jp-white);color:var(--jp-gray-90);flex-shrink:0;height:calc(var(--spacing-base)*3);min-width:unset;width:calc(var(--spacing-base)*3)}.GqFcAwJvIrg1v7f6QUfw .OENx8kmm62tkWGukzP2S .PJU0_yA9jNf7ao0jhHut:hover:not(:focus){box-shadow:none}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY{align-items:flex-end;display:flex;flex-grow:1;height:calc(var(--spacing-base)*6);justify-content:flex-end;margin-top:calc(var(--spacing-base)*2)}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY .Q7fUcDUGhteXEr18rZPC{color:var(--jp-gray-60);flex-grow:1;margin-bottom:var(--spacing-base)}.GqFcAwJvIrg1v7f6QUfw .rrORM3zqHfGvqiPduEXY .S5LAeskUiEQ0JlPhr0Ze{flex-shrink:0}.OtDl6kocO_m2s9sRHaqX{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;max-height:600px;width:100%}.BjwJh1S1YVPI7AjmTx6a+.BjwJh1S1YVPI7AjmTx6a{margin-top:calc(var(--spacing-base)*5)}.YWfK8VTp2wnByBauYPKg{background-color:var(--jp-gray-0);overflow-x:scroll;padding:calc(var(--spacing-base)*3)}.pkw2LnOTd8VvQ3oT8sXQ{justify-content:flex-end;margin-top:calc(var(--spacing-base)*3);padding-top:calc(var(--spacing-base)*3)}.ap6lG79CncSqdigJS_WA{margin-top:calc(var(--spacing-base)*4)}.uym7dGHhp6ifjF57yOAO{align-items:flex-end;display:flex;margin-bottom:calc(var(--spacing-base)*2.25)}.e_2eFTR8RyHwmfeqJL4F{flex:1;margin-bottom:0}.IKQVU01PrDMMV5UFLOKv{display:flex;gap:calc(var(--spacing-base)*2)}.pkw2LnOTd8VvQ3oT8sXQ{border-top:1px solid var(--jp-gray);display:flex;justify-content:right;padding-top:calc(var(--spacing-base)*4);width:100%}.pkw2LnOTd8VvQ3oT8sXQ>:last-child{margin-right:calc(var(--spacing-base)*2)}.qazuloIt0teplSEwxRN0{background-color:#fff;border:1px solid var(--jp-gray);border-bottom:none;color:var(--jp-gray-50);display:grid;grid-template-columns:repeat(9,1fr);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);width:100%}.qazuloIt0teplSEwxRN0>span:first-child{grid-column:1/7}.qazuloIt0teplSEwxRN0>span:not(:first-child){text-align:center}.iJ_biSBRDribuNKX0Zuw{margin:calc(var(--spacing-base)*4) calc(var(--spacing-base)*8);text-align:center}@media(max-width:599px){.uym7dGHhp6ifjF57yOAO{margin-bottom:calc(var(--spacing-base)*3)}.e_2eFTR8RyHwmfeqJL4F{display:none}.pkw2LnOTd8VvQ3oT8sXQ{justify-content:center}.pkw2LnOTd8VvQ3oT8sXQ>*{width:50%}}.v640YfEL85A9rCvyHSzW{align-items:center;display:flex;gap:4px;justify-content:center;margin-bottom:calc(var(--spacing-base)*2);margin-top:calc(var(--spacing-base)*4)}.v640YfEL85A9rCvyHSzW button{font-size:var(--font-body);height:auto;line-height:32px;min-width:32px;padding:0 var(--spacing-base);width:auto}.v640YfEL85A9rCvyHSzW button.gfxpe4zp6ShFsIsce8Ii,.v640YfEL85A9rCvyHSzW button.gfxpe4zp6ShFsIsce8Ii:hover:not(:disabled){background:none;color:var(--jp-black)}.x8UuVEhWucPfdq0hEJg6{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius)}.x8UuVEhWucPfdq0hEJg6>:not(:last-child){border-bottom:1px solid var(--jp-gray)}.eb6Ovfvm1yONz4mdOwbH{background-color:var(--jp-white)}.jF9LXpXR3TxZVDw7TVXT{align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:repeat(9,1fr);margin:0;outline-color:var(--jp-black);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);text-align:start;width:100%}.jF9LXpXR3TxZVDw7TVXT>:first-of-type{grid-column:1/8}.jF9LXpXR3TxZVDw7TVXT>:last-of-type{grid-column:9}.jF9LXpXR3TxZVDw7TVXT:hover{background:var(--jp-gray-0)}.lNQgAfpwdAUSOLZd8dlD{align-items:center;display:flex;font-size:var(--font-body-small);font-weight:400}.WRQwDYPdffWznX158azR{margin-left:var(--spacing-base)}.dJx9pvlYjDnKn11n5wo8{font-weight:600;margin-bottom:var(--spacing-base);margin-right:calc(var(--spacing-base)*4)}.EKcbLuSblRc7UpzgsFXw{align-items:center}.ILMBWlMLcXc0n97IisrG{overflow:hidden;transform-origin:top center}.T8XIzCNJBQy1UETN5gjU{max-height:0;padding:0;transform:scaleY(0);transition:all .1s}.kWoHGiaZSbq9XJVyUOMC{max-height:1000px;padding:calc(var(--spacing-base)*4) calc(var(--spacing-base)*7);transform:scaleY(1);transition:max-height .3s,transform .2s}.HQgjxePFDRJHamBAGcVU{background-color:var(--jp-white);border-radius:var(--jp-border-radius);box-shadow:0 0 40px #00000014;margin:0;padding:var(--spacing-base) 0}.KtdsNIMumOoHNWMLmuAJ{align-items:center;display:flex;justify-content:space-between;margin:0;padding:calc(var(--spacing-base)*2);text-align:right}.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2{cursor:pointer;outline-color:var(--jp-black)}.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2:focus:not(.owofT85W_XvVdb5vr1GN),.KtdsNIMumOoHNWMLmuAJ.ewyV4ZGn34WDNXmK3ej2:hover:not(.owofT85W_XvVdb5vr1GN){background-color:var(--jp-gray-0)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN{background-color:var(--jp-black)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .NESnw2xCLrBpP6WlYZL4{color:var(--jp-white)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .aohnd_y_1lrMuww8NH63{fill:var(--jp-white)}.KtdsNIMumOoHNWMLmuAJ.owofT85W_XvVdb5vr1GN .Rnas_2_2_eLZSYfZ347E{background-color:var(--jp-red);border:1px solid var(--jp-red);color:var(--jp-white)}.NESnw2xCLrBpP6WlYZL4{align-items:center;display:flex;overflow-x:hidden;padding-left:var(--spacing-base)}.m4_14yNRByDyO9yf9pGg{display:block;overflow-x:hidden;text-overflow:ellipsis}.aohnd_y_1lrMuww8NH63{margin-left:calc(var(--spacing-base)*2)}.Rnas_2_2_eLZSYfZ347E{align-items:center;border:1px solid var(--jp-red-60);border-radius:50%;box-sizing:border-box;color:var(--jp-red-60);display:flex;justify-content:center;min-width:30px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.X8NRHUTBa_4wDvoHN9TT{fill:var(--jp-green-50)}.CsuOteurQlJm4IjXqyZ0{fill:var(--jp-gray-20)}.fvbewglUxEvV1o04yzzp{--icon-size:28px;--item-spacing:calc(var( --spacing-base )*2);--left-spacing:calc(var( --icon-size ) + var( --item-spacing ));list-style:none}.DINy59MKjwiQanaoDTiV{padding:calc(var(--spacing-base)*2)}.XoacHJljw8zRW_fkBSyg{padding:0}.mXM4WZRePVTa07dhQ6MD{margin-right:var(--left-spacing)}.sI3V8khLdCqxkhJQ_XnI{display:flex;justify-content:flex-start;padding:calc(var(--spacing-base)*2)}.hgdxMuIvZwTZ0sfXaols{padding:calc(var(--spacing-base)*2);width:250px}.UErHS2HAh1gszGfYuVIf{align-items:center;background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-border-radius);display:flex;justify-content:space-between;padding:calc(var(--spacing-base)*2);width:100%}.lEhH1hvCcxLVFMHI8Gwv{display:flex;justify-content:flex-start}.c57Vj4QhAHwcK_HZMxtN{margin-left:var(--spacing-base)}.LumryWNddoF092fZgN2O{font-size:var(--font-body);line-height:1.5}.NFMwU3H5k2qArZe2TTp9{background-color:var(--jp-gray-10);font-weight:600;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.G5W9M8qfo3sGl2OIbwg9{background-color:var(--jp-gray-0);display:flex;flex-direction:row;font-family:Courier\ 10 Pitch,Courier,monospace;overflow-x:scroll;white-space:pre}.Bx4RDCUR316fm_jgGS8N{background-color:var(--jp-gray-10);color:var(--jp-gray-50);display:flex;flex-direction:column;padding:0 var(--spacing-base);text-align:left}.GhN0JvAyRQI3SnVWp2Ot{display:flex;flex-direction:column;flex-grow:1;overflow-x:visible}.GhN0JvAyRQI3SnVWp2Ot del,.GhN0JvAyRQI3SnVWp2Ot div,.GhN0JvAyRQI3SnVWp2Ot ins{padding:0 var(--spacing-base);text-decoration:none}.GhN0JvAyRQI3SnVWp2Ot del{background-color:var(--jp-red-0);color:var(--jp-red-60)}.GhN0JvAyRQI3SnVWp2Ot ins{background-color:var(--jp-green-5);color:var(--jp-green-60)}.xpPHTch5ul0xuZaUoTNa{background-color:var(--jp-gray-0);display:flex;flex-direction:row;font-family:monospace;overflow-x:scroll;padding:0}.AMOpkL9LURkyTK8316cw{background-color:var(--jp-red-0)}.i0_0xMrNWoak1brIaDQq{display:flex;flex-direction:column;text-align:left}.C9fLawPLkMNSZthfwxj6{background-color:var(--jp-gray-10);color:var(--font-body);padding:0 calc(var(--spacing-base)/2)}.C9fLawPLkMNSZthfwxj6.AMOpkL9LURkyTK8316cw{background-color:var(--jp-red-50);color:var(--jp-white)}.ogixgg8fRGekmYGtevh1{display:flex;flex:1;flex-direction:column;overflow-x:visible;white-space:pre}.jYPCgKMDRKfT3vnx0mdG{padding-right:var(--spacing-base)}.UEQ1NqkrwNmaQR7qdEK3{background-color:var(--jp-red);border-radius:calc(var(--jp-border-radius)/2);color:var(--jp-white);padding:calc(var(--spacing-base)/4) calc(var(--spacing-base)/2)}.sfXsfklfkeSRtE9ivQwF{border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);display:inline-block;width:100%}.sfXsfklfkeSRtE9ivQwF>:not(:last-child){border-bottom:1px solid var(--jp-gray)}.ozRrKPlj1QFGUyd3oVke{background-color:var(--jp-white)}.PyvnSHQuuUkZvVsArigy{align-items:center;background:none;border:none;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:repeat(9,1fr);margin:0;outline-color:var(--jp-black);padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);text-align:start;width:100%}.PyvnSHQuuUkZvVsArigy>:first-of-type{grid-column:1/7}.PyvnSHQuuUkZvVsArigy>:last-of-type{grid-column:9}.PyvnSHQuuUkZvVsArigy>:not(:first-child){margin:auto}.PyvnSHQuuUkZvVsArigy:hover{background:var(--jp-gray-0)}.u9Xod5s8bCRNj9MR1Drl{align-items:center;display:flex;font-size:var(--font-body-small);font-weight:400}.IbeyulkpO9kjYJ4OkYUD{margin-left:var(--spacing-base)}.KiCgmjHm2f0JDU3cMsgf{font-weight:600}.KiCgmjHm2f0JDU3cMsgf,.kh5zuLR1zNf7KCsxhAZ5{margin-bottom:var(--spacing-base);margin-right:calc(var(--spacing-base)*4)}.kh5zuLR1zNf7KCsxhAZ5{font-size:var(--font-body-small);font-weight:400}.z1z63g62c73XbcPk9DWc{background-color:var(--jp-gray-50);display:inline-block;height:4px;margin:2px 12px;width:4px}.kJ8t3FAtd5VAYjk31SfA{align-items:center}.JP0IJZcYRohfgntEozjm{overflow:hidden;transform-origin:top center}.y7c6zi2wjEnbW3F29fmP{max-height:0;padding:0;transform:scaleY(0);transition:all .1s}.wQWiN_J0SqgduvadyGnm{max-height:1000px;padding:calc(var(--spacing-base)*4) calc(var(--spacing-base)*7);transform:scaleY(1);transition:max-height .3s,transform .2s}.v1fUFCBPmd6miSCf_ehK{fill:var(--jp-green-40)}.oR9QG6gRLvyzqiuIarmu{border-radius:32px;flex-shrink:0;font-size:12px;font-style:normal;font-weight:600;line-height:16px;margin-right:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);position:relative;text-align:center;width:60px}.oR9QG6gRLvyzqiuIarmu.bZ8KDXMWoim85Zv31E7E{background-color:#008a20;color:var(--jp-white)}.oR9QG6gRLvyzqiuIarmu.uYEkrN4rh8n5cs3aPrYC{background-color:var(--jp-gray-50);color:var(--jp-white)}.WOX88CWB12lzxcMcl_ns{color:#008a20}@media(max-width:599px){.PyvnSHQuuUkZvVsArigy{display:grid;grid-auto-rows:minmax(auto,auto)}.PyvnSHQuuUkZvVsArigy>:first-child{grid-column:1/8;grid-row:1}.PyvnSHQuuUkZvVsArigy>:nth-child(2){grid-row:2;padding-right:calc(var(--spacing-base)*4)}.PyvnSHQuuUkZvVsArigy>:nth-child(3){grid-row:2}.PyvnSHQuuUkZvVsArigy>:nth-child(3) span{margin-top:var(--spacing-base);position:absolute}.PyvnSHQuuUkZvVsArigy>:last-child{grid-column:10;grid-row:1/3}.oR9QG6gRLvyzqiuIarmu{display:none}}@media(max-width:1200px){.kh5zuLR1zNf7KCsxhAZ5{display:grid}.z1z63g62c73XbcPk9DWc{display:none}}.aEAAkNfx0ERh4LEvCBVw>:first-child{flex:1}@media(min-width:960px){.aEAAkNfx0ERh4LEvCBVw{align-items:flex-start;display:flex}}.f3l2VSMBpGpf6Ta1jP5f{align-items:center;color:var(--jp-black);display:flex}.v4n86Hu06mIkxqFkfYY2{margin-left:var(--spacing-base);margin-right:-4px}.fTSgXuIQCZFFBxzFCE0q{align-items:flex-end;display:flex;flex-direction:column;gap:calc(var(--spacing-base)*2)}.KmIjHqrMs3duMPaUf50k{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;max-height:600px;width:100%}.DJS67UCXVaM7nIMJePYQ{align-items:flex-end;display:flex;justify-content:flex-end;margin-bottom:calc(var(--spacing-base)*2.25)}.s4378tf2MiM0bMIxQZkI{flex:1;margin-bottom:0}.jifq7nsF5kZYrcpGQ35V{display:flex;gap:calc(var(--spacing-base)*2)}@media(max-width:599px){.DJS67UCXVaM7nIMJePYQ{margin-bottom:calc(var(--spacing-base)*3)}.s4378tf2MiM0bMIxQZkI{display:none}}*{box-sizing:border-box}#jetpack-protect-root{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;--actions-size:28px}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/composer.json
new file mode 100644
index 00000000..6c02a837
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/composer.json
@@ -0,0 +1,76 @@
+{
+ "name": "automattic/jetpack-protect",
+ "description": "Social plugin",
+ "type": "wordpress-plugin",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "ext-json": "*",
+ "automattic/jetpack-assets": "^2.3.7",
+ "automattic/jetpack-admin-ui": "^0.4.5",
+ "automattic/jetpack-autoloader": "^3.1.0",
+ "automattic/jetpack-composer-plugin": "^2.0.3",
+ "automattic/jetpack-config": "^2.0.4",
+ "automattic/jetpack-my-jetpack": "^4.35.3",
+ "automattic/jetpack-plugins-installer": "^0.4.3",
+ "automattic/jetpack-sync": "^3.10.0",
+ "automattic/jetpack-transport-helper": "^0.2.4",
+ "automattic/jetpack-plans": "^0.4.10",
+ "automattic/jetpack-waf": "^0.18.5",
+ "automattic/jetpack-status": "^4.0.1",
+ "automattic/jetpack-protect-status": "^0.1.5"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/wordbless": "0.4.2"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "build-development": [
+ "pnpm run build"
+ ],
+ "build-production": [
+ "pnpm run build-production-concurrently"
+ ],
+ "watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run watch"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy"
+ },
+ "repositories": [],
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "mirror-repo": "Automattic/jetpack-protect-plugin",
+ "autorelease": true,
+ "autotagger": {
+ "v": false
+ },
+ "release-branch-prefix": "protect",
+ "wp-plugin-slug": "jetpack-protect",
+ "wp-svn-autopublish": true,
+ "version-constants": {
+ "JETPACK_PROTECT_VERSION": "jetpack-protect.php"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true,
+ "automattic/jetpack-autoloader": true,
+ "automattic/jetpack-composer-plugin": true
+ },
+ "autoloader-suffix": "c4802e05bbcf59fd3b6350e8d3e5482c_protectⓥ3_0_2"
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack-protect.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack-protect.php
new file mode 100644
index 00000000..dda7f189
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack-protect.php
@@ -0,0 +1,140 @@
+ array(
+ 'plugin' => 'Jetpack Protect',
+ ),
+ );
+
+ return $slugs;
+ }
+ );
+
+ add_action(
+ 'admin_notices',
+ function () {
+ if ( get_current_screen()->id !== 'plugins' ) {
+ return;
+ }
+
+ $message = sprintf(
+ wp_kses(
+ /* translators: Placeholder is a link to a support document. */
+ __( 'Your installation of Jetpack Protect is incomplete. If you installed Jetpack Protect from GitHub, please refer to this document to set up your development environment. Jetpack Protect must have Composer dependencies installed and built via the build command.', 'jetpack-protect' ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ 'target' => array(),
+ 'rel' => array(),
+ ),
+ )
+ ),
+ 'https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md#building-your-project'
+ );
+ wp_admin_notice(
+ $message,
+ array(
+ 'type' => 'error',
+ 'dismissible' => true,
+ )
+ );
+ }
+ );
+
+ return;
+}
+
+// Redirect to plugin page when the plugin is activated.
+add_action( 'activated_plugin', 'jetpack_protect_plugin_activation' );
+
+/**
+ * Redirects to plugin page when the plugin is activated
+ *
+ * @param string $plugin Path to the plugin file relative to the plugins directory.
+ */
+function jetpack_protect_plugin_activation( $plugin ) {
+ if (
+ JETPACK_PROTECT_ROOT_FILE_RELATIVE_PATH === $plugin &&
+ ( new \Automattic\Jetpack\Paths() )->is_current_request_activating_plugin_from_plugins_screen( JETPACK_PROTECT_ROOT_FILE_RELATIVE_PATH )
+ ) {
+ wp_safe_redirect( esc_url( admin_url( 'admin.php?page=jetpack-protect' ) ) );
+ exit;
+ }
+}
+
+// Add "Settings" link to plugins page.
+add_filter(
+ 'plugin_action_links_' . JETPACK_PROTECT_FOLDER . '/jetpack-protect.php',
+ function ( $actions ) {
+ $settings_link = '' . __( 'Dashboard', 'jetpack-protect' ) . '';
+ array_unshift( $actions, $settings_link );
+
+ return $actions;
+ }
+);
+
+register_activation_hook( __FILE__, array( 'Jetpack_Protect', 'plugin_activation' ) );
+register_deactivation_hook( __FILE__, array( 'Jetpack_Protect', 'plugin_deactivation' ) );
+
+// Main plugin class.
+new Jetpack_Protect();
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md
new file mode 100644
index 00000000..1e7d3ab7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/CHANGELOG.md
@@ -0,0 +1,171 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [2.0.2] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [2.0.1] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [2.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [1.4.22] - 2023-09-19
+
+- Minor internal updates.
+
+## [1.4.21] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.4.20] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.4.19] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.4.18] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [1.4.17] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [1.4.16] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.4.15] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.4.14] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [1.4.13] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.4.12] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.11] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.4.10] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.4.9] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.4.8] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.4.7] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.4.6] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.4.5] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- updated annotations versions
+
+## [1.4.4] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.3] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.4.2] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.4.1] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.4.0] - 2021-01-20
+
+- Add mirror-repo information to all current composer packages
+
+## [1.3.0] - 2020-12-17
+
+- Coverage Update whitelist for backend tests
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.2.0] - 2020-09-17
+
+## [1.1.1] - 2020-09-17
+
+- a8c-mc-stats: Do not distribute test files
+
+## [1.1.0] - 2020-08-13
+
+- CI: Try collect js coverage
+
+## 1.0.0 - 2020-07-27
+
+- Creates the MC Stats package
+
+[2.0.2]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.22...v2.0.0
+[1.4.22]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.21...v1.4.22
+[1.4.21]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.20...v1.4.21
+[1.4.20]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.19...v1.4.20
+[1.4.19]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.18...v1.4.19
+[1.4.18]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.17...v1.4.18
+[1.4.17]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.16...v1.4.17
+[1.4.16]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.15...v1.4.16
+[1.4.15]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.14...v1.4.15
+[1.4.14]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.13...v1.4.14
+[1.4.13]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.12...v1.4.13
+[1.4.12]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.11...v1.4.12
+[1.4.11]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.10...v1.4.11
+[1.4.10]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.9...v1.4.10
+[1.4.9]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.8...v1.4.9
+[1.4.8]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.7...v1.4.8
+[1.4.7]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-a8c-mc-stats/compare/v1.0.0...v1.1.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/composer.json
new file mode 100644
index 00000000..e2c638c5
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/composer.json
@@ -0,0 +1,41 @@
+{
+ "name": "automattic/jetpack-a8c-mc-stats",
+ "description": "Used to record internal usage stats for Automattic. Not visible to site owners.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.0.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php
new file mode 100644
index 00000000..9e573cd7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-a8c-mc-stats/src/class-a8c-mc-stats.php
@@ -0,0 +1,181 @@
+use_transparent_pixel = $use_transparent_pixel;
+ }
+
+ /**
+ * Store a stat for later output.
+ *
+ * @param string $group The stat group.
+ * @param string $name The stat name to bump.
+ *
+ * @return boolean true if stat successfully added
+ */
+ public function add( $group, $name ) {
+
+ if ( ! \is_string( $group ) || ! \is_string( $name ) ) {
+ return false;
+ }
+
+ if ( ! isset( $this->stats[ $group ] ) ) {
+ $this->stats[ $group ] = array();
+ }
+
+ if ( \in_array( $name, $this->stats[ $group ], true ) ) {
+ return false;
+ }
+
+ $this->stats[ $group ][] = $name;
+
+ return true;
+ }
+
+ /**
+ * Gets current stats stored to be processed
+ *
+ * @return array $stats
+ */
+ public function get_current_stats() {
+ return $this->stats;
+ }
+
+ /**
+ * Return the stats from a group in an array ready to be added as parameters in a query string
+ *
+ * @param string $group_name The name of the group to retrieve.
+ * @return array Array with one item, where the key is the prefixed group and the value are all stats concatenated with a comma. If group not found, an empty array will be returned
+ */
+ public function get_group_query_args( $group_name ) {
+ $stats = $this->get_current_stats();
+ if ( isset( $stats[ $group_name ] ) && ! empty( $stats[ $group_name ] ) ) {
+ return array( "x_jetpack-{$group_name}" => implode( ',', $stats[ $group_name ] ) );
+ }
+ return array();
+ }
+
+ /**
+ * Gets a list of trac URLs for every stored URL
+ *
+ * @return array An array of URLs
+ */
+ public function get_stats_urls() {
+
+ $urls = array();
+
+ foreach ( $this->get_current_stats() as $group => $stat ) {
+ $group_query_string = $this->get_group_query_args( $group );
+ $urls[] = $this->build_stats_url( $group_query_string );
+ }
+
+ return $urls;
+ }
+
+ /**
+ * Outputs the tracking pixels for the current stats and empty the stored stats from the object
+ *
+ * @return void
+ */
+ public function do_stats() {
+ $urls = $this->get_stats_urls();
+ foreach ( $urls as $url ) {
+ echo '';
+ }
+ $this->stats = array();
+ }
+
+ /**
+ * Pings the stats server for the current stats and empty the stored stats from the object
+ *
+ * @return void
+ */
+ public function do_server_side_stats() {
+ $urls = $this->get_stats_urls();
+ foreach ( $urls as $url ) {
+ $this->do_server_side_stat( $url );
+ }
+ $this->stats = array();
+ }
+
+ /**
+ * Runs stats code for a one-off, server-side.
+ *
+ * @param string $url string The URL to be pinged. Should include `x_jetpack-{$group}={$stats}` or whatever we want to store.
+ *
+ * @return bool If it worked.
+ */
+ public function do_server_side_stat( $url ) {
+ $response = wp_remote_get( esc_url_raw( $url ) );
+ if ( is_wp_error( $response ) ) {
+ return false;
+ }
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Builds the stats url.
+ *
+ * @param array $args array|string The arguments to append to the URL.
+ *
+ * @return string The URL to be pinged.
+ */
+ public function build_stats_url( $args ) {
+ $defaults = array(
+ 'v' => 'wpcom2',
+ 'rand' => md5( wp_rand( 0, 999 ) . time() ),
+ );
+ $args = wp_parse_args( $args, $defaults );
+ $gifname = true === $this->use_transparent_pixel ? 'b.gif' : 'g.gif';
+
+ /**
+ * Filter the URL used as the Stats tracking pixel.
+ *
+ * @since-jetpack 2.3.2
+ * @since 1.0.0
+ *
+ * @param string $url Base URL used as the Stats tracking pixel.
+ */
+ $base_url = apply_filters(
+ 'jetpack_stats_base_url',
+ 'https://pixel.wp.com/' . $gifname
+ );
+ $url = add_query_arg( $args, $base_url );
+ return $url;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md
new file mode 100644
index 00000000..f211e5dc
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/CHANGELOG.md
@@ -0,0 +1,198 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.4.5] - 2024-09-05
+### Changed
+- Jetpack menu: only register Jetpack admin page for contributor roles and above. [#39081]
+
+## [0.4.4] - 2024-08-29
+### Changed
+- Admin menu: change order of Jetpack sub-menu items [#39095]
+
+## [0.4.3] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.4.2] - 2024-04-22
+### Changed
+- Internal updates.
+
+## [0.4.1] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [0.4.0] - 2024-03-01
+### Added
+- Register menus in network admin as well as regular admin. [#36058]
+
+## [0.3.2] - 2024-01-29
+### Fixed
+- Wait until 'admin_menu' action to call `add_menu()`, to avoid triggering the l10n load too early. [#35279]
+
+## [0.3.1] - 2023-11-24
+
+## [0.3.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [0.2.25] - 2023-11-14
+
+## [0.2.24] - 2023-10-30
+### Fixed
+- Handle Akismet submenu even if Jetpack is present, as Jetpack now relies on this package to do so. [#33559]
+
+## [0.2.23] - 2023-09-19
+### Changed
+- Updated Jetpack submenu sort order so individual features are alpha-sorted. [#32958]
+
+## [0.2.22] - 2023-09-11
+### Fixed
+- Akismet: update naming to common form [#32908]
+
+## [0.2.21] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [0.2.20] - 2023-04-25
+### Fixed
+- Avoid errors when used in combination with an older version of the Logo package. [#30136]
+
+## [0.2.19] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [0.2.18] - 2023-04-04
+### Changed
+- Menu icon: update to latest version of the Jetpack logo [#29418]
+
+## [0.2.17] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [0.2.16] - 2023-01-25
+### Changed
+- Minor internal updates.
+
+## [0.2.15] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [0.2.14] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [0.2.13] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [0.2.12] - 2022-09-20
+### Changed
+- Updated package dependencies.
+
+## [0.2.11] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [0.2.10] - 2022-07-12
+### Changed
+- Updated package dependencies.
+
+## [0.2.9] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [0.2.8] - 2022-06-14
+### Changed
+- Updated package dependencies.
+
+## [0.2.7] - 2022-04-26
+### Changed
+- Update package.json metadata.
+
+## [0.2.6] - 2022-04-05
+### Changed
+- Updated package dependencies.
+
+## [0.2.5] - 2022-03-08
+### Fixed
+- Do not handle Akismet submenu if Jetpack plugin is present
+
+## [0.2.4] - 2022-02-09
+### Added
+- Support for akismet menu with stand-alone plugins
+
+### Fixed
+- Fixes menu order working around a bug in add_submenu_page
+
+## [0.2.3] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [0.2.2] - 2022-01-18
+### Changed
+- General: update required node version to v16.13.2
+
+## [0.2.1] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [0.2.0] - 2021-12-14
+### Added
+- New method to get the top level menu item
+
+## [0.1.1] - 2021-11-17
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## 0.1.0 - 2021-10-13
+### Added
+- Created the package.
+
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Fixing menu visibility issues.
+
+[0.4.5]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.4...0.4.5
+[0.4.4]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.3...0.4.4
+[0.4.3]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.2...0.4.3
+[0.4.2]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.1...0.4.2
+[0.4.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.4.0...0.4.1
+[0.4.0]: https://github.com/Automattic/jetpack-admin-ui/compare/0.3.2...0.4.0
+[0.3.2]: https://github.com/Automattic/jetpack-admin-ui/compare/0.3.1...0.3.2
+[0.3.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.3.0...0.3.1
+[0.3.0]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.25...0.3.0
+[0.2.25]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.24...0.2.25
+[0.2.24]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.23...0.2.24
+[0.2.23]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.22...0.2.23
+[0.2.22]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.21...0.2.22
+[0.2.21]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.20...0.2.21
+[0.2.20]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.19...0.2.20
+[0.2.19]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.18...0.2.19
+[0.2.18]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.17...0.2.18
+[0.2.17]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.16...0.2.17
+[0.2.16]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.15...0.2.16
+[0.2.15]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.14...0.2.15
+[0.2.14]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.13...0.2.14
+[0.2.13]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.12...0.2.13
+[0.2.12]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.11...0.2.12
+[0.2.11]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.10...0.2.11
+[0.2.10]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.9...0.2.10
+[0.2.9]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.8...0.2.9
+[0.2.8]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.7...0.2.8
+[0.2.7]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.6...0.2.7
+[0.2.6]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.5...0.2.6
+[0.2.5]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.4...0.2.5
+[0.2.4]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.3...0.2.4
+[0.2.3]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.2...0.2.3
+[0.2.2]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.1...0.2.2
+[0.2.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.2.0...0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-admin-ui/compare/0.1.1...0.2.0
+[0.1.1]: https://github.com/Automattic/jetpack-admin-ui/compare/0.1.0...0.1.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/composer.json
new file mode 100644
index 00000000..c91a9ca5
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/composer.json
@@ -0,0 +1,54 @@
+{
+ "name": "automattic/jetpack-admin-ui",
+ "description": "Generic Jetpack wp-admin UI elements",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/jetpack-logo": "^2.0.4",
+ "automattic/wordbless": "dev-master"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-admin-ui",
+ "textdomain": "jetpack-admin-ui",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-admin-ui/compare/${old}...${new}"
+ },
+ "branch-alias": {
+ "dev-trunk": "0.4.x-dev"
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-admin-menu.php"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php
new file mode 100644
index 00000000..fdafba56
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-admin-ui/src/class-admin-menu.php
@@ -0,0 +1,208 @@
+get_base64_logo()
+ : 'dashicons-admin-plugins';
+
+ if ( ! $jetpack_plugin_present ) {
+ add_menu_page(
+ 'Jetpack',
+ 'Jetpack',
+ 'edit_posts',
+ 'jetpack',
+ '__return_null',
+ $icon,
+ 3
+ );
+
+ // If Jetpack plugin is not present, user will only be able to see this menu if they have enough capability to at least one of the sub menus being added.
+ $can_see_toplevel_menu = false;
+ }
+
+ /**
+ * The add_sub_menu function has a bug and will not keep the right order of menu items.
+ *
+ * @see https://core.trac.wordpress.org/ticket/52035
+ * Let's order the items before registering them.
+ * Since this all happens after the Jetpack plugin menu items were added, all items will be added after Jetpack plugin items - unless position is very low number (smaller than the number of menu items present in Jetpack plugin).
+ */
+ usort(
+ self::$menu_items,
+ function ( $a, $b ) {
+ $position_a = empty( $a['position'] ) ? 0 : $a['position'];
+ $position_b = empty( $b['position'] ) ? 0 : $b['position'];
+ $result = $position_a <=> $position_b;
+
+ if ( 0 === $result ) {
+ $result = strcmp( $a['menu_title'], $b['menu_title'] );
+ }
+
+ return $result;
+ }
+ );
+
+ foreach ( self::$menu_items as $menu_item ) {
+ if ( ! current_user_can( $menu_item['capability'] ) ) {
+ continue;
+ }
+
+ $can_see_toplevel_menu = true;
+
+ add_submenu_page(
+ 'jetpack',
+ $menu_item['page_title'],
+ $menu_item['menu_title'],
+ $menu_item['capability'],
+ $menu_item['menu_slug'],
+ $menu_item['function'],
+ $menu_item['position']
+ );
+ }
+
+ if ( ! $jetpack_plugin_present ) {
+ remove_submenu_page( 'jetpack', 'jetpack' );
+ }
+
+ if ( ! $can_see_toplevel_menu ) {
+ remove_menu_page( 'jetpack' );
+ }
+ }
+
+ /**
+ * Adds a new submenu to the Jetpack Top level menu
+ *
+ * The parameters this method accepts are the same as @see add_submenu_page. This class will
+ * aggreagate all menu items registered by stand-alone plugins and make sure they all go under the same
+ * Jetpack top level menu. It will also handle the top level menu registration in case the Jetpack plugin is not present.
+ *
+ * @param string $page_title The text to be displayed in the title tags of the page when the menu
+ * is selected.
+ * @param string $menu_title The text to be used for the menu.
+ * @param string $capability The capability required for this menu to be displayed to the user.
+ * @param string $menu_slug The slug name to refer to this menu by. Should be unique for this menu
+ * and only include lowercase alphanumeric, dashes, and underscores characters
+ * to be compatible with sanitize_key().
+ * @param callable $function The function to be called to output the content for this page.
+ * @param int $position The position in the menu order this item should appear. Leave empty typically.
+ *
+ * @return string The resulting page's hook_suffix
+ */
+ public static function add_menu( $page_title, $menu_title, $capability, $menu_slug, $function, $position = null ) {
+ self::init();
+ self::$menu_items[] = compact( 'page_title', 'menu_title', 'capability', 'menu_slug', 'function', 'position' );
+
+ /**
+ * Let's return the page hook so consumers can use.
+ * We know all pages will be under Jetpack top level menu page, so we can hardcode the first part of the string.
+ * Using get_plugin_page_hookname here won't work because the top level page is not registered yet.
+ */
+ return 'jetpack_page_' . $menu_slug;
+ }
+
+ /**
+ * Gets the slug for the first item under the Jetpack top level menu
+ *
+ * @return string|null
+ */
+ public static function get_top_level_menu_item_slug() {
+ global $submenu;
+ if ( ! empty( $submenu['jetpack'] ) ) {
+ $item = reset( $submenu['jetpack'] );
+ if ( isset( $item[2] ) ) {
+ return $item[2];
+ }
+ }
+ }
+
+ /**
+ * Gets the URL for the first item under the Jetpack top level menu
+ *
+ * @param string $fallback If Jetpack menu is not there or no children is found, return this fallback instead. Default to admin_url().
+ * @return string
+ */
+ public static function get_top_level_menu_item_url( $fallback = false ) {
+ $slug = self::get_top_level_menu_item_slug();
+
+ if ( $slug ) {
+ $url = menu_page_url( $slug, false );
+ return $url;
+ }
+
+ $url = $fallback ? $fallback : admin_url();
+ return $url;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/.eslintrc.cjs b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/.eslintrc.cjs
new file mode 100644
index 00000000..66a22f5e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: [ require.resolve( 'jetpack-js-tools/eslintrc/react' ) ],
+};
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md
new file mode 100644
index 00000000..2a075024
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/CHANGELOG.md
@@ -0,0 +1,611 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [2.3.7] - 2024-09-05
+### Changed
+- Internal updates.
+
+## [2.3.6] - 2024-09-05
+### Changed
+- Updated package dependencies. [#39176]
+
+### Fixed
+- Fixed script data not available in block editor iframe [#39221]
+
+## [2.3.5] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
+## [2.3.4] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [2.3.3] - 2024-08-21
+### Changed
+- i18n loader script & React JSX runtime: load scripts in the footer. [#38929]
+
+## [2.3.2] - 2024-08-15
+### Changed
+- Updated package dependencies. [#38662]
+
+## [2.3.1] - 2024-08-12
+### Fixed
+- Fixed variable names. [#38606]
+
+## [2.3.0] - 2024-08-08
+### Added
+- Added jetpack-initial-state package to consolidate the logic for Initial state. [#38430]
+
+## [2.2.0] - 2024-07-23
+### Added
+- Assets: Add JSX runtime polyfill `react-jsx-runtime` for WordPress < 6.6. [#38428]
+
+## [2.1.13] - 2024-07-03
+### Changed
+- Updated package dependencies. [#38132]
+
+## [2.1.12] - 2024-06-05
+### Changed
+- Updated package dependencies. [#37669]
+
+## [2.1.11] - 2024-05-20
+### Changed
+- Internal updates.
+
+## [2.1.10] - 2024-05-16
+### Added
+- Assets: Adding comments to explain why we use variables within translation functions [#37397]
+
+### Changed
+- Updated package dependencies. [#37379]
+
+## [2.1.9] - 2024-05-06
+### Changed
+- Updated package dependencies. [#37147]
+
+## [2.1.8] - 2024-04-22
+### Changed
+- Internal updates.
+
+## [2.1.7] - 2024-04-08
+### Changed
+- Updated package dependencies. [#36760]
+
+## [2.1.6] - 2024-03-27
+### Changed
+- Updated package dependencies. [#36585]
+
+## [2.1.5] - 2024-03-18
+### Changed
+- Internal updates.
+
+## [2.1.4] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [2.1.3] - 2024-03-12
+### Changed
+- Updated package dependencies. [#36325]
+
+## [2.1.2] - 2024-03-04
+### Changed
+- Updated package dependencies. [#36095]
+
+## [2.1.1] - 2024-02-13
+### Changed
+- Updated package dependencies. [#35608]
+
+## [2.1.0] - 2024-02-05
+### Added
+- Add support for script enqueuing strategies implemented in WordPress 6.3 [#34072]
+
+### Changed
+- Updated package dependencies. [#35384]
+
+## [2.0.4] - 2024-01-04
+### Changed
+- Updated package dependencies. [#34815]
+
+## [2.0.3] - 2023-12-11
+### Changed
+- Updated package dependencies. [#34492]
+
+## [2.0.2] - 2023-12-03
+### Changed
+- Updated package dependencies. [#34411] [#34427]
+
+## [2.0.1] - 2023-11-21
+
+## [2.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [1.18.15] - 2023-11-14
+### Changed
+- Updated package dependencies. [#34093]
+
+## [1.18.14] - 2023-11-03
+
+## [1.18.13] - 2023-10-19
+### Changed
+- Updated package dependencies. [#33687]
+
+## [1.18.12] - 2023-10-10
+### Changed
+- Updated package dependencies. [#33428]
+
+### Fixed
+- Pass `false`, not `null`, to `WP_Scripts->add()`. [#33513]
+
+## [1.18.11] - 2023-09-19
+
+- Minor internal updates.
+
+## [1.18.10] - 2023-09-04
+### Changed
+- Updated package dependencies. [#32803]
+
+## [1.18.9] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.18.8] - 2023-08-09
+### Changed
+- Updated package dependencies. [#32166]
+
+## [1.18.7] - 2023-07-11
+### Changed
+- Updated package dependencies. [#31785]
+
+## [1.18.6] - 2023-07-05
+### Changed
+- Updated package dependencies. [#31659]
+
+## [1.18.5] - 2023-06-21
+### Changed
+- Updated package dependencies. [#31468]
+
+## [1.18.4] - 2023-06-06
+### Changed
+- Updated package dependencies. [#31129]
+
+## [1.18.3] - 2023-05-15
+### Changed
+- Internal updates.
+
+## [1.18.2] - 2023-05-02
+### Changed
+- Updated package dependencies. [#30375]
+
+## [1.18.1] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.18.0] - 2023-04-04
+### Changed
+- Async script enqueuing: switch to static method. [#29780]
+- Updated package dependencies. [#29854]
+
+## [1.17.34] - 2023-03-20
+### Changed
+- Updated package dependencies. [#29471]
+
+## [1.17.33] - 2023-03-08
+### Changed
+- Updated package dependencies. [#29216]
+
+## [1.17.32] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.17.31] - 2023-02-15
+### Changed
+- Update to React 18. [#28710]
+
+## [1.17.30] - 2023-01-25
+### Changed
+- Minor internal updates.
+
+## [1.17.29] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [1.17.28] - 2022-12-02
+### Changed
+- Updated package dependencies.
+
+## [1.17.27] - 2022-11-28
+### Changed
+- Updated package dependencies. [#27576]
+
+## [1.17.26] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.17.25] - 2022-11-08
+### Changed
+- Updated package dependencies. [#27289]
+
+## [1.17.24] - 2022-11-01
+### Changed
+- Updated package dependencies.
+
+## [1.17.23] - 2022-10-13
+### Changed
+- Updated package dependencies. [#26791]
+
+## [1.17.22] - 2022-10-05
+### Changed
+- Updated package dependencies. [#26568]
+
+## [1.17.21] - 2022-08-25
+### Changed
+- Updated package dependencies. [#25814]
+
+## [1.17.20] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.17.19] - 2022-07-12
+### Changed
+- Updated package dependencies.
+
+## [1.17.18] - 2022-07-06
+### Changed
+- Updated package dependencies
+
+## [1.17.17] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [1.17.16] - 2022-06-14
+
+## [1.17.15] - 2022-06-08
+### Changed
+- Reorder JS imports for `import/order` eslint rule. [#24601]
+
+## [1.17.14] - 2022-05-18
+### Changed
+- Updated package dependencies [#24372]
+
+## [1.17.13] - 2022-05-10
+### Changed
+- Updated package dependencies. [#24302]
+
+## [1.17.12] - 2022-05-04
+### Added
+- Add missing JavaScript dependencies, and fix a test. [#24096]
+
+## [1.17.11] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.17.10] - 2022-04-19
+### Fixed
+- Assets: Defer the enqueued script instead of its translations
+
+## [1.17.9] - 2022-04-05
+### Changed
+- Updated package dependencies.
+
+## [1.17.8] - 2022-03-29
+### Changed
+- Updated package dependencies.
+
+## [1.17.7] - 2022-03-23
+### Changed
+- Updated package dependencies.
+
+## [1.17.6] - 2022-03-02
+### Changed
+- Updated package dependencies.
+
+## [1.17.5] - 2022-02-16
+### Changed
+- Updated package dependencies.
+
+## [1.17.4] - 2022-02-09
+### Changed
+- Updated package dependencies.
+
+## [1.17.3] - 2022-02-02
+### Fixed
+- Fixed minor coding standard violation.
+
+## [1.17.2] - 2022-02-01
+### Changed
+- Build: remove unneeded files from production build.
+
+## [1.17.1] - 2022-01-27
+### Changed
+- Updated package dependencies.
+
+## [1.17.0] - 2022-01-25
+### Added
+- Accept package path prefixes from jetpack-composer-plugin and use them when lazy-loading JS translations.
+- Generate the `wp-jp-i18n-loader` module needed by the new i18n-loader-webpack-plugin.
+
+### Deprecated
+- Deprecated the `wp-jp-i18n-state` module.
+
+## [1.16.2] - 2022-01-18
+### Fixed
+- Handle the case where `WP_LANG_DIR` is in `WP_CONTENT_DIR`, but `WP_CONTENT_DIR` is not in `ABSPATH`.
+
+## [1.16.1] - 2022-01-05
+### Fixed
+- Don't issue a "doing it wrong" warning for registering aliases during plugin activation.
+
+## [1.16.0] - 2022-01-04
+### Added
+- Document use of jetpack-assets, jetpack-composer-plugin, and i18n-loader-webpack-plugin together.
+
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-assets`.
+
+## [1.15.0] - 2021-12-20
+### Added
+- Add `alias_textdomain()`.
+
+## [1.14.0] - 2021-12-14
+### Added
+- Generate `wp-jp-i18n-state` script.
+
+## [1.13.1] - 2021-11-22
+### Fixed
+- Call `_doing_it_wrong` correctly.
+
+## [1.13.0] - 2021-11-22
+### Added
+- Have `Assets::register_script()` accept a textdomain for `wp_set_script_translations` (and complain if no textdomain is passed when `wp-i18n` is depended on).
+
+### Changed
+- Updated package dependencies
+
+### Fixed
+- Added missing option doc for `Assets::register_script()`.
+
+## [1.12.0] - 2021-11-15
+### Added
+- Add `Assets::register_script()` for easier loading of Webpack-built scripts.
+
+## [1.11.10] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.11.9] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.11.8] - 2021-10-06
+### Changed
+- Updated package dependencies
+
+## [1.11.7] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.11.6] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- update annotations versions
+
+## [1.11.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.11.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.11.3] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.11.2] - 2021-02-23
+
+- CI: Make tests more generic
+
+## [1.11.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.11.0] - 2021-01-05
+
+- Update dependency brain/monkey to v2.6.0
+
+## [1.10.0] - 2020-12-08
+
+- Assets: introduce new method to process static resources
+- Assets: Use defer for script tags
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.9.1] - 2020-11-24
+
+- Update dependency brain/monkey to v2.5.0
+- Updated PHPCS: Packages and Debugger
+
+## [1.9.0] - 2020-10-27
+
+- Instagram oEmbed: Simplify
+
+## [1.8.0] - 2020-09-29
+
+- Consolidate the Lazy Images package to rely on the Assets package
+
+## [1.7.0] - 2020-08-25
+
+- Packages: Update filenames after #16810
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.6.0] - 2020-07-28
+
+- Various: Use wp_resource_hints
+
+## [1.5.0] - 2020-06-30
+
+- PHPCS: Clean up the packages
+- WooCommerce Analytics: avoid 404 error when enqueuing script
+
+## [1.4.0] - 2020-05-26
+
+- Add Jetpack Scan threat notifications
+
+## [1.3.0] - 2020-04-28
+
+- Update dependencies to latest stable
+
+## [1.2.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.1.1] - 2020-01-27
+
+- Pin dependency brain/monkey to 2.4.0
+
+## [1.1.0] - 2020-01-14
+
+- Packages: Various improvements for wp.com or self-contained consumers
+
+## [1.0.3] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.1] - 2019-10-28
+
+- PHPCS: JITM and Assets packages
+- Packages: Add gitattributes files to all packages that need th…
+
+## 1.0.0 - 2019-09-14
+
+- Statically access asset tools
+
+[2.3.7]: https://github.com/Automattic/jetpack-assets/compare/v2.3.6...v2.3.7
+[2.3.6]: https://github.com/Automattic/jetpack-assets/compare/v2.3.5...v2.3.6
+[2.3.5]: https://github.com/Automattic/jetpack-assets/compare/v2.3.4...v2.3.5
+[2.3.4]: https://github.com/Automattic/jetpack-assets/compare/v2.3.3...v2.3.4
+[2.3.3]: https://github.com/Automattic/jetpack-assets/compare/v2.3.2...v2.3.3
+[2.3.2]: https://github.com/Automattic/jetpack-assets/compare/v2.3.1...v2.3.2
+[2.3.1]: https://github.com/Automattic/jetpack-assets/compare/v2.3.0...v2.3.1
+[2.3.0]: https://github.com/Automattic/jetpack-assets/compare/v2.2.0...v2.3.0
+[2.2.0]: https://github.com/Automattic/jetpack-assets/compare/v2.1.13...v2.2.0
+[2.1.13]: https://github.com/Automattic/jetpack-assets/compare/v2.1.12...v2.1.13
+[2.1.12]: https://github.com/Automattic/jetpack-assets/compare/v2.1.11...v2.1.12
+[2.1.11]: https://github.com/Automattic/jetpack-assets/compare/v2.1.10...v2.1.11
+[2.1.10]: https://github.com/Automattic/jetpack-assets/compare/v2.1.9...v2.1.10
+[2.1.9]: https://github.com/Automattic/jetpack-assets/compare/v2.1.8...v2.1.9
+[2.1.8]: https://github.com/Automattic/jetpack-assets/compare/v2.1.7...v2.1.8
+[2.1.7]: https://github.com/Automattic/jetpack-assets/compare/v2.1.6...v2.1.7
+[2.1.6]: https://github.com/Automattic/jetpack-assets/compare/v2.1.5...v2.1.6
+[2.1.5]: https://github.com/Automattic/jetpack-assets/compare/v2.1.4...v2.1.5
+[2.1.4]: https://github.com/Automattic/jetpack-assets/compare/v2.1.3...v2.1.4
+[2.1.3]: https://github.com/Automattic/jetpack-assets/compare/v2.1.2...v2.1.3
+[2.1.2]: https://github.com/Automattic/jetpack-assets/compare/v2.1.1...v2.1.2
+[2.1.1]: https://github.com/Automattic/jetpack-assets/compare/v2.1.0...v2.1.1
+[2.1.0]: https://github.com/Automattic/jetpack-assets/compare/v2.0.4...v2.1.0
+[2.0.4]: https://github.com/Automattic/jetpack-assets/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-assets/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-assets/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-assets/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-assets/compare/v1.18.15...v2.0.0
+[1.18.15]: https://github.com/Automattic/jetpack-assets/compare/v1.18.14...v1.18.15
+[1.18.14]: https://github.com/Automattic/jetpack-assets/compare/v1.18.13...v1.18.14
+[1.18.13]: https://github.com/Automattic/jetpack-assets/compare/v1.18.12...v1.18.13
+[1.18.12]: https://github.com/Automattic/jetpack-assets/compare/v1.18.11...v1.18.12
+[1.18.11]: https://github.com/Automattic/jetpack-assets/compare/v1.18.10...v1.18.11
+[1.18.10]: https://github.com/Automattic/jetpack-assets/compare/v1.18.9...v1.18.10
+[1.18.9]: https://github.com/Automattic/jetpack-assets/compare/v1.18.8...v1.18.9
+[1.18.8]: https://github.com/Automattic/jetpack-assets/compare/v1.18.7...v1.18.8
+[1.18.7]: https://github.com/Automattic/jetpack-assets/compare/v1.18.6...v1.18.7
+[1.18.6]: https://github.com/Automattic/jetpack-assets/compare/v1.18.5...v1.18.6
+[1.18.5]: https://github.com/Automattic/jetpack-assets/compare/v1.18.4...v1.18.5
+[1.18.4]: https://github.com/Automattic/jetpack-assets/compare/v1.18.3...v1.18.4
+[1.18.3]: https://github.com/Automattic/jetpack-assets/compare/v1.18.2...v1.18.3
+[1.18.2]: https://github.com/Automattic/jetpack-assets/compare/v1.18.1...v1.18.2
+[1.18.1]: https://github.com/Automattic/jetpack-assets/compare/v1.18.0...v1.18.1
+[1.18.0]: https://github.com/Automattic/jetpack-assets/compare/v1.17.34...v1.18.0
+[1.17.34]: https://github.com/Automattic/jetpack-assets/compare/v1.17.33...v1.17.34
+[1.17.33]: https://github.com/Automattic/jetpack-assets/compare/v1.17.32...v1.17.33
+[1.17.32]: https://github.com/Automattic/jetpack-assets/compare/v1.17.31...v1.17.32
+[1.17.31]: https://github.com/Automattic/jetpack-assets/compare/v1.17.30...v1.17.31
+[1.17.30]: https://github.com/Automattic/jetpack-assets/compare/v1.17.29...v1.17.30
+[1.17.29]: https://github.com/Automattic/jetpack-assets/compare/v1.17.28...v1.17.29
+[1.17.28]: https://github.com/Automattic/jetpack-assets/compare/v1.17.27...v1.17.28
+[1.17.27]: https://github.com/Automattic/jetpack-assets/compare/v1.17.26...v1.17.27
+[1.17.26]: https://github.com/Automattic/jetpack-assets/compare/v1.17.25...v1.17.26
+[1.17.25]: https://github.com/Automattic/jetpack-assets/compare/v1.17.24...v1.17.25
+[1.17.24]: https://github.com/Automattic/jetpack-assets/compare/v1.17.23...v1.17.24
+[1.17.23]: https://github.com/Automattic/jetpack-assets/compare/v1.17.22...v1.17.23
+[1.17.22]: https://github.com/Automattic/jetpack-assets/compare/v1.17.21...v1.17.22
+[1.17.21]: https://github.com/Automattic/jetpack-assets/compare/v1.17.20...v1.17.21
+[1.17.20]: https://github.com/Automattic/jetpack-assets/compare/v1.17.19...v1.17.20
+[1.17.19]: https://github.com/Automattic/jetpack-assets/compare/v1.17.18...v1.17.19
+[1.17.18]: https://github.com/Automattic/jetpack-assets/compare/v1.17.17...v1.17.18
+[1.17.17]: https://github.com/Automattic/jetpack-assets/compare/v1.17.16...v1.17.17
+[1.17.16]: https://github.com/Automattic/jetpack-assets/compare/v1.17.15...v1.17.16
+[1.17.15]: https://github.com/Automattic/jetpack-assets/compare/v1.17.14...v1.17.15
+[1.17.14]: https://github.com/Automattic/jetpack-assets/compare/v1.17.13...v1.17.14
+[1.17.13]: https://github.com/Automattic/jetpack-assets/compare/v1.17.12...v1.17.13
+[1.17.12]: https://github.com/Automattic/jetpack-assets/compare/v1.17.11...v1.17.12
+[1.17.11]: https://github.com/Automattic/jetpack-assets/compare/v1.17.10...v1.17.11
+[1.17.10]: https://github.com/Automattic/jetpack-assets/compare/v1.17.9...v1.17.10
+[1.17.9]: https://github.com/Automattic/jetpack-assets/compare/v1.17.8...v1.17.9
+[1.17.8]: https://github.com/Automattic/jetpack-assets/compare/v1.17.7...v1.17.8
+[1.17.7]: https://github.com/Automattic/jetpack-assets/compare/v1.17.6...v1.17.7
+[1.17.6]: https://github.com/Automattic/jetpack-assets/compare/v1.17.5...v1.17.6
+[1.17.5]: https://github.com/Automattic/jetpack-assets/compare/v1.17.4...v1.17.5
+[1.17.4]: https://github.com/Automattic/jetpack-assets/compare/v1.17.3...v1.17.4
+[1.17.3]: https://github.com/Automattic/jetpack-assets/compare/v1.17.2...v1.17.3
+[1.17.2]: https://github.com/Automattic/jetpack-assets/compare/v1.17.1...v1.17.2
+[1.17.1]: https://github.com/Automattic/jetpack-assets/compare/v1.17.0...v1.17.1
+[1.17.0]: https://github.com/Automattic/jetpack-assets/compare/v1.16.2...v1.17.0
+[1.16.2]: https://github.com/Automattic/jetpack-assets/compare/v1.16.1...v1.16.2
+[1.16.1]: https://github.com/Automattic/jetpack-assets/compare/v1.16.0...v1.16.1
+[1.16.0]: https://github.com/Automattic/jetpack-assets/compare/v1.15.0...v1.16.0
+[1.15.0]: https://github.com/Automattic/jetpack-assets/compare/v1.14.0...v1.15.0
+[1.14.0]: https://github.com/Automattic/jetpack-assets/compare/v1.13.1...v1.14.0
+[1.13.1]: https://github.com/Automattic/jetpack-assets/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-assets/compare/v1.12.0...v1.13.0
+[1.12.0]: https://github.com/Automattic/jetpack-assets/compare/v1.11.10...v1.12.0
+[1.11.10]: https://github.com/Automattic/jetpack-assets/compare/v1.11.9...v1.11.10
+[1.11.9]: https://github.com/Automattic/jetpack-assets/compare/v1.11.8...v1.11.9
+[1.11.8]: https://github.com/Automattic/jetpack-assets/compare/v1.11.7...v1.11.8
+[1.11.7]: https://github.com/Automattic/jetpack-assets/compare/v1.11.6...v1.11.7
+[1.11.6]: https://github.com/Automattic/jetpack-assets/compare/v1.11.5...v1.11.6
+[1.11.5]: https://github.com/Automattic/jetpack-assets/compare/v1.11.4...v1.11.5
+[1.11.4]: https://github.com/Automattic/jetpack-assets/compare/v1.11.3...v1.11.4
+[1.11.3]: https://github.com/Automattic/jetpack-assets/compare/v1.11.2...v1.11.3
+[1.11.2]: https://github.com/Automattic/jetpack-assets/compare/v1.11.1...v1.11.2
+[1.11.1]: https://github.com/Automattic/jetpack-assets/compare/v1.11.0...v1.11.1
+[1.11.0]: https://github.com/Automattic/jetpack-assets/compare/v1.10.0...v1.11.0
+[1.10.0]: https://github.com/Automattic/jetpack-assets/compare/v1.9.1...v1.10.0
+[1.9.1]: https://github.com/Automattic/jetpack-assets/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-assets/compare/v1.8.0...v1.9.0
+[1.8.0]: https://github.com/Automattic/jetpack-assets/compare/v1.7.0...v1.8.0
+[1.7.0]: https://github.com/Automattic/jetpack-assets/compare/v1.6.0...v1.7.0
+[1.6.0]: https://github.com/Automattic/jetpack-assets/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-assets/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-assets/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-assets/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-assets/compare/v1.1.1...v1.2.0
+[1.1.1]: https://github.com/Automattic/jetpack-assets/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-assets/compare/v1.0.3...v1.1.0
+[1.0.3]: https://github.com/Automattic/jetpack-assets/compare/v1.0.1...v1.0.3
+[1.0.1]: https://github.com/Automattic/jetpack-assets/compare/v1.0.0...v1.0.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/actions.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/actions.php
new file mode 100644
index 00000000..487100d8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/actions.php
@@ -0,0 +1,25 @@
+ 1,
+ 'function' => array( Automattic\Jetpack\Assets::class, 'wp_default_scripts_hook' ),
+ );
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $wp_filter['plugins_loaded'][1][] = array(
+ 'accepted_args' => 0,
+ 'function' => array( Automattic\Jetpack\Assets\Script_Data::class, 'configure' ),
+ );
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.asset.php
new file mode 100644
index 00000000..cb123d3a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.asset.php
@@ -0,0 +1 @@
+ array('wp-i18n'), 'version' => 'becd7d9884bc1b331e45');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js
new file mode 100644
index 00000000..2712dfa9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/i18n-loader.js
@@ -0,0 +1 @@
+(()=>{var e={477:function(e){e.exports=function(e){function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n={};return r.m=e,r.c=n,r.i=function(e){return e},r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},r.p="",r(r.s=1)}([function(e,r,n){"use strict";function t(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(r,"__esModule",{value:!0});var o=function(){function e(e,r){for(var n=0;n>>32-o)+n&4294967295}},{key:"ff",value:function(r,n,t,o,a,i,f){return e.cmn(n&t|~n&o,r,n,a,i,f)}},{key:"gg",value:function(r,n,t,o,a,i,f){return e.cmn(n&o|t&~o,r,n,a,i,f)}},{key:"hh",value:function(r,n,t,o,a,i,f){return e.cmn(n^t^o,r,n,a,i,f)}},{key:"ii",value:function(r,n,t,o,a,i,f){return e.cmn(t^(n|~o),r,n,a,i,f)}},{key:"md51",value:function(r){for(var n=r.length,t=[1732584193,-271733879,-1732584194,271733878],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],a=0,i=64;i<=n;i+=64)e.md5cycle(t,e.md5blk(r.substring(i-64,i)));for(r=r.substring(i-64),i=0,a=r.length;i>2]|=r.charCodeAt(i)<<(i%4<<3);if(o[i>>2]|=128<<(i%4<<3),i>55)for(e.md5cycle(t,o),i=0;i<16;i++)o[i]=0;return o[14]=8*n,e.md5cycle(t,o),t}},{key:"md5blk",value:function(e){for(var r=[],n=0;n<64;n+=4)r[n>>2]=e.charCodeAt(n)+(e.charCodeAt(n+1)<<8)+(e.charCodeAt(n+2)<<16)+(e.charCodeAt(n+3)<<24);return r}},{key:"rhex",value:function(r){var n="";return n+=e.hexArray[r>>4&15]+e.hexArray[15&r],n+=e.hexArray[r>>12&15]+e.hexArray[r>>8&15],(n+=e.hexArray[r>>20&15]+e.hexArray[r>>16&15])+(e.hexArray[r>>28&15]+e.hexArray[r>>24&15])}},{key:"hex",value:function(r){for(var n=r.length,t=0;t{const t=n(723),{default:o}=n(477),a={plugin:"plugins/",theme:"themes/",core:""},i=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);e.exports={state:{baseUrl:null,locale:null,domainMap:{},domainPaths:{}},async downloadI18n(e,r,n){const f=this.state;if(!f||"string"!=typeof f.baseUrl)throw new Error("wp.jpI18nLoader.state is not set");if("en_US"===f.locale)return;if("undefined"==typeof fetch)throw new Error("Fetch API is not available.");const u=i(f.domainPaths,r)?f.domainPaths[r]:"";let c,h;const l=e.indexOf("?");l>=0?(c=o.hash(u+e.substring(0,l)),h=e.substring(l)):(c=o.hash(u+e),h="");const s=i(f.domainMap,r)?f.domainMap[r]:a[n]+r,g=await fetch(`${f.baseUrl}${s}-${f.locale}-${c}.json${h}`);if(!g.ok)throw new Error(`HTTP request failed: ${g.status} ${g.statusText}`);const d=await g.json(),p=i(d.locale_data,r)?d.locale_data[r]:d.locale_data.messages;p[""].domain=r,t.setLocaleData(p,r)}}},723:e=>{"use strict";e.exports=window.wp.i18n}},r={};var n=function n(t){var o=r[t];if(void 0!==o)return o.exports;var a=r[t]={exports:{}};return e[t].call(a.exports,a,a.exports,n),a.exports}(305);(window.wp=window.wp||{}).jpI18nLoader=n})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.asset.php
new file mode 100644
index 00000000..af7fa2e6
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.asset.php
@@ -0,0 +1 @@
+ array(), 'version' => '0274966690f87adbeccb');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.js
new file mode 100644
index 00000000..c445d9f2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/jetpack-script-data.js
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JetpackScriptDataModule=t():e.JetpackScriptDataModule=t()}(self,(()=>(()=>{var e={729:(e,t,r)=>{"use strict";r.r(t),r.d(t,{getActiveFeatures:()=>a.mH,getAdminUrl:()=>a.hT,getJetpackAdminPageUrl:()=>a.oQ,getMyJetpackUrl:()=>a.e5,getScriptData:()=>a.au,getSiteData:()=>a.sV});var o=r(428),n={};for(const e in o)"default"!==e&&(n[e]=()=>o[e]);r.d(t,n);var a=r(336)},428:()=>{},336:(e,t,r)=>{"use strict";function o(){return window.JetpackScriptData}function n(){return o().site}function a(e=""){return`${o().site.admin_url}${e}`}function i(e=""){return a(`admin.php?page=jetpack${e}`)}function u(e=""){return a(`admin.php?page=my-jetpack${e}`)}function p(){return o().site.plan?.features?.active??[]}r.d(t,{au:()=>o,e5:()=>u,hT:()=>a,mH:()=>p,oQ:()=>i,sV:()=>n})}},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}};return e[o](a,a.exports,r),a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var o={};return(()=>{"use strict";r.r(o);var e=r(729),t={};for(const r in e)"default"!==r&&(t[r]=()=>e[r]);r.d(o,t)})(),o})()));
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js
new file mode 100644
index 00000000..88aaa29f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js
@@ -0,0 +1,2 @@
+/*! For license information please see react-jsx-runtime.js.LICENSE.txt */
+(()=>{"use strict";var r={572:(r,e,t)=>{var o=t(609),n=Symbol.for("react.element"),s=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,f=o.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function _(r,e,t){var o,s={},_=null,i=null;for(o in void 0!==t&&(_=""+t),void 0!==e.key&&(_=""+e.key),void 0!==e.ref&&(i=e.ref),e)a.call(e,o)&&!p.hasOwnProperty(o)&&(s[o]=e[o]);if(r&&r.defaultProps)for(o in e=r.defaultProps)void 0===s[o]&&(s[o]=e[o]);return{$$typeof:n,type:r,key:_,ref:i,props:s,_owner:f.current}}e.Fragment=s,e.jsx=_,e.jsxs=_},48:(r,e,t)=>{r.exports=t(572)},609:r=>{r.exports=window.React}},e={},t=function t(o){var n=e[o];if(void 0!==n)return n.exports;var s=e[o]={exports:{}};return r[o](s,s.exports,t),s.exports}(48);window.ReactJSXRuntime=t})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js.LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js.LICENSE.txt
new file mode 100644
index 00000000..e68557b2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/build/react-jsx-runtime.js.LICENSE.txt
@@ -0,0 +1,9 @@
+/**
+ * @license React
+ * react-jsx-runtime.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/composer.json
new file mode 100644
index 00000000..4832c094
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/composer.json
@@ -0,0 +1,57 @@
+{
+ "name": "automattic/jetpack-assets",
+ "description": "Asset management utilities for Jetpack ecosystem packages",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-constants": "^2.0.4"
+ },
+ "require-dev": {
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "wikimedia/testing-access-wrapper": "^1.0 || ^2.0 || ^3.0"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "files": [
+ "actions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "build-development": [
+ "pnpm run build"
+ ],
+ "build-production": [
+ "pnpm run build-production"
+ ],
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-js": [
+ "pnpm run test"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.3.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php
new file mode 100644
index 00000000..3177ab69
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-assets/src/class-assets.php
@@ -0,0 +1,769 @@
+ array( string target_domain, string target_type, string semver, string path_prefix ) )`.
+ */
+ private static $domain_map = array();
+
+ /**
+ * Constructor.
+ *
+ * Static-only class, so nothing here.
+ */
+ private function __construct() {}
+
+ // ////////////////////
+ // region Async script loading
+
+ /**
+ * Get the singleton instance of the class.
+ *
+ * @return Assets
+ */
+ public static function instance() {
+ if ( ! isset( self::$instance ) ) {
+ self::$instance = new Assets();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * A public method for adding the async script.
+ *
+ * @deprecated Since 2.1.0, the `strategy` feature should be used instead, with the "defer" setting.
+ *
+ * @param string $script_handle Script handle.
+ */
+ public static function add_async_script( $script_handle ) {
+ _deprecated_function( __METHOD__, '2.1.0' );
+
+ wp_script_add_data( $script_handle, 'strategy', 'defer' );
+ }
+
+ /**
+ * Add an async attribute to scripts that can be loaded deferred.
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script
+ *
+ * @deprecated Since 2.1.0, the `strategy` feature should be used instead.
+ *
+ * @param string $tag The
+ ' . esc_html__( 'Every Jetpack site needs at least one connected admin for the features to work properly. Please connect to your WordPress.com account via the button below. Once you connect, you may refresh this page to see an option to change the connection owner.', 'jetpack-connection' ) . '
';
+ printf(
+ wp_kses(
+ /* translators: URL to Jetpack support doc regarding the primary user. */
+ __( "Learn more about the connection owner and what will break if you do not have one.", 'jetpack-connection' ),
+ array(
+ 'a' => array(
+ 'href' => true,
+ 'target' => true,
+ 'rel' => true,
+ ),
+ )
+ ),
+ esc_url( Redirect::get_url( 'jetpack-support-primary-user' ) )
+ );
+ echo '
';
+ echo '
';
+ printf(
+ wp_kses(
+ /* translators: URL to contact Jetpack support. */
+ __( 'As always, feel free to contact our support team if you have any questions.', 'jetpack-connection' ),
+ array(
+ 'a' => array(
+ 'href' => true,
+ 'target' => true,
+ 'rel' => true,
+ ),
+ )
+ ),
+ esc_url( Redirect::get_url( 'jetpack-contact-support' ) )
+ );
+ echo '
';
+ echo '';
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php
new file mode 100644
index 00000000..abe1a6ab
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-error-handler.php
@@ -0,0 +1,780 @@
+ [
+ * $user_id => [
+ * $error_details
+ * ]
+ * ]
+ * ]
+ *
+ * For each error code we store a maximum of 5 errors for 5 different user ids.
+ *
+ * An user ID can be
+ * * 0 for blog tokens
+ * * positive integer for user tokens
+ * * 'invalid' for malformed tokens
+ *
+ * @since 1.14.2
+ */
+class Error_Handler {
+
+ /**
+ * The name of the option that stores the errors
+ *
+ * @since 1.14.2
+ *
+ * @var string
+ */
+ const STORED_ERRORS_OPTION = 'jetpack_connection_xmlrpc_errors';
+
+ /**
+ * The name of the option that stores the errors
+ *
+ * @since 1.14.2
+ *
+ * @var string
+ */
+ const STORED_VERIFIED_ERRORS_OPTION = 'jetpack_connection_xmlrpc_verified_errors';
+
+ /**
+ * The prefix of the transient that controls the gate for each error code
+ *
+ * @since 1.14.2
+ *
+ * @var string
+ */
+ const ERROR_REPORTING_GATE = 'jetpack_connection_error_reporting_gate_';
+
+ /**
+ * Time in seconds a test should live in the database before being discarded
+ *
+ * @since 1.14.2
+ */
+ const ERROR_LIFE_TIME = DAY_IN_SECONDS;
+
+ /**
+ * The error code for event tracking purposes.
+ * If there are many, only the first error code will be tracked.
+ *
+ * @var string
+ */
+ private $error_code;
+
+ /**
+ * List of known errors. Only error codes in this list will be handled
+ *
+ * @since 1.14.2
+ *
+ * @var array
+ */
+ public $known_errors = array(
+ 'malformed_token',
+ 'malformed_user_id',
+ 'unknown_user',
+ 'no_user_tokens',
+ 'empty_master_user_option',
+ 'no_token_for_user',
+ 'token_malformed',
+ 'user_id_mismatch',
+ 'no_possible_tokens',
+ 'no_valid_user_token',
+ 'no_valid_blog_token',
+ 'unknown_token',
+ 'could_not_sign',
+ 'invalid_scheme',
+ 'invalid_secret',
+ 'invalid_token',
+ 'token_mismatch',
+ 'invalid_body',
+ 'invalid_signature',
+ 'invalid_body_hash',
+ 'invalid_nonce',
+ 'signature_mismatch',
+ 'invalid_connection_owner',
+ );
+
+ /**
+ * Holds the instance of this singleton class
+ *
+ * @since 1.14.2
+ *
+ * @var Error_Handler $instance
+ */
+ public static $instance = null;
+
+ /**
+ * Initialize instance, hookds and load verified errors handlers
+ *
+ * @since 1.14.2
+ */
+ private function __construct() {
+ defined( 'JETPACK__ERRORS_PUBLIC_KEY' ) || define( 'JETPACK__ERRORS_PUBLIC_KEY', 'KdZY80axKX+nWzfrOcizf0jqiFHnrWCl9X8yuaClKgM=' );
+
+ add_action( 'rest_api_init', array( $this, 'register_verify_error_endpoint' ) );
+
+ // Handle verified errors on admin pages.
+ add_action( 'admin_init', array( $this, 'handle_verified_errors' ) );
+
+ // If the site gets reconnected, clear errors.
+ add_action( 'jetpack_site_registered', array( $this, 'delete_all_errors' ) );
+ add_action( 'jetpack_get_site_data_success', array( $this, 'delete_all_api_errors' ) );
+ add_filter( 'jetpack_connection_disconnect_site_wpcom', array( $this, 'delete_all_errors_and_return_unfiltered_value' ) );
+ add_filter( 'jetpack_connection_delete_all_tokens', array( $this, 'delete_all_errors_and_return_unfiltered_value' ) );
+ add_action( 'jetpack_unlinked_user', array( $this, 'delete_all_errors' ) );
+ add_action( 'jetpack_updated_user_token', array( $this, 'delete_all_errors' ) );
+ }
+
+ /**
+ * Gets the list of verified errors and act upon them
+ *
+ * @since 1.14.2
+ *
+ * @return void
+ */
+ public function handle_verified_errors() {
+ $verified_errors = $this->get_verified_errors();
+ foreach ( array_keys( $verified_errors ) as $error_code ) {
+ switch ( $error_code ) {
+ case 'malformed_token':
+ case 'token_malformed':
+ case 'no_possible_tokens':
+ case 'no_valid_user_token':
+ case 'no_valid_blog_token':
+ case 'unknown_token':
+ case 'could_not_sign':
+ case 'invalid_token':
+ case 'token_mismatch':
+ case 'invalid_signature':
+ case 'signature_mismatch':
+ case 'no_user_tokens':
+ case 'no_token_for_user':
+ case 'invalid_connection_owner':
+ add_action( 'admin_notices', array( $this, 'generic_admin_notice_error' ) );
+ add_action( 'react_connection_errors_initial_state', array( $this, 'jetpack_react_dashboard_error' ) );
+ $this->error_code = $error_code;
+
+ // Since we are only generically handling errors, we don't need to trigger error messages for each one of them.
+ break 2;
+ }
+ }
+ }
+
+ /**
+ * Gets the instance of this singleton class
+ *
+ * @since 1.14.2
+ *
+ * @return Error_Handler $instance
+ */
+ public static function get_instance() {
+ if ( self::$instance === null ) {
+ self::$instance = new self();
+ }
+ return self::$instance;
+ }
+
+ /**
+ * Keep track of a connection error that was encountered
+ *
+ * @param \WP_Error $error The error object.
+ * @param boolean $force Force the report, even if should_report_error is false.
+ * @param boolean $skip_wpcom_verification Set to 'true' to verify the error locally and skip the WP.com verification.
+ *
+ * @return void
+ * @since 1.14.2
+ */
+ public function report_error( \WP_Error $error, $force = false, $skip_wpcom_verification = false ) {
+ if ( in_array( $error->get_error_code(), $this->known_errors, true ) && $this->should_report_error( $error ) || $force ) {
+ $stored_error = $this->store_error( $error );
+ if ( $stored_error ) {
+ $skip_wpcom_verification ? $this->verify_error( $stored_error ) : $this->send_error_to_wpcom( $stored_error );
+ }
+ }
+ }
+
+ /**
+ * Checks the status of the gate
+ *
+ * This protects the site (and WPCOM) against over loads.
+ *
+ * @since 1.14.2
+ *
+ * @param \WP_Error $error the error object.
+ * @return boolean $should_report True if gate is open and the error should be reported.
+ */
+ public function should_report_error( \WP_Error $error ) {
+ if ( defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG ) {
+ return true;
+ }
+
+ /**
+ * Whether to bypass the gate for the error handling
+ *
+ * By default, we only process errors once an hour for each error code.
+ * This is done to avoid overflows. If you need to disable this gate, you can set this variable to true.
+ *
+ * This filter is useful for unit testing
+ *
+ * @since 1.14.2
+ *
+ * @param boolean $bypass_gate whether to bypass the gate. Default is false, do not bypass.
+ */
+ $bypass_gate = apply_filters( 'jetpack_connection_bypass_error_reporting_gate', false );
+ if ( true === $bypass_gate ) {
+ return true;
+ }
+
+ $transient = self::ERROR_REPORTING_GATE . $error->get_error_code();
+
+ if ( get_transient( $transient ) ) {
+ return false;
+ }
+
+ set_transient( $transient, true, HOUR_IN_SECONDS );
+ return true;
+ }
+
+ /**
+ * Stores the error in the database so we know there is an issue and can inform the user
+ *
+ * @since 1.14.2
+ *
+ * @param \WP_Error $error the error object.
+ * @return boolean|array False if stored errors were not updated and the error array if it was successfully stored.
+ */
+ public function store_error( \WP_Error $error ) {
+
+ $stored_errors = $this->get_stored_errors();
+ $error_array = $this->wp_error_to_array( $error );
+ $error_code = $error->get_error_code();
+ $user_id = $error_array['user_id'];
+
+ if ( ! isset( $stored_errors[ $error_code ] ) || ! is_array( $stored_errors[ $error_code ] ) ) {
+ $stored_errors[ $error_code ] = array();
+ }
+
+ $stored_errors[ $error_code ][ $user_id ] = $error_array;
+
+ // Let's store a maximum of 5 different user ids for each error code.
+ $error_code_count = is_countable( $stored_errors[ $error_code ] ) ? count( $stored_errors[ $error_code ] ) : 0;
+ if ( $error_code_count > 5 ) {
+ // array_shift will destroy keys here because they are numeric, so manually remove first item.
+ $keys = array_keys( $stored_errors[ $error_code ] );
+ unset( $stored_errors[ $error_code ][ $keys[0] ] );
+ }
+
+ if ( update_option( self::STORED_ERRORS_OPTION, $stored_errors ) ) {
+ return $error_array;
+ }
+
+ return false;
+ }
+
+ /**
+ * Converts a WP_Error object in the array representation we store in the database
+ *
+ * @since 1.14.2
+ *
+ * @param \WP_Error $error the error object.
+ * @return boolean|array False if error is invalid or the error array
+ */
+ public function wp_error_to_array( \WP_Error $error ) {
+
+ $data = $error->get_error_data();
+
+ if ( ! isset( $data['signature_details'] ) || ! is_array( $data['signature_details'] ) ) {
+ return false;
+ }
+
+ $signature_details = $data['signature_details'];
+
+ if ( ! isset( $signature_details['token'] ) ) {
+ return false;
+ }
+
+ $user_id = $this->get_user_id_from_token( $signature_details['token'] );
+
+ $error_array = array(
+ 'error_code' => $error->get_error_code(),
+ 'user_id' => $user_id,
+ 'error_message' => $error->get_error_message(),
+ 'error_data' => $signature_details,
+ 'timestamp' => time(),
+ 'nonce' => wp_generate_password( 10, false ),
+ 'error_type' => empty( $data['error_type'] ) ? '' : $data['error_type'],
+ );
+
+ return $error_array;
+ }
+
+ /**
+ * Sends the error to WP.com to be verified
+ *
+ * @since 1.14.2
+ *
+ * @param array $error_array The array representation of the error as it is stored in the database.
+ * @return bool
+ */
+ public function send_error_to_wpcom( $error_array ) {
+
+ $blog_id = \Jetpack_Options::get_option( 'id' );
+
+ $encrypted_data = $this->encrypt_data_to_wpcom( $error_array );
+
+ if ( false === $encrypted_data ) {
+ return false;
+ }
+
+ $args = array(
+ 'body' => array(
+ 'error_data' => $encrypted_data,
+ ),
+ );
+
+ // send encrypted data to WP.com Public-API v2.
+ wp_remote_post( "https://public-api.wordpress.com/wpcom/v2/sites/{$blog_id}/jetpack-report-error/", $args );
+ return true;
+ }
+
+ /**
+ * Encrypt data to be sent over to WP.com
+ *
+ * @since 1.14.2
+ *
+ * @param array|string $data the data to be encoded.
+ * @return boolean|string The encoded string on success, false on failure
+ */
+ public function encrypt_data_to_wpcom( $data ) {
+
+ try {
+ // phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ // phpcs:disable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ $encrypted_data = base64_encode( sodium_crypto_box_seal( wp_json_encode( $data ), base64_decode( JETPACK__ERRORS_PUBLIC_KEY ) ) );
+ // phpcs:enable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ // phpcs:enable WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ } catch ( \SodiumException $e ) {
+ // error encrypting data.
+ return false;
+ }
+
+ return $encrypted_data;
+ }
+
+ /**
+ * Extracts the user ID from a token
+ *
+ * @since 1.14.2
+ *
+ * @param string $token the token used to make the request.
+ * @return string $the user id or `invalid` if user id not present.
+ */
+ public function get_user_id_from_token( $token ) {
+ $user_id = 'invalid';
+
+ if ( $token ) {
+ $parsed_token = explode( ':', wp_unslash( $token ) );
+
+ if ( isset( $parsed_token[2] ) && ctype_digit( $parsed_token[2] ) ) {
+ $user_id = $parsed_token[2];
+ }
+ }
+
+ return $user_id;
+ }
+
+ /**
+ * Gets the reported errors stored in the database
+ *
+ * @since 1.14.2
+ *
+ * @return array $errors
+ */
+ public function get_stored_errors() {
+
+ $stored_errors = get_option( self::STORED_ERRORS_OPTION );
+
+ if ( ! is_array( $stored_errors ) ) {
+ $stored_errors = array();
+ }
+
+ $stored_errors = $this->garbage_collector( $stored_errors );
+
+ return $stored_errors;
+ }
+
+ /**
+ * Gets the verified errors stored in the database
+ *
+ * @since 1.14.2
+ *
+ * @return array $errors
+ */
+ public function get_verified_errors() {
+
+ $verified_errors = get_option( self::STORED_VERIFIED_ERRORS_OPTION );
+
+ if ( ! is_array( $verified_errors ) ) {
+ $verified_errors = array();
+ }
+
+ $verified_errors = $this->garbage_collector( $verified_errors );
+
+ return $verified_errors;
+ }
+
+ /**
+ * Removes expired errors from the array
+ *
+ * This method is called by get_stored_errors and get_verified errors and filters their result
+ * Whenever a new error is stored to the database or verified, this will be triggered and the
+ * expired error will be permantently removed from the database
+ *
+ * @since 1.14.2
+ *
+ * @param array $errors array of errors as stored in the database.
+ * @return array
+ */
+ private function garbage_collector( $errors ) {
+ foreach ( $errors as $error_code => $users ) {
+ foreach ( $users as $user_id => $error ) {
+ if ( self::ERROR_LIFE_TIME < time() - (int) $error['timestamp'] ) {
+ unset( $errors[ $error_code ][ $user_id ] );
+ }
+ }
+ }
+ // Clear empty error codes.
+ $errors = array_filter(
+ $errors,
+ function ( $user_errors ) {
+ return ! empty( $user_errors );
+ }
+ );
+ return $errors;
+ }
+
+ /**
+ * Delete all stored and verified errors from the database
+ *
+ * @since 1.14.2
+ *
+ * @return void
+ */
+ public function delete_all_errors() {
+ $this->delete_stored_errors();
+ $this->delete_verified_errors();
+ }
+
+ /**
+ * Delete all stored and verified API errors from the database, leave the non-API errors intact.
+ *
+ * @since 1.54.0
+ *
+ * @return void
+ */
+ public function delete_all_api_errors() {
+ $type_filter = function ( $errors ) {
+ if ( is_array( $errors ) ) {
+ foreach ( $errors as $key => $error ) {
+ if ( ! empty( $error['error_type'] ) && in_array( $error['error_type'], array( 'xmlrpc', 'rest' ), true ) ) {
+ unset( $errors[ $key ] );
+ }
+ }
+ }
+
+ return count( $errors ) ? $errors : null;
+ };
+
+ $stored_errors = $this->get_stored_errors();
+ if ( is_array( $stored_errors ) && count( $stored_errors ) ) {
+ $stored_errors = array_filter( array_map( $type_filter, $stored_errors ) );
+ if ( count( $stored_errors ) ) {
+ update_option( static::STORED_ERRORS_OPTION, $stored_errors );
+ } else {
+ delete_option( static::STORED_ERRORS_OPTION );
+ }
+ }
+
+ $verified_errors = $this->get_verified_errors();
+ if ( is_array( $verified_errors ) && count( $verified_errors ) ) {
+ $verified_errors = array_filter( array_map( $type_filter, $verified_errors ) );
+ if ( count( $verified_errors ) ) {
+ update_option( static::STORED_VERIFIED_ERRORS_OPTION, $verified_errors );
+ } else {
+ delete_option( static::STORED_VERIFIED_ERRORS_OPTION );
+ }
+ }
+ }
+
+ /**
+ * Delete all stored and verified errors from the database and returns unfiltered value
+ *
+ * This is used to hook into a couple of filters that expect true to not short circuit the disconnection flow
+ *
+ * @since 8.9.0
+ *
+ * @param mixed $check The input sent by the filter.
+ * @return boolean
+ */
+ public function delete_all_errors_and_return_unfiltered_value( $check ) {
+ $this->delete_all_errors();
+ return $check;
+ }
+
+ /**
+ * Delete the reported errors stored in the database
+ *
+ * @since 1.14.2
+ *
+ * @return boolean True, if option is successfully deleted. False on failure.
+ */
+ public function delete_stored_errors() {
+ return delete_option( self::STORED_ERRORS_OPTION );
+ }
+
+ /**
+ * Delete the verified errors stored in the database
+ *
+ * @since 1.14.2
+ *
+ * @return boolean True, if option is successfully deleted. False on failure.
+ */
+ public function delete_verified_errors() {
+ return delete_option( self::STORED_VERIFIED_ERRORS_OPTION );
+ }
+
+ /**
+ * Gets an error based on the nonce
+ *
+ * Receives a nonce and finds the related error.
+ *
+ * @since 1.14.2
+ *
+ * @param string $nonce The nonce created for the error we want to get.
+ * @return null|array Returns the error array representation or null if error not found.
+ */
+ public function get_error_by_nonce( $nonce ) {
+ $errors = $this->get_stored_errors();
+ foreach ( $errors as $user_group ) {
+ foreach ( $user_group as $error ) {
+ if ( $error['nonce'] === $nonce ) {
+ return $error;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Adds an error to the verified error list
+ *
+ * @since 1.14.2
+ *
+ * @param array $error The error array, as it was saved in the unverified errors list.
+ * @return void
+ */
+ public function verify_error( $error ) {
+
+ $verified_errors = $this->get_verified_errors();
+ $error_code = $error['error_code'];
+ $user_id = $error['user_id'];
+
+ if ( ! isset( $verified_errors[ $error_code ] ) ) {
+ $verified_errors[ $error_code ] = array();
+ }
+
+ $verified_errors[ $error_code ][ $user_id ] = $error;
+
+ update_option( self::STORED_VERIFIED_ERRORS_OPTION, $verified_errors );
+ }
+
+ /**
+ * Register REST API end point for error hanlding.
+ *
+ * @since 1.14.2
+ *
+ * @return void
+ */
+ public function register_verify_error_endpoint() {
+ register_rest_route(
+ 'jetpack/v4',
+ '/verify_xmlrpc_error',
+ array(
+ 'methods' => \WP_REST_Server::CREATABLE,
+ 'callback' => array( $this, 'verify_xml_rpc_error' ),
+ 'permission_callback' => '__return_true',
+ 'args' => array(
+ 'nonce' => array(
+ 'required' => true,
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Handles verification that a xml rpc error is legit and came from WordPres.com
+ *
+ * @since 1.14.2
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return boolean
+ */
+ public function verify_xml_rpc_error( \WP_REST_Request $request ) {
+ $error = $this->get_error_by_nonce( $request['nonce'] );
+
+ if ( $error ) {
+ $this->verify_error( $error );
+ return new \WP_REST_Response( true, 200 );
+ }
+
+ return new \WP_REST_Response( false, 200 );
+ }
+
+ /**
+ * Prints a generic error notice for all connection errors
+ *
+ * @since 8.9.0
+ *
+ * @return void
+ */
+ public function generic_admin_notice_error() {
+ // do not add admin notice to the jetpack dashboard.
+ global $pagenow;
+ if ( 'admin.php' === $pagenow || isset( $_GET['page'] ) && 'jetpack' === $_GET['page'] ) { // phpcs:ignore
+ return;
+ }
+
+ if ( ! current_user_can( 'jetpack_connect' ) ) {
+ return;
+ }
+
+ /**
+ * Filters the message to be displayed in the admin notices area when there's a connection error.
+ *
+ * By default we don't display any errors.
+ *
+ * Return an empty value to disable the message.
+ *
+ * @since 8.9.0
+ *
+ * @param string $message The error message.
+ * @param array $errors The array of errors. See Automattic\Jetpack\Connection\Error_Handler for details on the array structure.
+ */
+ $message = apply_filters( 'jetpack_connection_error_notice_message', '', $this->get_verified_errors() );
+
+ /**
+ * Fires inside the admin_notices hook just before displaying the error message for a broken connection.
+ *
+ * If you want to disable the default message from being displayed, return an emtpy value in the jetpack_connection_error_notice_message filter.
+ *
+ * @since 8.9.0
+ *
+ * @param array $errors The array of errors. See Automattic\Jetpack\Connection\Error_Handler for details on the array structure.
+ */
+ do_action( 'jetpack_connection_error_notice', $this->get_verified_errors() );
+
+ if ( empty( $message ) ) {
+ return;
+ }
+
+ wp_admin_notice(
+ esc_html( $message ),
+ array(
+ 'type' => 'error',
+ 'dismissible' => true,
+ 'additional_classes' => array( 'jetpack-message', 'jp-connect' ),
+ 'attributes' => array( 'style' => 'display:block !important;' ),
+ )
+ );
+ }
+
+ /**
+ * Adds the error message to the Jetpack React Dashboard
+ *
+ * @since 8.9.0
+ *
+ * @param array $errors The array of errors. See Automattic\Jetpack\Connection\Error_Handler for details on the array structure.
+ * @return array
+ */
+ public function jetpack_react_dashboard_error( $errors ) {
+ $errors[] = array(
+ 'code' => 'connection_error',
+ 'message' => __( 'Your connection with WordPress.com seems to be broken. If you\'re experiencing issues, please try reconnecting.', 'jetpack-connection' ),
+ 'action' => 'reconnect',
+ 'data' => array( 'api_error_code' => $this->error_code ),
+ );
+ return $errors;
+ }
+
+ /**
+ * Check REST API response for errors, and report them to WP.com if needed.
+ *
+ * @see wp_remote_request() For more information on the $http_response array format.
+ * @param array|\WP_Error $http_response The response or WP_Error on failure.
+ * @param array $auth_data Auth data, allowed keys: `token`, `timestamp`, `nonce`, `body-hash`.
+ * @param string $url Request URL.
+ * @param string $method Request method.
+ * @param string $error_type The source of an error: 'xmlrpc' or 'rest'.
+ *
+ * @return void
+ */
+ public function check_api_response_for_errors( $http_response, $auth_data, $url, $method, $error_type ) {
+ if ( 200 === wp_remote_retrieve_response_code( $http_response ) || ! is_array( $auth_data ) || ! $url || ! $method ) {
+ return;
+ }
+
+ $body_raw = wp_remote_retrieve_body( $http_response );
+ if ( ! $body_raw ) {
+ return;
+ }
+
+ $body = json_decode( $body_raw, true );
+ if ( empty( $body['error'] ) || ( ! is_string( $body['error'] ) && ! is_int( $body['error'] ) ) ) {
+ return;
+ }
+
+ $error = new \WP_Error(
+ $body['error'],
+ empty( $body['message'] ) ? '' : $body['message'],
+ array(
+ 'signature_details' => array(
+ 'token' => empty( $auth_data['token'] ) ? '' : $auth_data['token'],
+ 'timestamp' => empty( $auth_data['timestamp'] ) ? '' : $auth_data['timestamp'],
+ 'nonce' => empty( $auth_data['nonce'] ) ? '' : $auth_data['nonce'],
+ 'body_hash' => empty( $auth_data['body_hash'] ) ? '' : $auth_data['body_hash'],
+ 'method' => $method,
+ 'url' => $url,
+ ),
+ 'error_type' => in_array( $error_type, array( 'xmlrpc', 'rest' ), true ) ? $error_type : '',
+ )
+ );
+
+ $this->report_error( $error, false, true );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-heartbeat.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-heartbeat.php
new file mode 100644
index 00000000..cc32b536
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-heartbeat.php
@@ -0,0 +1,310 @@
+cron_name, array( $this, 'cron_exec' ) );
+
+ if ( ! wp_next_scheduled( $this->cron_name ) ) {
+ // Deal with the old pre-3.0 weekly one.
+ $timestamp = wp_next_scheduled( 'jetpack_heartbeat' );
+ if ( $timestamp ) {
+ wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
+ }
+
+ wp_schedule_event( time(), 'daily', $this->cron_name );
+ }
+
+ add_filter( 'jetpack_xmlrpc_unauthenticated_methods', array( __CLASS__, 'jetpack_xmlrpc_methods' ) );
+
+ if ( defined( 'WP_CLI' ) && WP_CLI ) {
+ WP_CLI::add_command( 'jetpack-heartbeat', array( $this, 'cli_callback' ) );
+ }
+
+ add_action( 'rest_api_init', array( $this, 'initialize_rest_api' ) );
+ }
+
+ /**
+ * Method that gets executed on the wp-cron call
+ *
+ * @since 1.0.0
+ * @since-jetpack 2.3.3
+ * @global string $wp_version
+ */
+ public function cron_exec() {
+
+ $a8c_mc_stats = new A8c_Mc_Stats();
+
+ /*
+ * This should run daily. Figuring in for variances in
+ * WP_CRON, don't let it run more than every 23 hours at most.
+ *
+ * i.e. if it ran less than 23 hours ago, fail out.
+ */
+ $last = (int) Jetpack_Options::get_option( 'last_heartbeat' );
+ if ( $last && ( $last + DAY_IN_SECONDS - HOUR_IN_SECONDS > time() ) ) {
+ return;
+ }
+
+ /*
+ * Check for an identity crisis
+ *
+ * If one exists:
+ * - Bump stat for ID crisis
+ * - Email site admin about potential ID crisis
+ */
+
+ // Coming Soon!
+
+ foreach ( self::generate_stats_array( 'v2-' ) as $key => $value ) {
+ if ( is_array( $value ) ) {
+ foreach ( $value as $v ) {
+ $a8c_mc_stats->add( $key, (string) $v );
+ }
+ } else {
+ $a8c_mc_stats->add( $key, (string) $value );
+ }
+ }
+
+ Jetpack_Options::update_option( 'last_heartbeat', time() );
+
+ $a8c_mc_stats->do_server_side_stats();
+
+ /**
+ * Fires when we synchronize all registered options on heartbeat.
+ *
+ * @since 3.3.0
+ */
+ do_action( 'jetpack_heartbeat' );
+ }
+
+ /**
+ * Generates heartbeat stats data.
+ *
+ * @param string $prefix Prefix to add before stats identifier.
+ *
+ * @return array The stats array.
+ */
+ public static function generate_stats_array( $prefix = '' ) {
+
+ /**
+ * This filter is used to build the array of stats that are bumped once a day by Jetpack Heartbeat.
+ *
+ * Filter the array and add key => value pairs where
+ * * key is the stat group name
+ * * value is the stat name.
+ *
+ * Example:
+ * add_filter( 'jetpack_heartbeat_stats_array', function( $stats ) {
+ * $stats['is-https'] = is_ssl() ? 'https' : 'http';
+ * });
+ *
+ * This will bump the stats for the 'is-https/https' or 'is-https/http' stat.
+ *
+ * @param array $stats The stats to be filtered.
+ * @param string $prefix The prefix that will automatically be added at the begining at each stat group name.
+ */
+ $stats = apply_filters( 'jetpack_heartbeat_stats_array', array(), $prefix );
+ $return = array();
+
+ // Apply prefix to stats.
+ foreach ( $stats as $stat => $value ) {
+ $return[ "$prefix$stat" ] = $value;
+ }
+
+ return $return;
+ }
+
+ /**
+ * Registers jetpack.getHeartbeatData xmlrpc method
+ *
+ * @param array $methods The list of methods to be filtered.
+ * @return array $methods
+ */
+ public static function jetpack_xmlrpc_methods( $methods ) {
+ $methods['jetpack.getHeartbeatData'] = array( __CLASS__, 'xmlrpc_data_response' );
+ return $methods;
+ }
+
+ /**
+ * Handles the response for the jetpack.getHeartbeatData xmlrpc method
+ *
+ * @param array $params The parameters received in the request.
+ * @return array $params all the stats that heartbeat handles.
+ */
+ public static function xmlrpc_data_response( $params = array() ) {
+ // The WordPress XML-RPC server sets a default param of array()
+ // if no argument is passed on the request and the method handlers get this array in $params.
+ // generate_stats_array() needs a string as first argument.
+ $params = empty( $params ) ? '' : $params;
+ return self::generate_stats_array( $params );
+ }
+
+ /**
+ * Clear scheduled events
+ *
+ * @return void
+ */
+ public function deactivate() {
+ // Deal with the old pre-3.0 weekly one.
+ $timestamp = wp_next_scheduled( 'jetpack_heartbeat' );
+ if ( $timestamp ) {
+ wp_unschedule_event( $timestamp, 'jetpack_heartbeat' );
+ }
+
+ $timestamp = wp_next_scheduled( $this->cron_name );
+ wp_unschedule_event( $timestamp, $this->cron_name );
+ }
+
+ /**
+ * Interact with the Heartbeat
+ *
+ * ## OPTIONS
+ *
+ * inspect (default): Gets the list of data that is going to be sent in the heartbeat and the date/time of the last heartbeat
+ *
+ * @param array $args Arguments passed via CLI.
+ *
+ * @return void
+ */
+ public function cli_callback( $args ) {
+
+ $allowed_args = array(
+ 'inspect',
+ );
+
+ if ( isset( $args[0] ) && ! in_array( $args[0], $allowed_args, true ) ) {
+ /* translators: %s is a command like "prompt" */
+ WP_CLI::error( sprintf( __( '%s is not a valid command.', 'jetpack-connection' ), $args[0] ) );
+ }
+
+ $stats = self::generate_stats_array();
+ $formatted_stats = array();
+
+ foreach ( $stats as $stat_name => $bin ) {
+ $formatted_stats[] = array(
+ 'Stat name' => $stat_name,
+ 'Bin' => $bin,
+ );
+ }
+
+ WP_CLI\Utils\format_items( 'table', $formatted_stats, array( 'Stat name', 'Bin' ) );
+
+ $last_heartbeat = Jetpack_Options::get_option( 'last_heartbeat' );
+
+ if ( $last_heartbeat ) {
+ $last_date = gmdate( 'Y-m-d H:i:s', $last_heartbeat );
+ /* translators: %s is the full datetime of the last heart beat e.g. 2020-01-01 12:21:23 */
+ WP_CLI::line( sprintf( __( 'Last heartbeat sent at: %s', 'jetpack-connection' ), $last_date ) );
+ }
+ }
+
+ /**
+ * Initialize the heartbeat REST API.
+ *
+ * @return void
+ */
+ public function initialize_rest_api() {
+ register_rest_route(
+ 'jetpack/v4',
+ '/heartbeat/data',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'rest_heartbeat_data' ),
+ 'permission_callback' => array( $this, 'rest_heartbeat_data_permission_check' ),
+ 'args' => array(
+ 'prefix' => array(
+ 'description' => __( 'Prefix to add before the stats identifiers.', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Endpoint to retrieve the heartbeat data.
+ *
+ * @param WP_REST_Request $request The request data.
+ *
+ * @since 2.7.0
+ *
+ * @return array
+ */
+ public function rest_heartbeat_data( WP_REST_Request $request ) {
+ return static::generate_stats_array( $request->get_param( 'prefix' ) );
+ }
+
+ /**
+ * Check permissions for the `get_heartbeat_data` endpoint.
+ *
+ * @return true|WP_Error
+ */
+ public function rest_heartbeat_data_permission_check() {
+ if ( current_user_can( 'jetpack_connect' ) ) {
+ return true;
+ }
+
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'invalid_permission_heartbeat_data', REST_Connector::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php
new file mode 100644
index 00000000..5f44ab4a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-initial-state.php
@@ -0,0 +1,73 @@
+ esc_url_raw( rest_url() ),
+ 'apiNonce' => wp_create_nonce( 'wp_rest' ),
+ 'registrationNonce' => wp_create_nonce( 'jetpack-registration-nonce' ),
+ 'connectionStatus' => REST_Connector::connection_status( false ),
+ 'userConnectionData' => REST_Connector::get_user_connection_data( false ),
+ 'connectedPlugins' => REST_Connector::get_connection_plugins( false ),
+ 'wpVersion' => $wp_version,
+ 'siteSuffix' => $status->get_site_suffix(),
+ 'connectionErrors' => Error_Handler::get_instance()->get_verified_errors(),
+ 'isOfflineMode' => $status->is_offline_mode(),
+ 'calypsoEnv' => ( new Status\Host() )->get_calypso_env(),
+ );
+ }
+
+ /**
+ * Set the connection script data.
+ *
+ * @param array $data The script data.
+ */
+ public static function set_connection_script_data( $data ) {
+
+ $data['connection'] = self::get_data();
+
+ return $data;
+ }
+
+ /**
+ * Render the initial state into a JavaScript variable.
+ *
+ * @return string
+ */
+ public static function render() {
+ return 'var JP_CONNECTION_INITIAL_STATE; typeof JP_CONNECTION_INITIAL_STATE === "object" || (JP_CONNECTION_INITIAL_STATE = JSON.parse(decodeURIComponent("' . rawurlencode( wp_json_encode( self::get_data() ) ) . '")));';
+ }
+
+ /**
+ * Render the initial state using an inline script.
+ *
+ * @param string $handle The JS script handle.
+ *
+ * @return void
+ */
+ public static function render_script( $handle ) {
+ wp_add_inline_script( $handle, static::render(), 'before' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php
new file mode 100644
index 00000000..3765b877
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-manager.php
@@ -0,0 +1,2659 @@
+set_plugin_instance( new Plugin( $plugin_slug ) );
+ }
+ }
+
+ /**
+ * Initializes required listeners. This is done separately from the constructors
+ * because some objects sometimes need to instantiate separate objects of this class.
+ *
+ * @todo Implement a proper nonce verification.
+ */
+ public static function configure() {
+ $manager = new self();
+
+ add_filter(
+ 'jetpack_constant_default_value',
+ __NAMESPACE__ . '\Utils::jetpack_api_constant_filter',
+ 10,
+ 2
+ );
+
+ $manager->setup_xmlrpc_handlers(
+ null,
+ $manager->has_connected_owner(),
+ $manager->verify_xml_rpc_signature()
+ );
+
+ $manager->error_handler = Error_Handler::get_instance();
+
+ if ( $manager->is_connected() ) {
+ add_filter( 'xmlrpc_methods', array( $manager, 'public_xmlrpc_methods' ) );
+ add_filter( 'shutdown', array( new Package_Version_Tracker(), 'maybe_update_package_versions' ) );
+ }
+
+ add_action( 'rest_api_init', array( $manager, 'initialize_rest_api_registration_connector' ) );
+
+ ( new Nonce_Handler() )->init_schedule();
+
+ add_action( 'plugins_loaded', __NAMESPACE__ . '\Plugin_Storage::configure', 100 );
+
+ add_filter( 'map_meta_cap', array( $manager, 'jetpack_connection_custom_caps' ), 1, 4 );
+
+ Heartbeat::init();
+ add_filter( 'jetpack_heartbeat_stats_array', array( $manager, 'add_stats_to_heartbeat' ) );
+
+ Webhooks::init( $manager );
+
+ // Unlink user before deleting the user from WP.com.
+ add_action( 'deleted_user', array( $manager, 'disconnect_user_force' ), 9, 1 );
+ add_action( 'remove_user_from_blog', array( $manager, 'disconnect_user_force' ), 9, 1 );
+
+ // Set up package version hook.
+ add_filter( 'jetpack_package_versions', __NAMESPACE__ . '\Package_Version::send_package_version_to_tracker' );
+
+ if ( defined( 'JETPACK__SANDBOX_DOMAIN' ) && JETPACK__SANDBOX_DOMAIN ) {
+ ( new Server_Sandbox() )->init();
+ }
+
+ // Initialize connection notices.
+ new Connection_Notice();
+
+ // Initialize token locks.
+ new Tokens_Locks();
+
+ // Initial Partner management.
+ Partner::init();
+ }
+
+ /**
+ * Sets up the XMLRPC request handlers.
+ *
+ * @since 1.25.0 Deprecate $is_active param.
+ * @since 2.8.4 Deprecate $request_params param.
+ *
+ * @param array|null $deprecated Deprecated. Not used.
+ * @param bool $has_connected_owner Whether the site has a connected owner.
+ * @param bool $is_signed whether the signature check has been successful.
+ * @param Jetpack_XMLRPC_Server $xmlrpc_server (optional) an instance of the server to use instead of instantiating a new one.
+ */
+ public function setup_xmlrpc_handlers(
+ $deprecated,
+ $has_connected_owner,
+ $is_signed,
+ Jetpack_XMLRPC_Server $xmlrpc_server = null
+ ) {
+ add_filter( 'xmlrpc_blog_options', array( $this, 'xmlrpc_options' ), 1000, 2 );
+ if ( $deprecated !== null ) {
+ _deprecated_argument( __METHOD__, '2.8.4' );
+ }
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- We are using the 'for' request param to early return unless it's 'jetpack'.
+ if ( ! isset( $_GET['for'] ) || 'jetpack' !== $_GET['for'] ) {
+ return false;
+ }
+
+ // Alternate XML-RPC, via ?for=jetpack&jetpack=comms.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- This just determines whether to handle the request as an XML-RPC request. The actual XML-RPC endpoints do the appropriate nonce checking where applicable. Plus we make sure to clear all cookies via require_jetpack_authentication called later in method.
+ if ( isset( $_GET['jetpack'] ) && 'comms' === $_GET['jetpack'] ) {
+ if ( ! Constants::is_defined( 'XMLRPC_REQUEST' ) ) {
+ // Use the real constant here for WordPress' sake.
+ define( 'XMLRPC_REQUEST', true );
+ }
+
+ add_action( 'template_redirect', array( $this, 'alternate_xmlrpc' ) );
+
+ add_filter( 'xmlrpc_methods', array( $this, 'remove_non_jetpack_xmlrpc_methods' ), 1000 );
+ }
+
+ if ( ! Constants::get_constant( 'XMLRPC_REQUEST' ) ) {
+ return false;
+ }
+
+ // Display errors can cause the XML to be not well formed.
+ // This only affects Jetpack XML-RPC endpoints received from WordPress.com servers.
+ // All other XML-RPC requests are unaffected.
+ @ini_set( 'display_errors', false ); // phpcs:ignore
+
+ if ( $xmlrpc_server ) {
+ $this->xmlrpc_server = $xmlrpc_server;
+ } else {
+ $this->xmlrpc_server = new Jetpack_XMLRPC_Server();
+ }
+
+ $this->require_jetpack_authentication();
+
+ if ( $is_signed ) {
+ // If the site is connected either at a site or user level and the request is signed, expose the methods.
+ // The callback is responsible to determine whether the request is signed with blog or user token and act accordingly.
+ // The actual API methods.
+ $callback = array( $this->xmlrpc_server, 'xmlrpc_methods' );
+
+ // Hack to preserve $HTTP_RAW_POST_DATA.
+ add_filter( 'xmlrpc_methods', array( $this, 'xmlrpc_methods' ) );
+
+ } elseif ( $has_connected_owner && ! $is_signed ) {
+ // The jetpack.authorize method should be available for unauthenticated users on a site with an
+ // active Jetpack connection, so that additional users can link their account.
+ $callback = array( $this->xmlrpc_server, 'authorize_xmlrpc_methods' );
+ } else {
+ // Any other unsigned request should expose the bootstrap methods.
+ $callback = array( $this->xmlrpc_server, 'bootstrap_xmlrpc_methods' );
+ new XMLRPC_Connector( $this );
+ }
+
+ add_filter( 'xmlrpc_methods', $callback );
+
+ // Now that no one can authenticate, and we're whitelisting all XML-RPC methods, force enable_xmlrpc on.
+ add_filter( 'pre_option_enable_xmlrpc', '__return_true' );
+ return true;
+ }
+
+ /**
+ * Initializes the REST API connector on the init hook.
+ */
+ public function initialize_rest_api_registration_connector() {
+ new REST_Connector( $this );
+ }
+
+ /**
+ * Since a lot of hosts use a hammer approach to "protecting" WordPress sites,
+ * and just blanket block all requests to /xmlrpc.php, or apply other overly-sensitive
+ * security/firewall policies, we provide our own alternate XML RPC API endpoint
+ * which is accessible via a different URI. Most of the below is copied directly
+ * from /xmlrpc.php so that we're replicating it as closely as possible.
+ *
+ * @todo Tighten $wp_xmlrpc_server_class a bit to make sure it doesn't do bad things.
+ *
+ * @return never
+ */
+ public function alternate_xmlrpc() {
+ // Some browser-embedded clients send cookies. We don't want them.
+ $_COOKIE = array();
+
+ include_once ABSPATH . 'wp-admin/includes/admin.php';
+ include_once ABSPATH . WPINC . '/class-IXR.php';
+ include_once ABSPATH . WPINC . '/class-wp-xmlrpc-server.php';
+
+ /**
+ * Filters the class used for handling XML-RPC requests.
+ *
+ * @since 1.7.0
+ * @since-jetpack 3.1.0
+ *
+ * @param string $class The name of the XML-RPC server class.
+ */
+ $wp_xmlrpc_server_class = apply_filters( 'wp_xmlrpc_server_class', 'wp_xmlrpc_server' );
+ $wp_xmlrpc_server = new $wp_xmlrpc_server_class();
+
+ // Fire off the request.
+ nocache_headers();
+ $wp_xmlrpc_server->serve_request();
+
+ exit;
+ }
+
+ /**
+ * Removes all XML-RPC methods that are not `jetpack.*`.
+ * Only used in our alternate XML-RPC endpoint, where we want to
+ * ensure that Core and other plugins' methods are not exposed.
+ *
+ * @param array $methods a list of registered WordPress XMLRPC methods.
+ * @return array filtered $methods
+ */
+ public function remove_non_jetpack_xmlrpc_methods( $methods ) {
+ $jetpack_methods = array();
+
+ foreach ( $methods as $method => $callback ) {
+ if ( str_starts_with( $method, 'jetpack.' ) ) {
+ $jetpack_methods[ $method ] = $callback;
+ }
+ }
+
+ return $jetpack_methods;
+ }
+
+ /**
+ * Removes all other authentication methods not to allow other
+ * methods to validate unauthenticated requests.
+ */
+ public function require_jetpack_authentication() {
+ // Don't let anyone authenticate.
+ $_COOKIE = array();
+ remove_all_filters( 'authenticate' );
+ remove_all_actions( 'wp_login_failed' );
+
+ if ( $this->is_connected() ) {
+ // Allow Jetpack authentication.
+ add_filter( 'authenticate', array( $this, 'authenticate_jetpack' ), 10, 3 );
+ }
+ }
+
+ /**
+ * Authenticates XML-RPC and other requests from the Jetpack Server
+ *
+ * @param WP_User|Mixed $user user object if authenticated.
+ * @param String $username username.
+ * @param String $password password string.
+ * @return WP_User|Mixed authenticated user or error.
+ */
+ public function authenticate_jetpack( $user, $username, $password ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ if ( is_a( $user, '\\WP_User' ) ) {
+ return $user;
+ }
+
+ $token_details = $this->verify_xml_rpc_signature();
+
+ if ( ! $token_details ) {
+ return $user;
+ }
+
+ if ( 'user' !== $token_details['type'] ) {
+ return $user;
+ }
+
+ if ( ! $token_details['user_id'] ) {
+ return $user;
+ }
+
+ nocache_headers();
+
+ return new \WP_User( $token_details['user_id'] );
+ }
+
+ /**
+ * Verifies the signature of the current request.
+ *
+ * @return false|array
+ */
+ public function verify_xml_rpc_signature() {
+ if ( $this->xmlrpc_verification === null ) {
+ $this->xmlrpc_verification = $this->internal_verify_xml_rpc_signature();
+
+ if ( is_wp_error( $this->xmlrpc_verification ) ) {
+ /**
+ * Action for logging XMLRPC signature verification errors. This data is sensitive.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.5.0
+ *
+ * @param WP_Error $signature_verification_error The verification error
+ */
+ do_action( 'jetpack_verify_signature_error', $this->xmlrpc_verification );
+
+ Error_Handler::get_instance()->report_error( $this->xmlrpc_verification );
+
+ }
+ }
+
+ return is_wp_error( $this->xmlrpc_verification ) ? false : $this->xmlrpc_verification;
+ }
+
+ /**
+ * Verifies the signature of the current request.
+ *
+ * This function has side effects and should not be used. Instead,
+ * use the memoized version `->verify_xml_rpc_signature()`.
+ *
+ * @internal
+ * @todo Refactor to use proper nonce verification.
+ */
+ private function internal_verify_xml_rpc_signature() {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+ // It's not for us.
+ if ( ! isset( $_GET['token'] ) || empty( $_GET['signature'] ) ) {
+ return false;
+ }
+
+ $signature_details = array(
+ 'token' => isset( $_GET['token'] ) ? wp_unslash( $_GET['token'] ) : '',
+ 'timestamp' => isset( $_GET['timestamp'] ) ? wp_unslash( $_GET['timestamp'] ) : '',
+ 'nonce' => isset( $_GET['nonce'] ) ? wp_unslash( $_GET['nonce'] ) : '',
+ 'body_hash' => isset( $_GET['body-hash'] ) ? wp_unslash( $_GET['body-hash'] ) : '',
+ 'method' => isset( $_SERVER['REQUEST_METHOD'] ) ? wp_unslash( $_SERVER['REQUEST_METHOD'] ) : null,
+ 'url' => wp_unslash( ( isset( $_SERVER['HTTP_HOST'] ) ? $_SERVER['HTTP_HOST'] : null ) . ( isset( $_SERVER['REQUEST_URI'] ) ? $_SERVER['REQUEST_URI'] : null ) ), // Temp - will get real signature URL later.
+ 'signature' => isset( $_GET['signature'] ) ? wp_unslash( $_GET['signature'] ) : '',
+ );
+
+ $error_type = 'xmlrpc';
+
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ @list( $token_key, $version, $user_id ) = explode( ':', wp_unslash( $_GET['token'] ) );
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
+
+ $jetpack_api_version = Constants::get_constant( 'JETPACK__API_VERSION' );
+
+ if (
+ empty( $token_key )
+ ||
+ empty( $version ) || (string) $jetpack_api_version !== $version ) {
+ return new \WP_Error( 'malformed_token', 'Malformed token in request', compact( 'signature_details', 'error_type' ) );
+ }
+
+ if ( '0' === $user_id ) {
+ $token_type = 'blog';
+ $user_id = 0;
+ } else {
+ $token_type = 'user';
+ if ( empty( $user_id ) || ! ctype_digit( $user_id ) ) {
+ return new \WP_Error(
+ 'malformed_user_id',
+ 'Malformed user_id in request',
+ compact( 'signature_details', 'error_type' )
+ );
+ }
+ $user_id = (int) $user_id;
+
+ $user = new \WP_User( $user_id );
+ if ( ! $user || ! $user->exists() ) {
+ return new \WP_Error(
+ 'unknown_user',
+ sprintf( 'User %d does not exist', $user_id ),
+ compact( 'signature_details', 'error_type' )
+ );
+ }
+ }
+
+ $token = $this->get_tokens()->get_access_token( $user_id, $token_key, false );
+ if ( is_wp_error( $token ) ) {
+ $token->add_data( compact( 'signature_details', 'error_type' ) );
+ return $token;
+ } elseif ( ! $token ) {
+ return new \WP_Error(
+ 'unknown_token',
+ sprintf( 'Token %s:%s:%d does not exist', $token_key, $version, $user_id ),
+ compact( 'signature_details', 'error_type' )
+ );
+ }
+
+ $jetpack_signature = new \Jetpack_Signature( $token->secret, (int) \Jetpack_Options::get_option( 'time_diff' ) );
+ // phpcs:disable WordPress.Security.NonceVerification.Missing -- Used to verify a cryptographic signature of the post data. Also a nonce is verified later in the function.
+ if ( isset( $_POST['_jetpack_is_multipart'] ) ) {
+ $post_data = $_POST; // We need all of $_POST in order to verify a cryptographic signature of the post data.
+ $file_hashes = array();
+ foreach ( $post_data as $post_data_key => $post_data_value ) {
+ if ( ! str_starts_with( $post_data_key, '_jetpack_file_hmac_' ) ) {
+ continue;
+ }
+ $post_data_key = substr( $post_data_key, strlen( '_jetpack_file_hmac_' ) );
+ $file_hashes[ $post_data_key ] = $post_data_value;
+ }
+
+ foreach ( $file_hashes as $post_data_key => $post_data_value ) {
+ unset( $post_data[ "_jetpack_file_hmac_{$post_data_key}" ] );
+ $post_data[ $post_data_key ] = $post_data_value;
+ }
+
+ ksort( $post_data );
+
+ $body = http_build_query( stripslashes_deep( $post_data ) );
+ } elseif ( $this->raw_post_data === null ) {
+ $body = file_get_contents( 'php://input' );
+ } else {
+ $body = null;
+ }
+ // phpcs:enable
+
+ $signature = $jetpack_signature->sign_current_request(
+ array( 'body' => $body === null ? $this->raw_post_data : $body )
+ );
+
+ $signature_details['url'] = $jetpack_signature->current_request_url;
+
+ if ( ! $signature ) {
+ return new \WP_Error(
+ 'could_not_sign',
+ 'Unknown signature error',
+ compact( 'signature_details', 'error_type' )
+ );
+ } elseif ( is_wp_error( $signature ) ) {
+ return $signature;
+ }
+
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ $timestamp = (int) $_GET['timestamp'];
+ $nonce = wp_unslash( (string) $_GET['nonce'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- WP Core doesn't sanitize nonces either.
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ // Use up the nonce regardless of whether the signature matches.
+ if ( ! ( new Nonce_Handler() )->add( $timestamp, $nonce ) ) {
+ return new \WP_Error(
+ 'invalid_nonce',
+ 'Could not add nonce',
+ compact( 'signature_details', 'error_type' )
+ );
+ }
+
+ // Be careful about what you do with this debugging data.
+ // If a malicious requester has access to the expected signature,
+ // bad things might be possible.
+ $signature_details['expected'] = $signature;
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! hash_equals( $signature, wp_unslash( $_GET['signature'] ) ) ) {
+ return new \WP_Error(
+ 'signature_mismatch',
+ 'Signature mismatch',
+ compact( 'signature_details', 'error_type' )
+ );
+ }
+
+ /**
+ * Action for additional token checking.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.7.0
+ *
+ * @param array $post_data request data.
+ * @param array $token_data token data.
+ */
+ return apply_filters(
+ 'jetpack_signature_check_token',
+ array(
+ 'type' => $token_type,
+ 'token_key' => $token_key,
+ 'user_id' => $token->external_user_id,
+ ),
+ $token,
+ $this->raw_post_data
+ );
+ }
+
+ /**
+ * Returns true if the current site is connected to WordPress.com and has the minimum requirements to enable Jetpack UI.
+ *
+ * This method is deprecated since version 1.25.0 of this package. Please use has_connected_owner instead.
+ *
+ * Since this method has a wide spread use, we decided not to throw any deprecation warnings for now.
+ *
+ * @deprecated 1.25.0
+ * @see Manager::has_connected_owner
+ * @return Boolean is the site connected?
+ */
+ public function is_active() {
+ return (bool) $this->get_tokens()->get_access_token( true );
+ }
+
+ /**
+ * Obtains an instance of the Tokens class.
+ *
+ * @return Tokens the Tokens object
+ */
+ public function get_tokens() {
+ return new Tokens();
+ }
+
+ /**
+ * Returns true if the site has both a token and a blog id, which indicates a site has been registered.
+ *
+ * @access public
+ * @deprecated 1.12.1 Use is_connected instead
+ * @see Manager::is_connected
+ *
+ * @return bool
+ */
+ public function is_registered() {
+ _deprecated_function( __METHOD__, '1.12.1' );
+ return $this->is_connected();
+ }
+
+ /**
+ * Returns true if the site has both a token and a blog id, which indicates a site has been connected.
+ *
+ * @access public
+ * @since 1.21.1
+ *
+ * @return bool
+ */
+ public function is_connected() {
+ $has_blog_id = (bool) \Jetpack_Options::get_option( 'id' );
+ $has_blog_token = (bool) $this->get_tokens()->get_access_token();
+ return $has_blog_id && $has_blog_token;
+ }
+
+ /**
+ * Returns true if the site has at least one connected administrator.
+ *
+ * @access public
+ * @since 1.21.1
+ *
+ * @return bool
+ */
+ public function has_connected_admin() {
+ return (bool) count( $this->get_connected_users( 'manage_options' ) );
+ }
+
+ /**
+ * Returns true if the site has any connected user.
+ *
+ * @access public
+ * @since 1.21.1
+ *
+ * @return bool
+ */
+ public function has_connected_user() {
+ return (bool) count( $this->get_connected_users( 'any', 1 ) );
+ }
+
+ /**
+ * Returns an array of users that have user tokens for communicating with wpcom.
+ * Able to select by specific capability.
+ *
+ * @since 9.9.1 Added $limit parameter.
+ *
+ * @param string $capability The capability of the user.
+ * @param int|null $limit How many connected users to get before returning.
+ * @return WP_User[] Array of WP_User objects if found.
+ */
+ public function get_connected_users( $capability = 'any', $limit = null ) {
+ $connected_users = array();
+ $user_tokens = $this->get_tokens()->get_user_tokens();
+
+ if ( ! is_array( $user_tokens ) || empty( $user_tokens ) ) {
+ return $connected_users;
+ }
+ $connected_user_ids = array_keys( $user_tokens );
+
+ if ( ! empty( $connected_user_ids ) ) {
+ foreach ( $connected_user_ids as $id ) {
+ // Check for capability.
+ if ( 'any' !== $capability && ! user_can( $id, $capability ) ) {
+ continue;
+ }
+
+ $user_data = get_userdata( $id );
+ if ( $user_data instanceof \WP_User ) {
+ $connected_users[] = $user_data;
+ if ( $limit && count( $connected_users ) >= $limit ) {
+ return $connected_users;
+ }
+ }
+ }
+ }
+
+ return $connected_users;
+ }
+
+ /**
+ * Returns true if the site has a connected Blog owner (master_user).
+ *
+ * @access public
+ * @since 1.21.1
+ *
+ * @return bool
+ */
+ public function has_connected_owner() {
+ return (bool) $this->get_connection_owner_id();
+ }
+
+ /**
+ * Returns true if the site is connected only at a site level.
+ *
+ * Note that we are explicitly checking for the existence of the master_user option in order to account for cases where we don't have any user tokens (user-level connection) but the master_user option is set, which could be the result of a problematic user connection.
+ *
+ * @access public
+ * @since 1.25.0
+ * @deprecated 1.27.0
+ *
+ * @return bool
+ */
+ public function is_userless() {
+ _deprecated_function( __METHOD__, '1.27.0', 'Automattic\\Jetpack\\Connection\\Manager::is_site_connection' );
+ return $this->is_site_connection();
+ }
+
+ /**
+ * Returns true if the site is connected only at a site level.
+ *
+ * Note that we are explicitly checking for the existence of the master_user option in order to account for cases where we don't have any user tokens (user-level connection) but the master_user option is set, which could be the result of a problematic user connection.
+ *
+ * @access public
+ * @since 1.27.0
+ *
+ * @return bool
+ */
+ public function is_site_connection() {
+ return $this->is_connected() && ! $this->has_connected_user() && ! \Jetpack_Options::get_option( 'master_user' );
+ }
+
+ /**
+ * Checks to see if the connection owner of the site is missing.
+ *
+ * @return bool
+ */
+ public function is_missing_connection_owner() {
+ $connection_owner = $this->get_connection_owner_id();
+ if ( ! get_user_by( 'id', $connection_owner ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns true if the user with the specified identifier is connected to
+ * WordPress.com.
+ *
+ * @param int $user_id the user identifier. Default is the current user.
+ * @return bool Boolean is the user connected?
+ */
+ public function is_user_connected( $user_id = false ) {
+ $user_id = false === $user_id ? get_current_user_id() : absint( $user_id );
+ if ( ! $user_id ) {
+ return false;
+ }
+
+ return (bool) $this->get_tokens()->get_access_token( $user_id );
+ }
+
+ /**
+ * Returns the local user ID of the connection owner.
+ *
+ * @return bool|int Returns the ID of the connection owner or False if no connection owner found.
+ */
+ public function get_connection_owner_id() {
+ $owner = $this->get_connection_owner();
+ return $owner instanceof \WP_User ? $owner->ID : false;
+ }
+
+ /**
+ * Get the wpcom user data of the current|specified connected user.
+ *
+ * @todo Refactor to properly load the XMLRPC client independently.
+ *
+ * @param Integer $user_id the user identifier.
+ * @return bool|array An array with the WPCOM user data on success, false otherwise.
+ */
+ public function get_connected_user_data( $user_id = null ) {
+ if ( ! $user_id ) {
+ $user_id = get_current_user_id();
+ }
+
+ // Check if the user is connected and return false otherwise.
+ if ( ! $this->is_user_connected( $user_id ) ) {
+ return false;
+ }
+
+ $transient_key = "jetpack_connected_user_data_$user_id";
+ $cached_user_data = get_transient( $transient_key );
+
+ if ( $cached_user_data ) {
+ return $cached_user_data;
+ }
+
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => $user_id,
+ )
+ );
+ $xml->query( 'wpcom.getUser' );
+
+ if ( ! $xml->isError() ) {
+ $user_data = $xml->getResponse();
+ set_transient( $transient_key, $xml->getResponse(), DAY_IN_SECONDS );
+ return $user_data;
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns a user object of the connection owner.
+ *
+ * @return WP_User|false False if no connection owner found.
+ */
+ public function get_connection_owner() {
+
+ $user_id = \Jetpack_Options::get_option( 'master_user' );
+
+ if ( ! $user_id ) {
+ return false;
+ }
+
+ // Make sure user is connected.
+ $user_token = $this->get_tokens()->get_access_token( $user_id );
+
+ $connection_owner = false;
+
+ if ( $user_token && is_object( $user_token ) && isset( $user_token->external_user_id ) ) {
+ $connection_owner = get_userdata( $user_token->external_user_id );
+ }
+
+ if ( $connection_owner === false ) {
+ Error_Handler::get_instance()->report_error(
+ new WP_Error(
+ 'invalid_connection_owner',
+ 'Invalid connection owner',
+ array(
+ 'user_id' => $user_id,
+ 'has_user_token' => (bool) $user_token,
+ 'error_type' => 'connection',
+ 'signature_details' => array(
+ 'token' => '',
+ ),
+ )
+ ),
+ false,
+ true
+ );
+ }
+
+ return $connection_owner;
+ }
+
+ /**
+ * Returns true if the provided user is the Jetpack connection owner.
+ * If user ID is not specified, the current user will be used.
+ *
+ * @param Integer|Boolean $user_id the user identifier. False for current user.
+ * @return Boolean True the user the connection owner, false otherwise.
+ */
+ public function is_connection_owner( $user_id = false ) {
+ if ( ! $user_id ) {
+ $user_id = get_current_user_id();
+ }
+
+ return ( (int) $user_id ) === $this->get_connection_owner_id();
+ }
+
+ /**
+ * Connects the user with a specified ID to a WordPress.com user using the
+ * remote login flow.
+ *
+ * @access public
+ *
+ * @param Integer $user_id (optional) the user identifier, defaults to current user.
+ * @param String $redirect_url the URL to redirect the user to for processing, defaults to
+ * admin_url().
+ * @return WP_Error only in case of a failed user lookup.
+ */
+ public function connect_user( $user_id = null, $redirect_url = null ) {
+ $user = null;
+ if ( null === $user_id ) {
+ $user = wp_get_current_user();
+ } else {
+ $user = get_user_by( 'ID', $user_id );
+ }
+
+ if ( empty( $user ) ) {
+ return new \WP_Error( 'user_not_found', 'Attempting to connect a non-existent user.' );
+ }
+
+ if ( null === $redirect_url ) {
+ $redirect_url = admin_url();
+ }
+
+ // Using wp_redirect intentionally because we're redirecting outside.
+ wp_redirect( $this->get_authorization_url( $user, $redirect_url ) ); // phpcs:ignore WordPress.Security.SafeRedirect
+ exit();
+ }
+
+ /**
+ * Force user disconnect.
+ *
+ * @param int $user_id Local (external) user ID.
+ *
+ * @return bool
+ */
+ public function disconnect_user_force( $user_id ) {
+ if ( ! (int) $user_id ) {
+ // Missing user ID.
+ return false;
+ }
+
+ return $this->disconnect_user( $user_id, true, true );
+ }
+
+ /**
+ * Unlinks the current user from the linked WordPress.com user.
+ *
+ * @access public
+ * @static
+ *
+ * @todo Refactor to properly load the XMLRPC client independently.
+ *
+ * @param Integer $user_id the user identifier.
+ * @param bool $can_overwrite_primary_user Allow for the primary user to be disconnected.
+ * @param bool $force_disconnect_locally Disconnect user locally even if we were unable to disconnect them from WP.com.
+ * @return Boolean Whether the disconnection of the user was successful.
+ */
+ public function disconnect_user( $user_id = null, $can_overwrite_primary_user = false, $force_disconnect_locally = false ) {
+ $user_id = empty( $user_id ) ? get_current_user_id() : (int) $user_id;
+ $is_primary_user = Jetpack_Options::get_option( 'master_user' ) === $user_id;
+
+ if ( $is_primary_user && ! $can_overwrite_primary_user ) {
+ return false;
+ }
+
+ if ( in_array( $user_id, self::$disconnected_users, true ) ) {
+ // The user is already disconnected.
+ return false;
+ }
+
+ // Attempt to disconnect the user from WordPress.com.
+ $is_disconnected_from_wpcom = $this->unlink_user_from_wpcom( $user_id );
+
+ $is_disconnected_locally = false;
+ if ( $is_disconnected_from_wpcom || $force_disconnect_locally ) {
+ // Disconnect the user locally.
+ $is_disconnected_locally = $this->get_tokens()->disconnect_user( $user_id );
+
+ if ( $is_disconnected_locally ) {
+ // Delete cached connected user data.
+ $transient_key = "jetpack_connected_user_data_$user_id";
+ delete_transient( $transient_key );
+
+ /**
+ * Fires after the current user has been unlinked from WordPress.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 4.1.0
+ *
+ * @param int $user_id The current user's ID.
+ */
+ do_action( 'jetpack_unlinked_user', $user_id );
+
+ if ( $is_primary_user ) {
+ Jetpack_Options::delete_option( 'master_user' );
+ }
+ }
+ }
+
+ self::$disconnected_users[] = $user_id;
+
+ return $is_disconnected_from_wpcom && $is_disconnected_locally;
+ }
+
+ /**
+ * Request to wpcom for a user to be unlinked from their WordPress.com account
+ *
+ * @param int $user_id The user identifier.
+ *
+ * @return bool Whether the disconnection of the user was successful.
+ */
+ public function unlink_user_from_wpcom( $user_id ) {
+ // Attempt to disconnect the user from WordPress.com.
+ $xml = new Jetpack_IXR_Client();
+
+ $xml->query( 'jetpack.unlink_user', $user_id );
+ if ( $xml->isError() ) {
+ return false;
+ }
+
+ return (bool) $xml->getResponse();
+ }
+
+ /**
+ * Update the connection owner.
+ *
+ * @since 1.29.0
+ *
+ * @param Integer $new_owner_id The ID of the user to become the connection owner.
+ *
+ * @return true|WP_Error True if owner successfully changed, WP_Error otherwise.
+ */
+ public function update_connection_owner( $new_owner_id ) {
+ $roles = new Roles();
+ if ( ! user_can( $new_owner_id, $roles->translate_role_to_cap( 'administrator' ) ) ) {
+ return new WP_Error(
+ 'new_owner_not_admin',
+ __( 'New owner is not admin', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ $old_owner_id = $this->get_connection_owner_id();
+
+ if ( $old_owner_id === $new_owner_id ) {
+ return new WP_Error(
+ 'new_owner_is_existing_owner',
+ __( 'New owner is same as existing owner', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ if ( ! $this->is_user_connected( $new_owner_id ) ) {
+ return new WP_Error(
+ 'new_owner_not_connected',
+ __( 'New owner is not connected', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ // Notify WPCOM about the connection owner change.
+ $owner_updated_wpcom = $this->update_connection_owner_wpcom( $new_owner_id );
+
+ if ( $owner_updated_wpcom ) {
+ // Update the connection owner in Jetpack only if they were successfully updated on WPCOM.
+ // This will ensure consistency with WPCOM.
+ \Jetpack_Options::update_option( 'master_user', $new_owner_id );
+
+ // Track it.
+ ( new Tracking() )->record_user_event( 'set_connection_owner_success' );
+
+ return true;
+ }
+ return new WP_Error(
+ 'error_setting_new_owner',
+ __( 'Could not confirm new owner.', 'jetpack-connection' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
+ * Request to WPCOM to update the connection owner.
+ *
+ * @since 1.29.0
+ *
+ * @param Integer $new_owner_id The ID of the user to become the connection owner.
+ *
+ * @return Boolean Whether the ownership transfer was successful.
+ */
+ public function update_connection_owner_wpcom( $new_owner_id ) {
+ // Notify WPCOM about the connection owner change.
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'user_id' => get_current_user_id(),
+ )
+ );
+ $xml->query(
+ 'jetpack.switchBlogOwner',
+ array(
+ 'new_blog_owner' => $new_owner_id,
+ )
+ );
+ if ( $xml->isError() ) {
+ return false;
+ }
+
+ return (bool) $xml->getResponse();
+ }
+
+ /**
+ * Returns the requested Jetpack API URL.
+ *
+ * @param String $relative_url the relative API path.
+ * @return String API URL.
+ */
+ public function api_url( $relative_url ) {
+ $api_base = Constants::get_constant( 'JETPACK__API_BASE' );
+ $api_version = '/' . Constants::get_constant( 'JETPACK__API_VERSION' ) . '/';
+
+ /**
+ * Filters the API URL that Jetpack uses for server communication.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param String $url the generated URL.
+ * @param String $relative_url the relative URL that was passed as an argument.
+ * @param String $api_base the API base string that is being used.
+ * @param String $api_version the API version string that is being used.
+ */
+ return apply_filters(
+ 'jetpack_api_url',
+ rtrim( $api_base . $relative_url, '/\\' ) . $api_version,
+ $relative_url,
+ $api_base,
+ $api_version
+ );
+ }
+
+ /**
+ * Returns the Jetpack XMLRPC WordPress.com API endpoint URL.
+ *
+ * @return String XMLRPC API URL.
+ */
+ public function xmlrpc_api_url() {
+ $base = preg_replace(
+ '#(https?://[^?/]+)(/?.*)?$#',
+ '\\1',
+ Constants::get_constant( 'JETPACK__API_BASE' )
+ );
+ return untrailingslashit( $base ) . '/xmlrpc.php';
+ }
+
+ /**
+ * Attempts Jetpack registration which sets up the site for connection. Should
+ * remain public because the call to action comes from the current site, not from
+ * WordPress.com.
+ *
+ * @param String $api_endpoint (optional) an API endpoint to use, defaults to 'register'.
+ * @return true|WP_Error The error object.
+ */
+ public function register( $api_endpoint = 'register' ) {
+ // Clean-up leftover tokens just in-case.
+ // This fixes an edge case that was preventing users to register when the blog token was missing but
+ // there were still leftover user tokens present.
+ $this->delete_all_connection_tokens( true );
+
+ add_action( 'pre_update_jetpack_option_register', array( '\\Jetpack_Options', 'delete_option' ) );
+ $secrets = ( new Secrets() )->generate( 'register', get_current_user_id(), 600 );
+
+ if ( false === $secrets ) {
+ return new WP_Error( 'cannot_save_secrets', __( 'Jetpack experienced an issue trying to save options (cannot_save_secrets). We suggest that you contact your hosting provider, and ask them for help checking that the options table is writable on your site.', 'jetpack-connection' ) );
+ }
+
+ if (
+ empty( $secrets['secret_1'] ) ||
+ empty( $secrets['secret_2'] ) ||
+ empty( $secrets['exp'] )
+ ) {
+ return new \WP_Error( 'missing_secrets' );
+ }
+
+ // Better to try (and fail) to set a higher timeout than this system
+ // supports than to have register fail for more users than it should.
+ $timeout = $this->set_min_time_limit( 60 ) / 2;
+
+ $gmt_offset = get_option( 'gmt_offset' );
+ if ( ! $gmt_offset ) {
+ $gmt_offset = 0;
+ }
+
+ $stats_options = get_option( 'stats_options' );
+ $stats_id = isset( $stats_options['blog_id'] )
+ ? $stats_options['blog_id']
+ : null;
+
+ /* This action is documented in src/class-package-version-tracker.php */
+ $package_versions = apply_filters( 'jetpack_package_versions', array() );
+
+ $active_plugins_using_connection = Plugin_Storage::get_all();
+
+ /**
+ * Filters the request body for additional property addition.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.7.0
+ *
+ * @param array $post_data request data.
+ * @param Array $token_data token data.
+ */
+ $body = apply_filters(
+ 'jetpack_register_request_body',
+ array_merge(
+ array(
+ 'siteurl' => Urls::site_url(),
+ 'home' => Urls::home_url(),
+ 'gmt_offset' => $gmt_offset,
+ 'timezone_string' => (string) get_option( 'timezone_string' ),
+ 'site_name' => (string) get_option( 'blogname' ),
+ 'secret_1' => $secrets['secret_1'],
+ 'secret_2' => $secrets['secret_2'],
+ 'site_lang' => get_locale(),
+ 'timeout' => $timeout,
+ 'stats_id' => $stats_id,
+ 'state' => get_current_user_id(),
+ 'site_created' => $this->get_assumed_site_creation_date(),
+ 'jetpack_version' => Constants::get_constant( 'JETPACK__VERSION' ),
+ 'ABSPATH' => Constants::get_constant( 'ABSPATH' ),
+ 'current_user_email' => wp_get_current_user()->user_email,
+ 'connect_plugin' => $this->get_plugin() ? $this->get_plugin()->get_slug() : null,
+ 'package_versions' => $package_versions,
+ 'active_connected_plugins' => $active_plugins_using_connection,
+ ),
+ self::$extra_register_params
+ )
+ );
+
+ $args = array(
+ 'method' => 'POST',
+ 'body' => $body,
+ 'headers' => array(
+ 'Accept' => 'application/json',
+ ),
+ 'timeout' => $timeout,
+ );
+
+ $args['body'] = static::apply_activation_source_to_args( $args['body'] );
+
+ // TODO: fix URLs for bad hosts.
+ $response = Client::_wp_remote_request(
+ $this->api_url( $api_endpoint ),
+ $args,
+ true
+ );
+
+ // Make sure the response is valid and does not contain any Jetpack errors.
+ $registration_details = $this->validate_remote_register_response( $response );
+
+ if ( is_wp_error( $registration_details ) ) {
+ return $registration_details;
+ } elseif ( ! $registration_details ) {
+ return new \WP_Error(
+ 'unknown_error',
+ 'Unknown error registering your Jetpack site.',
+ wp_remote_retrieve_response_code( $response )
+ );
+ }
+
+ if ( empty( $registration_details->jetpack_secret ) || ! is_string( $registration_details->jetpack_secret ) ) {
+ return new \WP_Error(
+ 'jetpack_secret',
+ 'Unable to validate registration of your Jetpack site.',
+ wp_remote_retrieve_response_code( $response )
+ );
+ }
+
+ if ( isset( $registration_details->jetpack_public ) ) {
+ $jetpack_public = (int) $registration_details->jetpack_public;
+ } else {
+ $jetpack_public = false;
+ }
+
+ Jetpack_Options::update_options(
+ array(
+ 'id' => (int) $registration_details->jetpack_id,
+ 'public' => $jetpack_public,
+ )
+ );
+
+ update_option( Package_Version_Tracker::PACKAGE_VERSION_OPTION, $package_versions );
+
+ $this->get_tokens()->update_blog_token( (string) $registration_details->jetpack_secret );
+
+ if ( ! Jetpack_Options::get_option( 'id' ) || ! $this->get_tokens()->get_access_token() ) {
+ return new WP_Error(
+ 'connection_data_save_failed',
+ 'Failed to save connection data in the database'
+ );
+ }
+
+ $alternate_authorization_url = isset( $registration_details->alternate_authorization_url ) ? $registration_details->alternate_authorization_url : '';
+
+ add_filter(
+ 'jetpack_register_site_rest_response',
+ function ( $response ) use ( $alternate_authorization_url ) {
+ $response['alternateAuthorizeUrl'] = $alternate_authorization_url;
+ return $response;
+ }
+ );
+
+ /**
+ * Fires when a site is registered on WordPress.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 3.7.0
+ *
+ * @param int $json->jetpack_id Jetpack Blog ID.
+ * @param string $json->jetpack_secret Jetpack Blog Token.
+ * @param int|bool $jetpack_public Is the site public.
+ */
+ do_action(
+ 'jetpack_site_registered',
+ $registration_details->jetpack_id,
+ $registration_details->jetpack_secret,
+ $jetpack_public
+ );
+
+ if ( isset( $registration_details->token ) ) {
+ /**
+ * Fires when a user token is sent along with the registration data.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.6.0
+ *
+ * @param object $token the administrator token for the newly registered site.
+ */
+ do_action( 'jetpack_site_registered_user_token', $registration_details->token );
+ }
+
+ return true;
+ }
+
+ /**
+ * Attempts Jetpack registration.
+ *
+ * @param bool $tos_agree Whether the user agreed to TOS.
+ *
+ * @return bool|WP_Error
+ */
+ public function try_registration( $tos_agree = true ) {
+ if ( $tos_agree ) {
+ $terms_of_service = new Terms_Of_Service();
+ $terms_of_service->agree();
+ }
+
+ /**
+ * Action fired when the user attempts the registration.
+ *
+ * @since 1.26.0
+ */
+ $pre_register = apply_filters( 'jetpack_pre_register', null );
+
+ if ( is_wp_error( $pre_register ) ) {
+ return $pre_register;
+ }
+
+ $tracking_data = array();
+
+ if ( null !== $this->get_plugin() ) {
+ $tracking_data['plugin_slug'] = $this->get_plugin()->get_slug();
+ }
+
+ $tracking = new Tracking();
+ $tracking->record_user_event( 'jpc_register_begin', $tracking_data );
+
+ add_filter( 'jetpack_register_request_body', array( Utils::class, 'filter_register_request_body' ) );
+
+ $result = $this->register();
+
+ remove_filter( 'jetpack_register_request_body', array( Utils::class, 'filter_register_request_body' ) );
+
+ // If there was an error with registration and the site was not registered, record this so we can show a message.
+ if ( ! $result || is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Adds a parameter to the register request body
+ *
+ * @since 1.26.0
+ *
+ * @param string $name The name of the parameter to be added.
+ * @param string $value The value of the parameter to be added.
+ *
+ * @throws \InvalidArgumentException If supplied arguments are not strings.
+ * @return void
+ */
+ public function add_register_request_param( $name, $value ) {
+ if ( ! is_string( $name ) || ! is_string( $value ) ) {
+ throw new \InvalidArgumentException( 'name and value must be strings' );
+ }
+ self::$extra_register_params[ $name ] = $value;
+ }
+
+ /**
+ * Takes the response from the Jetpack register new site endpoint and
+ * verifies it worked properly.
+ *
+ * @since 1.7.0
+ * @since-jetpack 2.6.0
+ *
+ * @param Mixed $response the response object, or the error object.
+ * @return string|WP_Error A JSON object on success or WP_Error on failures
+ **/
+ protected function validate_remote_register_response( $response ) {
+ if ( is_wp_error( $response ) ) {
+ return new \WP_Error(
+ 'register_http_request_failed',
+ $response->get_error_message()
+ );
+ }
+
+ $code = wp_remote_retrieve_response_code( $response );
+ $entity = wp_remote_retrieve_body( $response );
+
+ if ( $entity ) {
+ $registration_response = json_decode( $entity );
+ } else {
+ $registration_response = false;
+ }
+
+ $code_type = (int) ( $code / 100 );
+ if ( 5 === $code_type ) {
+ return new \WP_Error( 'wpcom_5??', $code );
+ } elseif ( 408 === $code ) {
+ return new \WP_Error( 'wpcom_408', $code );
+ } elseif ( ! empty( $registration_response->error ) ) {
+ if (
+ 'xml_rpc-32700' === $registration_response->error
+ && ! function_exists( 'xml_parser_create' )
+ ) {
+ $error_description = __( "PHP's XML extension is not available. Jetpack requires the XML extension to communicate with WordPress.com. Please contact your hosting provider to enable PHP's XML extension.", 'jetpack-connection' );
+ } else {
+ $error_description = isset( $registration_response->error_description )
+ ? (string) $registration_response->error_description
+ : '';
+ }
+
+ return new \WP_Error(
+ (string) $registration_response->error,
+ $error_description,
+ $code
+ );
+ } elseif ( 200 !== $code ) {
+ return new \WP_Error( 'wpcom_bad_response', $code );
+ }
+
+ // Jetpack ID error block.
+ if ( empty( $registration_response->jetpack_id ) ) {
+ return new \WP_Error(
+ 'jetpack_id',
+ /* translators: %s is an error message string */
+ sprintf( __( 'Error Details: Jetpack ID is empty. Do not publicly post this error message! %s', 'jetpack-connection' ), $entity ),
+ $entity
+ );
+ } elseif ( ! is_scalar( $registration_response->jetpack_id ) ) {
+ return new \WP_Error(
+ 'jetpack_id',
+ /* translators: %s is an error message string */
+ sprintf( __( 'Error Details: Jetpack ID is not a scalar. Do not publicly post this error message! %s', 'jetpack-connection' ), $entity ),
+ $entity
+ );
+ } elseif ( preg_match( '/[^0-9]/', $registration_response->jetpack_id ) ) {
+ return new \WP_Error(
+ 'jetpack_id',
+ /* translators: %s is an error message string */
+ sprintf( __( 'Error Details: Jetpack ID begins with a numeral. Do not publicly post this error message! %s', 'jetpack-connection' ), $entity ),
+ $entity
+ );
+ }
+
+ return $registration_response;
+ }
+
+ /**
+ * Adds a used nonce to a list of known nonces.
+ *
+ * @param int $timestamp the current request timestamp.
+ * @param string $nonce the nonce value.
+ * @return bool whether the nonce is unique or not.
+ *
+ * @deprecated since 1.24.0
+ * @see Nonce_Handler::add()
+ */
+ public function add_nonce( $timestamp, $nonce ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Nonce_Handler::add' );
+ return ( new Nonce_Handler() )->add( $timestamp, $nonce );
+ }
+
+ /**
+ * Cleans nonces that were saved when calling ::add_nonce.
+ *
+ * @todo Properly prepare the query before executing it.
+ *
+ * @param bool $all whether to clean even non-expired nonces.
+ *
+ * @deprecated since 1.24.0
+ * @see Nonce_Handler::clean_all()
+ */
+ public function clean_nonces( $all = false ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Nonce_Handler::clean_all' );
+ ( new Nonce_Handler() )->clean_all( $all ? PHP_INT_MAX : ( time() - Nonce_Handler::LIFETIME ) );
+ }
+
+ /**
+ * Sets the Connection custom capabilities.
+ *
+ * @param string[] $caps Array of the user's capabilities.
+ * @param string $cap Capability name.
+ * @param int $user_id The user ID.
+ * @param array $args Adds the context to the cap. Typically the object ID.
+ */
+ public function jetpack_connection_custom_caps( $caps, $cap, $user_id, $args ) { // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
+ switch ( $cap ) {
+ case 'jetpack_connect':
+ case 'jetpack_reconnect':
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ if ( $is_offline_mode ) {
+ $caps = array( 'do_not_allow' );
+ break;
+ }
+ // Pass through. If it's not offline mode, these should match disconnect.
+ // Let users disconnect if it's offline mode, just in case things glitch.
+ case 'jetpack_disconnect':
+ /**
+ * Filters the jetpack_disconnect capability.
+ *
+ * @since 1.14.2
+ *
+ * @param array An array containing the capability name.
+ */
+ $caps = apply_filters( 'jetpack_disconnect_cap', array( 'manage_options' ) );
+ break;
+ case 'jetpack_connect_user':
+ $is_offline_mode = ( new Status() )->is_offline_mode();
+ if ( $is_offline_mode ) {
+ $caps = array( 'do_not_allow' );
+ break;
+ }
+ // With site connections in mind, non-admin users can connect their account only if a connection owner exists.
+ $caps = $this->has_connected_owner() ? array( 'read' ) : array( 'manage_options' );
+ break;
+ }
+ return $caps;
+ }
+
+ /**
+ * Builds the timeout limit for queries talking with the wpcom servers.
+ *
+ * Based on local php max_execution_time in php.ini
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.4.0
+ * @return int
+ **/
+ public function get_max_execution_time() {
+ $timeout = (int) ini_get( 'max_execution_time' );
+
+ // Ensure exec time set in php.ini.
+ if ( ! $timeout ) {
+ $timeout = 30;
+ }
+ return $timeout;
+ }
+
+ /**
+ * Sets a minimum request timeout, and returns the current timeout
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.4.0
+ * @param Integer $min_timeout the minimum timeout value.
+ **/
+ public function set_min_time_limit( $min_timeout ) {
+ $timeout = $this->get_max_execution_time();
+ if ( $timeout < $min_timeout ) {
+ $timeout = $min_timeout;
+ set_time_limit( $timeout );
+ }
+ return $timeout;
+ }
+
+ /**
+ * Get our assumed site creation date.
+ * Calculated based on the earlier date of either:
+ * - Earliest admin user registration date.
+ * - Earliest date of post of any post type.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.2.0
+ *
+ * @return string Assumed site creation date and time.
+ */
+ public function get_assumed_site_creation_date() {
+ $cached_date = get_transient( 'jetpack_assumed_site_creation_date' );
+ if ( ! empty( $cached_date ) ) {
+ return $cached_date;
+ }
+
+ $earliest_registered_users = get_users(
+ array(
+ 'role' => 'administrator',
+ 'orderby' => 'user_registered',
+ 'order' => 'ASC',
+ 'fields' => array( 'user_registered' ),
+ 'number' => 1,
+ )
+ );
+ $earliest_registration_date = $earliest_registered_users[0]->user_registered;
+
+ $earliest_posts = get_posts(
+ array(
+ 'posts_per_page' => 1,
+ 'post_type' => 'any',
+ 'post_status' => 'any',
+ 'orderby' => 'date',
+ 'order' => 'ASC',
+ )
+ );
+
+ // If there are no posts at all, we'll count only on user registration date.
+ if ( $earliest_posts ) {
+ $earliest_post_date = $earliest_posts[0]->post_date;
+ } else {
+ $earliest_post_date = PHP_INT_MAX;
+ }
+
+ $assumed_date = min( $earliest_registration_date, $earliest_post_date );
+ set_transient( 'jetpack_assumed_site_creation_date', $assumed_date );
+
+ return $assumed_date;
+ }
+
+ /**
+ * Adds the activation source string as a parameter to passed arguments.
+ *
+ * @todo Refactor to use rawurlencode() instead of urlencode().
+ *
+ * @param array $args arguments that need to have the source added.
+ * @return array $amended arguments.
+ */
+ public static function apply_activation_source_to_args( $args ) {
+ list( $activation_source_name, $activation_source_keyword ) = get_option( 'jetpack_activation_source' );
+
+ if ( $activation_source_name ) {
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
+ $args['_as'] = urlencode( $activation_source_name );
+ }
+
+ if ( $activation_source_keyword ) {
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.urlencode_urlencode
+ $args['_ak'] = urlencode( $activation_source_keyword );
+ }
+
+ return $args;
+ }
+
+ /**
+ * Generates two secret tokens and the end of life timestamp for them.
+ *
+ * @param String $action The action name.
+ * @param Integer $user_id The user identifier.
+ * @param Integer $exp Expiration time in seconds.
+ */
+ public function generate_secrets( $action, $user_id = false, $exp = 600 ) {
+ return ( new Secrets() )->generate( $action, $user_id, $exp );
+ }
+
+ /**
+ * Returns two secret tokens and the end of life timestamp for them.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Secrets->get() instead.
+ *
+ * @param String $action The action name.
+ * @param Integer $user_id The user identifier.
+ * @return string|array an array of secrets or an error string.
+ */
+ public function get_secrets( $action, $user_id ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Secrets->get' );
+ return ( new Secrets() )->get( $action, $user_id );
+ }
+
+ /**
+ * Deletes secret tokens in case they, for example, have expired.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Secrets->delete() instead.
+ *
+ * @param String $action The action name.
+ * @param Integer $user_id The user identifier.
+ */
+ public function delete_secrets( $action, $user_id ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Secrets->delete' );
+ ( new Secrets() )->delete( $action, $user_id );
+ }
+
+ /**
+ * Deletes all connection tokens and transients from the local Jetpack site.
+ * If the plugin object has been provided in the constructor, the function first checks
+ * whether it's the only active connection.
+ * If there are any other connections, the function will do nothing and return `false`
+ * (unless `$ignore_connected_plugins` is set to `true`).
+ *
+ * @param bool $ignore_connected_plugins Delete the tokens even if there are other connected plugins.
+ *
+ * @return bool True if disconnected successfully, false otherwise.
+ */
+ public function delete_all_connection_tokens( $ignore_connected_plugins = false ) {
+ // refuse to delete if we're not the last Jetpack plugin installed.
+ if ( ! $ignore_connected_plugins && null !== $this->plugin && ! $this->plugin->is_only() ) {
+ return false;
+ }
+
+ /**
+ * Fires upon the disconnect attempt.
+ * Return `false` to prevent the disconnect.
+ *
+ * @since 1.14.2
+ */
+ if ( ! apply_filters( 'jetpack_connection_delete_all_tokens', true ) ) {
+ return false;
+ }
+
+ \Jetpack_Options::delete_option(
+ array(
+ 'master_user',
+ 'time_diff',
+ 'fallback_no_verify_ssl_certs',
+ )
+ );
+
+ ( new Secrets() )->delete_all();
+ $this->get_tokens()->delete_all();
+
+ // Delete cached connected user data.
+ $transient_key = 'jetpack_connected_user_data_' . get_current_user_id();
+ delete_transient( $transient_key );
+
+ // Delete all XML-RPC errors.
+ Error_Handler::get_instance()->delete_all_errors();
+
+ return true;
+ }
+
+ /**
+ * Tells WordPress.com to disconnect the site and clear all tokens from cached site.
+ * If the plugin object has been provided in the constructor, the function first check
+ * whether it's the only active connection.
+ * If there are any other connections, the function will do nothing and return `false`
+ * (unless `$ignore_connected_plugins` is set to `true`).
+ *
+ * @param bool $ignore_connected_plugins Delete the tokens even if there are other connected plugins.
+ *
+ * @return bool True if disconnected successfully, false otherwise.
+ */
+ public function disconnect_site_wpcom( $ignore_connected_plugins = false ) {
+ if ( ! $ignore_connected_plugins && null !== $this->plugin && ! $this->plugin->is_only() ) {
+ return false;
+ }
+
+ if ( ( new Status() )->is_offline_mode() && ! apply_filters( 'jetpack_connection_disconnect_site_wpcom_offline_mode', false ) ) {
+ // Prevent potential disconnect of the live site by removing WPCOM tokens.
+ return false;
+ }
+
+ /**
+ * Fires upon the disconnect attempt.
+ * Return `false` to prevent the disconnect.
+ *
+ * @since 1.14.2
+ */
+ if ( ! apply_filters( 'jetpack_connection_disconnect_site_wpcom', true, $this ) ) {
+ return false;
+ }
+
+ $xml = new Jetpack_IXR_Client();
+ $xml->query( 'jetpack.deregister', get_current_user_id() );
+
+ return true;
+ }
+
+ /**
+ * Disconnect the plugin and remove the tokens.
+ * This function will automatically perform "soft" or "hard" disconnect depending on whether other plugins are using the connection.
+ * This is a proxy method to simplify the Connection package API.
+ *
+ * @see Manager::disconnect_site()
+ *
+ * @param boolean $disconnect_wpcom Should disconnect_site_wpcom be called.
+ * @param bool $ignore_connected_plugins Delete the tokens even if there are other connected plugins.
+ * @return bool
+ */
+ public function remove_connection( $disconnect_wpcom = true, $ignore_connected_plugins = false ) {
+
+ $this->disconnect_site( $disconnect_wpcom, $ignore_connected_plugins );
+
+ return true;
+ }
+
+ /**
+ * Completely clearing up the connection, and initiating reconnect.
+ *
+ * @return true|WP_Error True if reconnected successfully, a `WP_Error` object otherwise.
+ */
+ public function reconnect() {
+ ( new Tracking() )->record_user_event( 'restore_connection_reconnect' );
+
+ $this->disconnect_site_wpcom( true );
+
+ return $this->register();
+ }
+
+ /**
+ * Validate the tokens, and refresh the invalid ones.
+ *
+ * @return string|bool|WP_Error True if connection restored or string indicating what's to be done next. A `WP_Error` object or false otherwise.
+ */
+ public function restore() {
+ // If this is a site connection we need to trigger a full reconnection as our only secure means of
+ // communication with WPCOM, aka the blog token, is compromised.
+ if ( $this->is_site_connection() ) {
+ return $this->reconnect();
+ }
+
+ $validate_tokens_response = $this->get_tokens()->validate();
+
+ // If token validation failed, trigger a full reconnection.
+ if ( is_array( $validate_tokens_response ) &&
+ isset( $validate_tokens_response['blog_token']['is_healthy'] ) &&
+ isset( $validate_tokens_response['user_token']['is_healthy'] ) ) {
+ $blog_token_healthy = $validate_tokens_response['blog_token']['is_healthy'];
+ $user_token_healthy = $validate_tokens_response['user_token']['is_healthy'];
+ } else {
+ $blog_token_healthy = false;
+ $user_token_healthy = false;
+ }
+
+ // Tokens are both valid, or both invalid. We can't fix the problem we don't see, so the full reconnection is needed.
+ if ( $blog_token_healthy === $user_token_healthy ) {
+ $result = $this->reconnect();
+ return ( true === $result ) ? 'authorize' : $result;
+ }
+
+ if ( ! $blog_token_healthy ) {
+ return $this->refresh_blog_token();
+ }
+
+ if ( ! $user_token_healthy ) {
+ return ( true === $this->refresh_user_token() ) ? 'authorize' : false;
+ }
+
+ return false;
+ }
+
+ /**
+ * Responds to a WordPress.com call to register the current site.
+ * Should be changed to protected.
+ *
+ * @param array $registration_data Array of [ secret_1, user_id ].
+ */
+ public function handle_registration( array $registration_data ) {
+ list( $registration_secret_1, $registration_user_id ) = $registration_data;
+ if ( empty( $registration_user_id ) ) {
+ return new \WP_Error( 'registration_state_invalid', __( 'Invalid Registration State', 'jetpack-connection' ), 400 );
+ }
+
+ return ( new Secrets() )->verify( 'register', $registration_secret_1, (int) $registration_user_id );
+ }
+
+ /**
+ * Perform the API request to validate the blog and user tokens.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Tokens->validate_tokens() instead.
+ *
+ * @param int|null $user_id ID of the user we need to validate token for. Current user's ID by default.
+ *
+ * @return array|false|WP_Error The API response: `array( 'blog_token_is_healthy' => true|false, 'user_token_is_healthy' => true|false )`.
+ */
+ public function validate_tokens( $user_id = null ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Tokens->validate' );
+ return $this->get_tokens()->validate( $user_id );
+ }
+
+ /**
+ * Verify a Previously Generated Secret.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Secrets->verify() instead.
+ *
+ * @param string $action The type of secret to verify.
+ * @param string $secret_1 The secret string to compare to what is stored.
+ * @param int $user_id The user ID of the owner of the secret.
+ * @return \WP_Error|string WP_Error on failure, secret_2 on success.
+ */
+ public function verify_secrets( $action, $secret_1, $user_id ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Secrets->verify' );
+ return ( new Secrets() )->verify( $action, $secret_1, $user_id );
+ }
+
+ /**
+ * Responds to a WordPress.com call to authorize the current user.
+ * Should be changed to protected.
+ */
+ public function handle_authorization() {
+ }
+
+ /**
+ * Obtains the auth token.
+ *
+ * @param array $data The request data.
+ * @return object|\WP_Error Returns the auth token on success.
+ * Returns a \WP_Error on failure.
+ */
+ public function get_token( $data ) {
+ return $this->get_tokens()->get( $data, $this->api_url( 'token' ) );
+ }
+
+ /**
+ * Builds a URL to the Jetpack connection auth page.
+ *
+ * @since 2.7.6 Added optional $from and $raw parameters.
+ *
+ * @param WP_User|null $user (optional) defaults to the current logged in user.
+ * @param string|null $redirect (optional) a redirect URL to use instead of the default.
+ * @param bool|string $from If not false, adds 'from=$from' param to the connect URL.
+ * @param bool $raw If true, URL will not be escaped.
+ *
+ * @return string Connect URL.
+ */
+ public function get_authorization_url( $user = null, $redirect = null, $from = false, $raw = false ) {
+ if ( empty( $user ) ) {
+ $user = wp_get_current_user();
+ }
+
+ $roles = new Roles();
+ $role = $roles->translate_user_to_role( $user );
+ $signed_role = $this->get_tokens()->sign_role( $role );
+
+ /**
+ * Filter the URL of the first time the user gets redirected back to your site for connection
+ * data processing.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param string $redirect_url Defaults to the site admin URL.
+ */
+ $processing_url = apply_filters( 'jetpack_connect_processing_url', admin_url( 'admin.php' ) );
+
+ /**
+ * Filter the URL to redirect the user back to when the authorization process
+ * is complete.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param string $redirect_url Defaults to the site URL.
+ */
+ $redirect = apply_filters( 'jetpack_connect_redirect_url', $redirect );
+
+ $secrets = ( new Secrets() )->generate( 'authorize', $user->ID, 2 * HOUR_IN_SECONDS );
+
+ /**
+ * Filter the type of authorization.
+ * 'calypso' completes authorization on wordpress.com/jetpack/connect
+ * while 'jetpack' ( or any other value ) completes the authorization at jetpack.wordpress.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 4.3.3
+ *
+ * @param string $auth_type Defaults to 'calypso', can also be 'jetpack'.
+ */
+ $auth_type = apply_filters( 'jetpack_auth_type', 'calypso' );
+
+ /**
+ * Filters the user connection request data for additional property addition.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param array $request_data request data.
+ */
+ $body = apply_filters(
+ 'jetpack_connect_request_body',
+ array(
+ 'response_type' => 'code',
+ 'client_id' => \Jetpack_Options::get_option( 'id' ),
+ 'redirect_uri' => add_query_arg(
+ array(
+ 'handler' => 'jetpack-connection-webhooks',
+ 'action' => 'authorize',
+ '_wpnonce' => wp_create_nonce( "jetpack-authorize_{$role}_{$redirect}" ),
+ 'redirect' => $redirect ? rawurlencode( $redirect ) : false,
+ ),
+ esc_url( $processing_url )
+ ),
+ 'state' => $user->ID,
+ 'scope' => $signed_role,
+ 'user_email' => $user->user_email,
+ 'user_login' => $user->user_login,
+ 'is_active' => $this->has_connected_owner(), // TODO Deprecate this.
+ 'jp_version' => (string) Constants::get_constant( 'JETPACK__VERSION' ),
+ 'auth_type' => $auth_type,
+ 'secret' => $secrets['secret_1'],
+ 'blogname' => get_option( 'blogname' ),
+ 'site_url' => Urls::site_url(),
+ 'home_url' => Urls::home_url(),
+ 'site_icon' => get_site_icon_url(),
+ 'site_lang' => get_locale(),
+ 'site_created' => $this->get_assumed_site_creation_date(),
+ 'allow_site_connection' => ! $this->has_connected_owner(),
+ 'calypso_env' => ( new Host() )->get_calypso_env(),
+ 'source' => ( new Host() )->get_source_query(),
+ )
+ );
+
+ $body = static::apply_activation_source_to_args( urlencode_deep( $body ) );
+
+ $api_url = $this->api_url( 'authorize' );
+
+ $url = add_query_arg( $body, $api_url );
+
+ if ( is_network_admin() ) {
+ $url = add_query_arg( 'is_multisite', network_admin_url( 'admin.php?page=jetpack-settings' ), $url );
+ }
+
+ if ( $from ) {
+ $url = add_query_arg( 'from', $from, $url );
+ }
+
+ if ( $raw ) {
+ $url = esc_url_raw( $url );
+ }
+
+ /**
+ * Filter the URL used when connecting a user to a WordPress.com account.
+ *
+ * @since 2.0.0
+ * @since 2.7.6 Added $raw parameter.
+ *
+ * @param string $url Connection URL.
+ * @param bool $raw If true, URL will not be escaped.
+ */
+ return apply_filters( 'jetpack_build_authorize_url', $url, $raw );
+ }
+
+ /**
+ * Authorizes the user by obtaining and storing the user token.
+ *
+ * @param array $data The request data.
+ * @return string|\WP_Error Returns a string on success.
+ * Returns a \WP_Error on failure.
+ */
+ public function authorize( $data = array() ) {
+ /**
+ * Action fired when user authorization starts.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ */
+ do_action( 'jetpack_authorize_starting' );
+
+ $roles = new Roles();
+ $role = $roles->translate_current_user_to_role();
+
+ if ( ! $role ) {
+ return new \WP_Error( 'no_role', 'Invalid request.', 400 );
+ }
+
+ $cap = $roles->translate_role_to_cap( $role );
+ if ( ! $cap ) {
+ return new \WP_Error( 'no_cap', 'Invalid request.', 400 );
+ }
+
+ if ( ! empty( $data['error'] ) ) {
+ return new \WP_Error( $data['error'], 'Error included in the request.', 400 );
+ }
+
+ if ( ! isset( $data['state'] ) ) {
+ return new \WP_Error( 'no_state', 'Request must include state.', 400 );
+ }
+
+ if ( ! ctype_digit( $data['state'] ) ) {
+ return new \WP_Error( $data['error'], 'State must be an integer.', 400 );
+ }
+
+ $current_user_id = get_current_user_id();
+ if ( $current_user_id !== (int) $data['state'] ) {
+ return new \WP_Error( 'wrong_state', 'State does not match current user.', 400 );
+ }
+
+ if ( empty( $data['code'] ) ) {
+ return new \WP_Error( 'no_code', 'Request must include an authorization code.', 400 );
+ }
+
+ $token = $this->get_tokens()->get( $data, $this->api_url( 'token' ) );
+
+ if ( is_wp_error( $token ) ) {
+ $code = $token->get_error_code();
+ if ( empty( $code ) ) {
+ $code = 'invalid_token';
+ }
+ return new \WP_Error( $code, $token->get_error_message(), 400 );
+ }
+
+ if ( ! $token ) {
+ return new \WP_Error( 'no_token', 'Error generating token.', 400 );
+ }
+
+ $is_connection_owner = ! $this->has_connected_owner();
+
+ $this->get_tokens()->update_user_token( $current_user_id, sprintf( '%s.%d', $token, $current_user_id ), $is_connection_owner );
+
+ /**
+ * Fires after user has successfully received an auth token.
+ *
+ * @since 1.7.0
+ * @since-jetpack 3.9.0
+ */
+ do_action( 'jetpack_user_authorized' );
+
+ if ( ! $is_connection_owner ) {
+ /**
+ * Action fired when a secondary user has been authorized.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ */
+ do_action( 'jetpack_authorize_ending_linked' );
+ return 'linked';
+ }
+
+ /**
+ * Action fired when the master user has been authorized.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param array $data The request data.
+ */
+ do_action( 'jetpack_authorize_ending_authorized', $data );
+
+ \Jetpack_Options::delete_raw_option( 'jetpack_last_connect_url_check' );
+
+ ( new Nonce_Handler() )->reschedule();
+
+ return 'authorized';
+ }
+
+ /**
+ * Disconnects from the Jetpack servers.
+ * Forgets all connection details and tells the Jetpack servers to do the same.
+ *
+ * @param boolean $disconnect_wpcom Should disconnect_site_wpcom be called.
+ * @param bool $ignore_connected_plugins Delete the tokens even if there are other connected plugins.
+ */
+ public function disconnect_site( $disconnect_wpcom = true, $ignore_connected_plugins = true ) {
+ if ( ! $ignore_connected_plugins && null !== $this->plugin && ! $this->plugin->is_only() ) {
+ return false;
+ }
+
+ wp_clear_scheduled_hook( 'jetpack_clean_nonces' );
+
+ ( new Nonce_Handler() )->clean_all();
+
+ /**
+ * Fires before a site is disconnected.
+ *
+ * @since 1.36.3
+ */
+ do_action( 'jetpack_site_before_disconnected' );
+
+ // If the site is in an IDC because sync is not allowed,
+ // let's make sure to not disconnect the production site.
+ if ( $disconnect_wpcom ) {
+ $tracking = new Tracking();
+ $tracking->record_user_event( 'disconnect_site', array() );
+
+ $this->disconnect_site_wpcom( $ignore_connected_plugins );
+ }
+
+ $this->delete_all_connection_tokens( $ignore_connected_plugins );
+
+ // Remove tracked package versions, since they depend on the Jetpack Connection.
+ delete_option( Package_Version_Tracker::PACKAGE_VERSION_OPTION );
+
+ $jetpack_unique_connection = \Jetpack_Options::get_option( 'unique_connection' );
+ if ( $jetpack_unique_connection ) {
+ // Check then record unique disconnection if site has never been disconnected previously.
+ if ( - 1 === $jetpack_unique_connection['disconnected'] ) {
+ $jetpack_unique_connection['disconnected'] = 1;
+ } else {
+ if ( 0 === $jetpack_unique_connection['disconnected'] ) {
+ $a8c_mc_stats_instance = new A8c_Mc_Stats();
+ $a8c_mc_stats_instance->add( 'connections', 'unique-disconnect' );
+ $a8c_mc_stats_instance->do_server_side_stats();
+ }
+ // increment number of times disconnected.
+ $jetpack_unique_connection['disconnected'] += 1;
+ }
+
+ \Jetpack_Options::update_option( 'unique_connection', $jetpack_unique_connection );
+ }
+
+ /**
+ * Fires when a site is disconnected.
+ *
+ * @since 1.30.1
+ */
+ do_action( 'jetpack_site_disconnected' );
+ }
+
+ /**
+ * The Base64 Encoding of the SHA1 Hash of the Input.
+ *
+ * @param string $text The string to hash.
+ * @return string
+ */
+ public function sha1_base64( $text ) {
+ return base64_encode( sha1( $text, true ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ }
+
+ /**
+ * This function mirrors Jetpack_Data::is_usable_domain() in the WPCOM codebase.
+ *
+ * @param string $domain The domain to check.
+ *
+ * @return bool|WP_Error
+ */
+ public function is_usable_domain( $domain ) {
+
+ // If it's empty, just fail out.
+ if ( ! $domain ) {
+ return new \WP_Error(
+ 'fail_domain_empty',
+ /* translators: %1$s is a domain name. */
+ sprintf( __( 'Domain `%1$s` just failed is_usable_domain check as it is empty.', 'jetpack-connection' ), $domain )
+ );
+ }
+
+ /**
+ * Skips the usuable domain check when connecting a site.
+ *
+ * Allows site administrators with domains that fail gethostname-based checks to pass the request to WP.com
+ *
+ * @since 1.7.0
+ * @since-jetpack 4.1.0
+ *
+ * @param bool If the check should be skipped. Default false.
+ */
+ if ( apply_filters( 'jetpack_skip_usuable_domain_check', false ) ) {
+ return true;
+ }
+
+ // None of the explicit localhosts.
+ $forbidden_domains = array(
+ 'wordpress.com',
+ 'localhost',
+ 'localhost.localdomain',
+ 'local.wordpress.test', // VVV pattern.
+ 'local.wordpress-trunk.test', // VVV pattern.
+ 'src.wordpress-develop.test', // VVV pattern.
+ 'build.wordpress-develop.test', // VVV pattern.
+ );
+ if ( in_array( $domain, $forbidden_domains, true ) ) {
+ return new \WP_Error(
+ 'fail_domain_forbidden',
+ sprintf(
+ /* translators: %1$s is a domain name. */
+ __(
+ 'Domain `%1$s` just failed is_usable_domain check as it is in the forbidden array.',
+ 'jetpack-connection'
+ ),
+ $domain
+ )
+ );
+ }
+
+ // No .test or .local domains.
+ if ( preg_match( '#\.(test|local)$#i', $domain ) ) {
+ return new \WP_Error(
+ 'fail_domain_tld',
+ sprintf(
+ /* translators: %1$s is a domain name. */
+ __(
+ 'Domain `%1$s` just failed is_usable_domain check as it uses an invalid top level domain.',
+ 'jetpack-connection'
+ ),
+ $domain
+ )
+ );
+ }
+
+ // No WPCOM subdomains.
+ if ( preg_match( '#\.WordPress\.com$#i', $domain ) ) {
+ return new \WP_Error(
+ 'fail_subdomain_wpcom',
+ sprintf(
+ /* translators: %1$s is a domain name. */
+ __(
+ 'Domain `%1$s` just failed is_usable_domain check as it is a subdomain of WordPress.com.',
+ 'jetpack-connection'
+ ),
+ $domain
+ )
+ );
+ }
+
+ // If PHP was compiled without support for the Filter module (very edge case).
+ if ( ! function_exists( 'filter_var' ) ) {
+ // Just pass back true for now, and let wpcom sort it out.
+ return true;
+ }
+
+ $domain = preg_replace( '#^https?://#', '', untrailingslashit( $domain ) );
+
+ if ( filter_var( $domain, FILTER_VALIDATE_IP )
+ && ! filter_var( $domain, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE )
+ ) {
+ return new \WP_Error(
+ 'fail_ip_forbidden',
+ sprintf(
+ /* translators: %1$s is a domain name. */
+ __(
+ 'IP address `%1$s` just failed is_usable_domain check as it is in the private network.',
+ 'jetpack-connection'
+ ),
+ $domain
+ )
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Gets the requested token.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Tokens->get_access_token() instead.
+ *
+ * @param int|false $user_id false: Return the Blog Token. int: Return that user's User Token.
+ * @param string|false $token_key If provided, check that the token matches the provided input.
+ * @param bool|true $suppress_errors If true, return a falsy value when the token isn't found; When false, return a descriptive WP_Error when the token isn't found.
+ *
+ * @return object|false
+ *
+ * @see $this->get_tokens()->get_access_token()
+ */
+ public function get_access_token( $user_id = false, $token_key = false, $suppress_errors = true ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Tokens->get_access_token' );
+ return $this->get_tokens()->get_access_token( $user_id, $token_key, $suppress_errors );
+ }
+
+ /**
+ * In some setups, $HTTP_RAW_POST_DATA can be emptied during some IXR_Server paths
+ * since it is passed by reference to various methods.
+ * Capture it here so we can verify the signature later.
+ *
+ * @param array $methods an array of available XMLRPC methods.
+ * @return array the same array, since this method doesn't add or remove anything.
+ */
+ public function xmlrpc_methods( $methods ) {
+ $this->raw_post_data = isset( $GLOBALS['HTTP_RAW_POST_DATA'] ) ? $GLOBALS['HTTP_RAW_POST_DATA'] : null;
+ return $methods;
+ }
+
+ /**
+ * Resets the raw post data parameter for testing purposes.
+ */
+ public function reset_raw_post_data() {
+ $this->raw_post_data = null;
+ }
+
+ /**
+ * Registering an additional method.
+ *
+ * @param array $methods an array of available XMLRPC methods.
+ * @return array the amended array in case the method is added.
+ */
+ public function public_xmlrpc_methods( $methods ) {
+ if ( array_key_exists( 'wp.getOptions', $methods ) ) {
+ $methods['wp.getOptions'] = array( $this, 'jetpack_get_options' );
+ }
+ return $methods;
+ }
+
+ /**
+ * Handles a getOptions XMLRPC method call.
+ *
+ * @param array $args method call arguments.
+ * @return array|IXR_Error An amended XMLRPC server options array.
+ */
+ public function jetpack_get_options( $args ) {
+ global $wp_xmlrpc_server;
+
+ $wp_xmlrpc_server->escape( $args );
+
+ $username = $args[1];
+ $password = $args[2];
+
+ $user = $wp_xmlrpc_server->login( $username, $password );
+ if ( ! $user ) {
+ return $wp_xmlrpc_server->error;
+ }
+
+ $options = array();
+ $user_data = $this->get_connected_user_data();
+ if ( is_array( $user_data ) ) {
+ $options['jetpack_user_id'] = array(
+ 'desc' => __( 'The WP.com user ID of the connected user', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => $user_data['ID'],
+ );
+ $options['jetpack_user_login'] = array(
+ 'desc' => __( 'The WP.com username of the connected user', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => $user_data['login'],
+ );
+ $options['jetpack_user_email'] = array(
+ 'desc' => __( 'The WP.com user email of the connected user', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => $user_data['email'],
+ );
+ $options['jetpack_user_site_count'] = array(
+ 'desc' => __( 'The number of sites of the connected WP.com user', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => $user_data['site_count'],
+ );
+ }
+ $wp_xmlrpc_server->blog_options = array_merge( $wp_xmlrpc_server->blog_options, $options );
+ $args = stripslashes_deep( $args );
+ return $wp_xmlrpc_server->wp_getOptions( $args );
+ }
+
+ /**
+ * Adds Jetpack-specific options to the output of the XMLRPC options method.
+ *
+ * @param array $options standard Core options.
+ * @return array amended options.
+ */
+ public function xmlrpc_options( $options ) {
+ $jetpack_client_id = false;
+ if ( $this->is_connected() ) {
+ $jetpack_client_id = \Jetpack_Options::get_option( 'id' );
+ }
+ $options['jetpack_version'] = array(
+ 'desc' => __( 'Jetpack Plugin Version', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => Constants::get_constant( 'JETPACK__VERSION' ),
+ );
+
+ $options['jetpack_client_id'] = array(
+ 'desc' => __( 'The Client ID/WP.com Blog ID of this site', 'jetpack-connection' ),
+ 'readonly' => true,
+ 'value' => $jetpack_client_id,
+ );
+ return $options;
+ }
+
+ /**
+ * Resets the saved authentication state in between testing requests.
+ */
+ public function reset_saved_auth_state() {
+ $this->xmlrpc_verification = null;
+ }
+
+ /**
+ * Sign a user role with the master access token.
+ * If not specified, will default to the current user.
+ *
+ * @access public
+ *
+ * @param string $role User role.
+ * @param int $user_id ID of the user.
+ * @return string Signed user role.
+ */
+ public function sign_role( $role, $user_id = null ) {
+ return $this->get_tokens()->sign_role( $role, $user_id );
+ }
+
+ /**
+ * Set the plugin instance.
+ *
+ * @param Plugin $plugin_instance The plugin instance.
+ *
+ * @return $this
+ */
+ public function set_plugin_instance( Plugin $plugin_instance ) {
+ $this->plugin = $plugin_instance;
+
+ return $this;
+ }
+
+ /**
+ * Retrieve the plugin management object.
+ *
+ * @return Plugin|null
+ */
+ public function get_plugin() {
+ return $this->plugin;
+ }
+
+ /**
+ * Get all connected plugins information, excluding those disconnected by user.
+ * WARNING: the method cannot be called until Plugin_Storage::configure is called, which happens on plugins_loaded
+ * Even if you don't use Jetpack Config, it may be introduced later by other plugins,
+ * so please make sure not to run the method too early in the code.
+ *
+ * @return array|WP_Error
+ */
+ public function get_connected_plugins() {
+ $maybe_plugins = Plugin_Storage::get_all();
+
+ if ( $maybe_plugins instanceof WP_Error ) {
+ return $maybe_plugins;
+ }
+
+ return $maybe_plugins;
+ }
+
+ /**
+ * Force plugin disconnect. After its called, the plugin will not be allowed to use the connection.
+ * Note: this method does not remove any access tokens.
+ *
+ * @deprecated since 1.39.0
+ * @return bool
+ */
+ public function disable_plugin() {
+ return null;
+ }
+
+ /**
+ * Force plugin reconnect after user-initiated disconnect.
+ * After its called, the plugin will be allowed to use the connection again.
+ * Note: this method does not initialize access tokens.
+ *
+ * @deprecated since 1.39.0.
+ * @return bool
+ */
+ public function enable_plugin() {
+ return null;
+ }
+
+ /**
+ * Whether the plugin is allowed to use the connection, or it's been disconnected by user.
+ * If no plugin slug was passed into the constructor, always returns true.
+ *
+ * @deprecated 1.42.0 This method no longer has a purpose after the removal of the soft disconnect feature.
+ *
+ * @return bool
+ */
+ public function is_plugin_enabled() {
+ return true;
+ }
+
+ /**
+ * Perform the API request to refresh the blog token.
+ * Note that we are making this request on behalf of the Jetpack master user,
+ * given they were (most probably) the ones that registered the site at the first place.
+ *
+ * @return WP_Error|bool The result of updating the blog_token option.
+ */
+ public function refresh_blog_token() {
+ ( new Tracking() )->record_user_event( 'restore_connection_refresh_blog_token' );
+
+ $blog_id = \Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', 'Site not registered.' );
+ }
+
+ $url = sprintf(
+ '%s/%s/v%s/%s',
+ Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ),
+ 'wpcom',
+ '2',
+ 'sites/' . $blog_id . '/jetpack-refresh-blog-token'
+ );
+ $method = 'POST';
+ $user_id = get_current_user_id();
+
+ $response = Client::remote_request( compact( 'url', 'method', 'user_id' ) );
+
+ if ( is_wp_error( $response ) ) {
+ return new WP_Error( 'refresh_blog_token_http_request_failed', $response->get_error_message() );
+ }
+
+ $code = wp_remote_retrieve_response_code( $response );
+ $entity = wp_remote_retrieve_body( $response );
+
+ if ( $entity ) {
+ $json = json_decode( $entity );
+ } else {
+ $json = false;
+ }
+
+ if ( 200 !== $code ) {
+ if ( empty( $json->code ) ) {
+ return new WP_Error( 'unknown', '', $code );
+ }
+
+ /* translators: Error description string. */
+ $error_description = isset( $json->message ) ? sprintf( __( 'Error Details: %s', 'jetpack-connection' ), (string) $json->message ) : '';
+
+ return new WP_Error( (string) $json->code, $error_description, $code );
+ }
+
+ if ( empty( $json->jetpack_secret ) || ! is_scalar( $json->jetpack_secret ) ) {
+ return new WP_Error( 'jetpack_secret', '', $code );
+ }
+
+ Error_Handler::get_instance()->delete_all_errors();
+
+ return $this->get_tokens()->update_blog_token( (string) $json->jetpack_secret );
+ }
+
+ /**
+ * Disconnect the user from WP.com, and initiate the reconnect process.
+ *
+ * @return bool
+ */
+ public function refresh_user_token() {
+ ( new Tracking() )->record_user_event( 'restore_connection_refresh_user_token' );
+ $this->disconnect_user( null, true, true );
+ return true;
+ }
+
+ /**
+ * Fetches a signed token.
+ *
+ * @deprecated 1.24.0 Use Automattic\Jetpack\Connection\Tokens->get_signed_token() instead.
+ *
+ * @param object $token the token.
+ * @return WP_Error|string a signed token
+ */
+ public function get_signed_token( $token ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Tokens->get_signed_token' );
+ return $this->get_tokens()->get_signed_token( $token );
+ }
+
+ /**
+ * If the site-level connection is active, add the list of plugins using connection to the heartbeat (except Jetpack itself)
+ *
+ * @param array $stats The Heartbeat stats array.
+ * @return array $stats
+ */
+ public function add_stats_to_heartbeat( $stats ) {
+
+ if ( ! $this->is_connected() ) {
+ return $stats;
+ }
+
+ $active_plugins_using_connection = Plugin_Storage::get_all();
+ foreach ( array_keys( $active_plugins_using_connection ) as $plugin_slug ) {
+ if ( 'jetpack' !== $plugin_slug ) {
+ $stats_group = isset( $active_plugins_using_connection['jetpack'] ) ? 'combined-connection' : 'standalone-connection';
+ $stats[ $stats_group ][] = $plugin_slug;
+ }
+ }
+ return $stats;
+ }
+
+ /**
+ * Get the WPCOM or self-hosted site ID.
+ *
+ * @param bool $quiet Return null instead of an error.
+ *
+ * @return int|WP_Error|null
+ */
+ public static function get_site_id( $quiet = false ) {
+ $is_wpcom = ( defined( 'IS_WPCOM' ) && IS_WPCOM );
+ $site_id = $is_wpcom ? get_current_blog_id() : \Jetpack_Options::get_option( 'id' );
+ if ( ! $site_id ) {
+ return $quiet
+ ? null
+ : new \WP_Error(
+ 'unavailable_site_id',
+ __( 'Sorry, something is wrong with your Jetpack connection.', 'jetpack-connection' ),
+ 403
+ );
+ }
+ return (int) $site_id;
+ }
+
+ /**
+ * Check if Jetpack is ready for uninstall cleanup.
+ *
+ * @param string $current_plugin_slug The current plugin's slug.
+ *
+ * @return bool
+ */
+ public static function is_ready_for_cleanup( $current_plugin_slug ) {
+ $active_plugins = get_option( Plugin_Storage::ACTIVE_PLUGINS_OPTION_NAME );
+
+ return empty( $active_plugins ) || ! is_array( $active_plugins )
+ || ( count( $active_plugins ) === 1 && array_key_exists( $current_plugin_slug, $active_plugins ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php
new file mode 100644
index 00000000..48e14a15
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-nonce-handler.php
@@ -0,0 +1,212 @@
+db = $wpdb;
+ }
+
+ /**
+ * Scheduling the WP-cron cleanup event.
+ */
+ public function init_schedule() {
+ add_action( 'jetpack_clean_nonces', array( __CLASS__, 'clean_scheduled' ) );
+ if ( ! wp_next_scheduled( 'jetpack_clean_nonces' ) ) {
+ wp_schedule_event( time(), 'hourly', 'jetpack_clean_nonces' );
+ }
+ }
+
+ /**
+ * Reschedule the WP-cron cleanup event to make it start sooner.
+ */
+ public function reschedule() {
+ wp_clear_scheduled_hook( 'jetpack_clean_nonces' );
+ wp_schedule_event( time(), 'hourly', 'jetpack_clean_nonces' );
+ }
+
+ /**
+ * Adds a used nonce to a list of known nonces.
+ *
+ * @param int $timestamp the current request timestamp.
+ * @param string $nonce the nonce value.
+ *
+ * @return bool whether the nonce is unique or not.
+ */
+ public function add( $timestamp, $nonce ) {
+ if ( isset( static::$nonces_used_this_request[ "$timestamp:$nonce" ] ) ) {
+ return static::$nonces_used_this_request[ "$timestamp:$nonce" ];
+ }
+
+ // This should always have gone through Jetpack_Signature::sign_request() first to check $timestamp and $nonce.
+ $timestamp = (int) $timestamp;
+ $nonce = esc_sql( $nonce );
+
+ // Raw query so we can avoid races: add_option will also update.
+ $show_errors = $this->db->hide_errors();
+
+ // Running `try...finally` to make sure that we re-enable errors in case of an exception.
+ try {
+ $old_nonce = $this->db->get_row(
+ $this->db->prepare( "SELECT 1 FROM `{$this->db->options}` WHERE option_name = %s", "jetpack_nonce_{$timestamp}_{$nonce}" )
+ );
+
+ if ( $old_nonce === null ) {
+ $return = (bool) $this->db->query(
+ $this->db->prepare(
+ "INSERT INTO `{$this->db->options}` (`option_name`, `option_value`, `autoload`) VALUES (%s, %s, %s)",
+ "jetpack_nonce_{$timestamp}_{$nonce}",
+ time(),
+ 'no'
+ )
+ );
+ } else {
+ $return = false;
+ }
+ } finally {
+ $this->db->show_errors( $show_errors );
+ }
+
+ static::$nonces_used_this_request[ "$timestamp:$nonce" ] = $return;
+
+ return $return;
+ }
+
+ /**
+ * Removing all existing nonces, or at least as many as possible.
+ * Capped at 20 seconds to avoid breaking the site.
+ *
+ * @param int $cutoff_timestamp All nonces added before this timestamp will be removed.
+ * @param int $time_limit How long the cleanup can run (in seconds).
+ *
+ * @return true
+ */
+ public function clean_all( $cutoff_timestamp = PHP_INT_MAX, $time_limit = 20 ) {
+ // phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall.NotAllowed
+ for ( $end_time = time() + $time_limit; time() < $end_time; ) {
+ $result = $this->delete( static::CLEAN_ALL_LIMIT_PER_BATCH, $cutoff_timestamp );
+
+ if ( ! $result ) {
+ break;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Scheduled clean up of the expired nonces.
+ */
+ public static function clean_scheduled() {
+ /**
+ * Adjust the time limit for the scheduled cleanup.
+ *
+ * @since 9.5.0
+ *
+ * @param int $time_limit How long the cleanup can run (in seconds).
+ */
+ $time_limit = apply_filters( 'jetpack_connection_nonce_cleanup_runtime_limit', static::SCHEDULED_CLEANUP_TIME_LIMIT );
+
+ ( new static() )->clean_all( time() - static::LIFETIME, $time_limit );
+ }
+
+ /**
+ * Delete the nonces.
+ *
+ * @param int $limit How many nonces to delete.
+ * @param null|int $cutoff_timestamp All nonces added before this timestamp will be removed.
+ *
+ * @return int|false Number of removed nonces, or `false` if nothing to remove (or in case of a database error).
+ */
+ public function delete( $limit = 10, $cutoff_timestamp = null ) {
+ global $wpdb;
+
+ $ids = $wpdb->get_col(
+ $wpdb->prepare(
+ "SELECT option_id FROM `{$wpdb->options}`"
+ . " WHERE `option_name` >= 'jetpack_nonce_' AND `option_name` < %s"
+ . ' LIMIT %d',
+ 'jetpack_nonce_' . $cutoff_timestamp,
+ $limit
+ )
+ );
+
+ if ( ! is_array( $ids ) ) {
+ // There's an error and we can't proceed.
+ return false;
+ }
+
+ // Removing zeroes in case AUTO_INCREMENT of the options table is broken, and all ID's are zeroes.
+ $ids = array_filter( $ids );
+
+ if ( array() === $ids ) {
+ // There's nothing to remove.
+ return false;
+ }
+
+ $ids_fill = implode( ', ', array_fill( 0, count( $ids ), '%d' ) );
+
+ $args = $ids;
+ $args[] = 'jetpack_nonce_%';
+
+ // The Code Sniffer is unable to understand what's going on...
+ // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared,WordPress.DB.PreparedSQLPlaceholders.ReplacementsWrongNumber
+ return $wpdb->query( $wpdb->prepare( "DELETE FROM `{$wpdb->options}` WHERE `option_id` IN ( {$ids_fill} ) AND option_name LIKE %s", $args ) );
+ }
+
+ /**
+ * Clean the cached nonces valid during the current request, therefore making them invalid.
+ *
+ * @return bool
+ */
+ public static function invalidate_request_nonces() {
+ static::$nonces_used_this_request = array();
+
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php
new file mode 100644
index 00000000..2d1b3743
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version-tracker.php
@@ -0,0 +1,176 @@
+is_rate_limiting() ) {
+ return;
+ }
+
+ /**
+ * Obtains the package versions.
+ *
+ * @since 1.30.2
+ *
+ * @param array An associative array of Jetpack package slugs and their corresponding versions as key/value pairs.
+ */
+ $filter_versions = apply_filters( 'jetpack_package_versions', array() );
+
+ if ( ! is_array( $filter_versions ) ) {
+ return;
+ }
+
+ $option_versions = get_option( self::PACKAGE_VERSION_OPTION, array() );
+
+ foreach ( $filter_versions as $package => $version ) {
+ if ( ! is_string( $package ) || ! is_string( $version ) ) {
+ unset( $filter_versions[ $package ] );
+ }
+ }
+
+ if ( ! is_array( $option_versions )
+ || count( array_diff_assoc( $filter_versions, $option_versions ) )
+ || count( array_diff_assoc( $option_versions, $filter_versions ) )
+ ) {
+ $this->update_package_versions_option( $filter_versions );
+ }
+ }
+
+ /**
+ * Updates the package versions option.
+ *
+ * @param array $package_versions The package versions.
+ */
+ protected function update_package_versions_option( $package_versions ) {
+ if ( ! $this->is_sync_enabled() ) {
+ $this->update_package_versions_via_remote_request( $package_versions );
+ return;
+ }
+
+ update_option( self::PACKAGE_VERSION_OPTION, $package_versions );
+ }
+
+ /**
+ * Whether Jetpack Sync is enabled.
+ *
+ * @return boolean true if Sync is present and enabled, false otherwise
+ */
+ protected function is_sync_enabled() {
+ if ( class_exists( 'Automattic\Jetpack\Sync\Settings' ) && \Automattic\Jetpack\Sync\Settings::is_sync_enabled() ) {
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Fallback for updating the package versions via a remote request when Sync is not present.
+ *
+ * Updates the package versions as follows:
+ * - Sends the updated package versions to wpcom.
+ * - Updates the 'jetpack_package_versions' option.
+ *
+ * @param array $package_versions The package versions.
+ */
+ protected function update_package_versions_via_remote_request( $package_versions ) {
+ $connection = new Manager();
+ if ( ! $connection->is_connected() ) {
+ return;
+ }
+
+ $site_id = \Jetpack_Options::get_option( 'id' );
+
+ $last_failed_attempt_within_hour = get_transient( self::CACHED_FAILED_REQUEST_KEY );
+
+ if ( $last_failed_attempt_within_hour ) {
+ return;
+ }
+
+ $body = wp_json_encode(
+ array(
+ 'package_versions' => $package_versions,
+ )
+ );
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/jetpack-package-versions', $site_id ),
+ '2',
+ array(
+ 'headers' => array( 'content-type' => 'application/json' ),
+ 'method' => 'POST',
+ ),
+ $body,
+ 'wpcom'
+ );
+
+ if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
+ update_option( self::PACKAGE_VERSION_OPTION, $package_versions );
+ } else {
+ set_transient( self::CACHED_FAILED_REQUEST_KEY, time(), self::CACHED_FAILED_REQUEST_EXPIRATION );
+ }
+ }
+
+ /**
+ * Check if version check is being rate limited, and update the rate limiting transient if needed.
+ *
+ * @return bool
+ */
+ private function is_rate_limiting() {
+ if ( get_transient( static::RATE_LIMITER_KEY ) ) {
+ return true;
+ }
+
+ set_transient( static::RATE_LIMITER_KEY, time(), static::RATE_LIMITER_TIMEOUT );
+
+ return false;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php
new file mode 100644
index 00000000..253aa0ab
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-package-version.php
@@ -0,0 +1,30 @@
+ array(
+ 'name' => 'IONOS',
+ 'logo' => array(
+ 'src' => '/images/ionos-logo.jpg',
+ 'width' => 119,
+ 'height' => 32,
+ ),
+ ),
+ );
+
+ /**
+ * A list of supported presets.
+ *
+ * @var array
+ */
+ private static $supported_presets = array(
+ 'IONA' => 'jetpack_backup_daily',
+ );
+
+ /**
+ * Get singleton instance of class.
+ *
+ * @return Partner_Coupon
+ */
+ public static function get_instance() {
+ if ( self::$instance === null ) {
+ self::$instance = new Partner_Coupon( array( Connection_Client::class, 'wpcom_json_api_request_as_blog' ) );
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param callable $request_as_blog Callable that executes a blog-authenticated request.
+ */
+ public function __construct( $request_as_blog ) {
+ $this->request_as_blog = $request_as_blog;
+ }
+
+ /**
+ * Register hooks to catch and purge coupon.
+ *
+ * @param string $plugin_slug The plugin slug to differentiate between Jetpack connections.
+ * @param string $redirect_location The location we should redirect to after catching the coupon.
+ */
+ public static function register_coupon_admin_hooks( $plugin_slug, $redirect_location ) {
+ $instance = self::get_instance();
+
+ // We have to use an anonymous function, so we can pass along relevant information
+ // and not have to hardcode values for a single plugin.
+ // This open up the opportunity for e.g. the "all-in-one" and backup plugins
+ // to both implement partner coupon logic.
+ add_action(
+ 'admin_init',
+ function () use ( $plugin_slug, $redirect_location, $instance ) {
+ $instance->catch_coupon( $plugin_slug, $redirect_location );
+ $instance->maybe_purge_coupon( $plugin_slug );
+ }
+ );
+ }
+
+ /**
+ * Catch partner coupon and redirect to claim component.
+ *
+ * @param string $plugin_slug The plugin slug to differentiate between Jetpack connections.
+ * @param string $redirect_location The location we should redirect to after catching the coupon.
+ */
+ public function catch_coupon( $plugin_slug, $redirect_location ) {
+ // Accept and store a partner coupon if present, and redirect to Jetpack connection screen.
+ $partner_coupon = isset( $_GET['jetpack-partner-coupon'] ) ? sanitize_text_field( wp_unslash( $_GET['jetpack-partner-coupon'] ) ) : false; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( $partner_coupon ) {
+ Jetpack_Options::update_options(
+ array(
+ self::$coupon_option => $partner_coupon,
+ self::$added_option => time(),
+ )
+ );
+
+ $connection = new Connection_Manager( $plugin_slug );
+ if ( $connection->is_connected() ) {
+ $redirect_location = add_query_arg( array( 'showCouponRedemption' => 1 ), $redirect_location );
+ wp_safe_redirect( $redirect_location );
+ } else {
+ wp_safe_redirect( $redirect_location );
+ }
+ }
+ }
+
+ /**
+ * Purge partner coupon.
+ *
+ * We try to remotely check if a coupon looks valid. We also automatically purge
+ * partner coupons after a certain amount of time to prevent unnecessary look-ups
+ * and/or promoting a product for months or years in the future due to unknown
+ * errors.
+ *
+ * @param string $plugin_slug The plugin slug to differentiate between Jetpack connections.
+ */
+ public function maybe_purge_coupon( $plugin_slug ) {
+ // Only run coupon checks on Jetpack admin pages.
+ // The "admin-ui" package is responsible for registering the Jetpack admin
+ // page for all Jetpack plugins and has hardcoded the settings page to be
+ // "jetpack", so we shouldn't need to allow for dynamic/custom values.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! isset( $_GET['page'] ) || 'jetpack' !== $_GET['page'] ) {
+ return;
+ }
+
+ if ( ( new Status() )->is_offline_mode() ) {
+ return;
+ }
+
+ $connection = new Connection_Manager( $plugin_slug );
+ if ( ! $connection->is_connected() ) {
+ return;
+ }
+
+ if ( $this->maybe_purge_coupon_by_added_date() ) {
+ return;
+ }
+
+ // Limit checks to happen once a minute at most.
+ if ( get_transient( self::$last_check_transient ) ) {
+ return;
+ }
+
+ set_transient( self::$last_check_transient, true, MINUTE_IN_SECONDS );
+
+ $this->maybe_purge_coupon_by_availability_check();
+ }
+
+ /**
+ * Purge coupon based on local added date.
+ *
+ * We automatically remove the coupon after a month to "self-heal" if
+ * something in the claim process has broken with the site.
+ *
+ * @return bool Return whether we should skip further purge checks.
+ */
+ protected function maybe_purge_coupon_by_added_date() {
+ $date = Jetpack_Options::get_option( self::$added_option, '' );
+
+ if ( empty( $date ) ) {
+ return true;
+ }
+
+ $expire_date = strtotime( '+30 days', $date );
+ $today = time();
+
+ if ( $today >= $expire_date ) {
+ $this->delete_coupon_data();
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Purge coupon based on availability check.
+ *
+ * @return bool Return whether we deleted coupon data.
+ */
+ protected function maybe_purge_coupon_by_availability_check() {
+ $blog_id = Jetpack_Options::get_option( 'id', false );
+
+ if ( ! $blog_id ) {
+ return false;
+ }
+
+ $coupon = self::get_coupon();
+
+ if ( ! $coupon ) {
+ return false;
+ }
+
+ $response = call_user_func_array(
+ $this->request_as_blog,
+ array(
+ add_query_arg(
+ array( 'coupon_code' => $coupon['coupon_code'] ),
+ sprintf(
+ '/sites/%d/jetpack-partner/coupon/v1/site/coupon',
+ $blog_id
+ )
+ ),
+ 2,
+ array( 'method' => 'GET' ),
+ null,
+ 'wpcom',
+ )
+ );
+
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+
+ if (
+ 200 === wp_remote_retrieve_response_code( $response ) &&
+ is_array( $body ) &&
+ isset( $body['available'] ) &&
+ false === $body['available']
+ ) {
+ $this->delete_coupon_data();
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Delete all coupon data.
+ */
+ protected function delete_coupon_data() {
+ Jetpack_Options::delete_option(
+ array(
+ self::$coupon_option,
+ self::$added_option,
+ )
+ );
+ }
+
+ /**
+ * Get partner coupon data.
+ *
+ * @return array|bool
+ */
+ public static function get_coupon() {
+ $coupon_code = Jetpack_Options::get_option( self::$coupon_option, '' );
+
+ if ( ! is_string( $coupon_code ) || empty( $coupon_code ) ) {
+ return false;
+ }
+
+ $instance = self::get_instance();
+ $partner = $instance->get_coupon_partner( $coupon_code );
+
+ if ( ! $partner ) {
+ return false;
+ }
+
+ $preset = $instance->get_coupon_preset( $coupon_code );
+
+ if ( ! $preset ) {
+ return false;
+ }
+
+ $product = $instance->get_coupon_product( $preset );
+
+ if ( ! $product ) {
+ return false;
+ }
+
+ return array(
+ 'coupon_code' => $coupon_code,
+ 'partner' => $partner,
+ 'preset' => $preset,
+ 'product' => $product,
+ );
+ }
+
+ /**
+ * Get coupon partner.
+ *
+ * @param string $coupon_code Coupon code to go through.
+ * @return array|bool
+ */
+ private function get_coupon_partner( $coupon_code ) {
+ if ( ! is_string( $coupon_code ) || false === strpos( $coupon_code, '_' ) ) {
+ return false;
+ }
+
+ $prefix = strtok( $coupon_code, '_' );
+ $supported_partners = $this->get_supported_partners();
+
+ if ( ! isset( $supported_partners[ $prefix ] ) ) {
+ return false;
+ }
+
+ return array(
+ 'name' => $supported_partners[ $prefix ]['name'],
+ 'prefix' => $prefix,
+ 'logo' => isset( $supported_partners[ $prefix ]['logo'] ) ? $supported_partners[ $prefix ]['logo'] : null,
+ );
+ }
+
+ /**
+ * Get coupon product.
+ *
+ * @param string $coupon_preset The preset we wish to find a product for.
+ * @return array|bool
+ */
+ private function get_coupon_product( $coupon_preset ) {
+ if ( ! is_string( $coupon_preset ) ) {
+ return false;
+ }
+
+ /**
+ * Allow for plugins to register supported products.
+ *
+ * @since 1.6.0
+ *
+ * @param array A list of product details.
+ * @return array
+ */
+ $product_details = apply_filters( 'jetpack_partner_coupon_products', array() );
+ $product_slug = $this->get_supported_presets()[ $coupon_preset ];
+
+ foreach ( $product_details as $product ) {
+ if ( ! $this->array_keys_exist( array( 'title', 'slug', 'description', 'features' ), $product ) ) {
+ continue;
+ }
+
+ if ( $product_slug === $product['slug'] ) {
+ return $product;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks if multiple keys are present in an array.
+ *
+ * @param array $needles The keys we wish to check for.
+ * @param array $haystack The array we want to compare keys against.
+ *
+ * @return bool
+ */
+ private function array_keys_exist( $needles, $haystack ) {
+ foreach ( $needles as $needle ) {
+ if ( ! isset( $haystack[ $needle ] ) ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Get coupon preset.
+ *
+ * @param string $coupon_code Coupon code to go through.
+ * @return string|bool
+ */
+ private function get_coupon_preset( $coupon_code ) {
+ if ( ! is_string( $coupon_code ) ) {
+ return false;
+ }
+
+ $regex = '/^.*?_(?P.*?)_.+$/';
+ $matches = array();
+
+ if ( ! preg_match( $regex, $coupon_code, $matches ) ) {
+ return false;
+ }
+
+ return isset( $this->get_supported_presets()[ $matches['slug'] ] ) ? $matches['slug'] : false;
+ }
+
+ /**
+ * Get supported partners.
+ *
+ * @return array
+ */
+ private function get_supported_partners() {
+ /**
+ * Allow external code to add additional supported partners.
+ *
+ * @since partner-1.6.0
+ * @since 2.0.0
+ *
+ * @param array $supported_partners A list of supported partners.
+ * @return array
+ */
+ return apply_filters( 'jetpack_partner_coupon_supported_partners', self::$supported_partners );
+ }
+
+ /**
+ * Get supported presets.
+ *
+ * @return array
+ */
+ private function get_supported_presets() {
+ /**
+ * Allow external code to add additional supported presets.
+ *
+ * @since partner-1.6.0
+ * @since 2.0.0
+ *
+ * @param array $supported_presets A list of supported presets.
+ * @return array
+ */
+ return apply_filters( 'jetpack_partner_coupon_supported_presets', self::$supported_presets );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-partner.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-partner.php
new file mode 100644
index 00000000..cfb7bb7e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-partner.php
@@ -0,0 +1,215 @@
+add_code_as_query_arg( self::SUBSIDIARY_CODE, $url );
+ }
+
+ /**
+ * Adds the affiliate code to the passed URL.
+ *
+ * @param string $url The URL.
+ *
+ * @return string
+ */
+ public function add_affiliate_code_as_query_arg( $url ) {
+ return $this->add_code_as_query_arg( self::AFFILIATE_CODE, $url );
+ }
+
+ /**
+ * Adds the partner subsidiary code to the passed array.
+ *
+ * @since partner-1.5.0
+ * @since 2.0.0
+ *
+ * @param array $params The parameters array.
+ *
+ * @return array
+ */
+ public function add_subsidiary_id_to_params_array( $params ) {
+ if ( ! is_array( $params ) ) {
+ return $params;
+ }
+ return array_merge( $params, $this->get_code_as_array( self::SUBSIDIARY_CODE ) );
+ }
+
+ /**
+ * Adds the affiliate code to the passed array.
+ *
+ * @since partner-1.5.0
+ * @since 2.0.0
+ *
+ * @param array $params The parameters array.
+ *
+ * @return array
+ */
+ public function add_affiliate_code_to_params_array( $params ) {
+ if ( ! is_array( $params ) ) {
+ return $params;
+ }
+ return array_merge( $params, $this->get_code_as_array( self::AFFILIATE_CODE ) );
+ }
+
+ /**
+ * Returns the passed URL with the partner code added as a URL query arg.
+ *
+ * @since partner-1.0.0
+ * @since 2.0.0
+ *
+ * @param string $type The partner code.
+ * @param string $url The URL where the partner subsidiary id will be added.
+ *
+ * @return string The passed URL with the partner code added.
+ */
+ public function add_code_as_query_arg( $type, $url ) {
+ return add_query_arg( $this->get_code_as_array( $type ), $url );
+ }
+
+ /**
+ * Gets the partner code in an associative array format
+ *
+ * @since partner-1.5.0
+ * @since 2.0.0
+ *
+ * @param string $type The partner code.
+ * @return array
+ */
+ private function get_code_as_array( $type ) {
+ switch ( $type ) {
+ case self::AFFILIATE_CODE:
+ $query_arg_name = 'aff';
+ break;
+ case self::SUBSIDIARY_CODE:
+ $query_arg_name = 'subsidiaryId';
+ break;
+ default:
+ return array();
+ }
+
+ $code = $this->get_partner_code( $type );
+
+ if ( '' === $code ) {
+ return array();
+ }
+
+ return array( $query_arg_name => $code );
+ }
+
+ /**
+ * Returns a partner code.
+ *
+ * @since partner-1.0.0
+ * @since 2.0.0
+ *
+ * @param string $type This can be either 'affiliate' or 'subsidiary'. Returns empty string when code is unknown.
+ *
+ * @return string The partner code.
+ */
+ public function get_partner_code( $type ) {
+ switch ( $type ) {
+ case self::AFFILIATE_CODE:
+ /**
+ * Allow to filter the affiliate code.
+ *
+ * @since partner-1.0.0
+ * @since-jetpack 6.9.0
+ * @since 2.0.0
+ *
+ * @param string $affiliate_code The affiliate code, blank by default.
+ */
+ return apply_filters( 'jetpack_affiliate_code', get_option( 'jetpack_affiliate_code', '' ) );
+ case self::SUBSIDIARY_CODE:
+ /**
+ * Allow to filter the partner subsidiary id.
+ *
+ * @since partner-1.0.0
+ * @since 2.0.0
+ *
+ * @param string $subsidiary_id The partner subsidiary id, blank by default.
+ */
+ return apply_filters(
+ 'jetpack_partner_subsidiary_id',
+ get_option( 'jetpack_partner_subsidiary_id', '' )
+ );
+ default:
+ return '';
+ }
+ }
+
+ /**
+ * Resets the singleton for testing purposes.
+ */
+ public static function reset() {
+ self::$instance = null;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php
new file mode 100644
index 00000000..21d9402b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin-storage.php
@@ -0,0 +1,306 @@
+is_connected() ) {
+ return;
+ }
+
+ $site_id = \Jetpack_Options::get_option( 'id' );
+
+ $body = wp_json_encode(
+ array(
+ 'active_connected_plugins' => self::$plugins,
+ )
+ );
+
+ Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/jetpack-active-connected-plugins', $site_id ),
+ '2',
+ array(
+ 'headers' => array( 'content-type' => 'application/json' ),
+ 'method' => 'POST',
+ ),
+ $body,
+ 'wpcom'
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php
new file mode 100644
index 00000000..10b5c7b9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-plugin.php
@@ -0,0 +1,122 @@
+slug = $slug;
+ }
+
+ /**
+ * Get the plugin slug.
+ *
+ * @return string
+ */
+ public function get_slug() {
+ return $this->slug;
+ }
+
+ /**
+ * Add the plugin connection info into Jetpack.
+ *
+ * @param string $name Plugin name, required.
+ * @param array $args Plugin arguments, optional.
+ *
+ * @return $this
+ * @see $this->arguments_whitelist
+ */
+ public function add( $name, array $args = array() ) {
+ $args = compact( 'name' ) + array_intersect_key( $args, array_flip( $this->arguments_whitelist ) );
+
+ Plugin_Storage::upsert( $this->slug, $args );
+
+ return $this;
+ }
+
+ /**
+ * Remove the plugin connection info from Jetpack.
+ *
+ * @return $this
+ */
+ public function remove() {
+ Plugin_Storage::delete( $this->slug );
+
+ return $this;
+ }
+
+ /**
+ * Determine if this plugin connection is the only one active at the moment, if any.
+ *
+ * @return bool
+ */
+ public function is_only() {
+ $plugins = Plugin_Storage::get_all();
+
+ return ! $plugins || ( array_key_exists( $this->slug, $plugins ) && 1 === count( $plugins ) );
+ }
+
+ /**
+ * Add the plugin to the set of disconnected ones.
+ *
+ * @deprecated since 1.39.0.
+ *
+ * @return bool
+ */
+ public function disable() {
+ return true;
+ }
+
+ /**
+ * Remove the plugin from the set of disconnected ones.
+ *
+ * @deprecated since 1.39.0.
+ *
+ * @return bool
+ */
+ public function enable() {
+ return true;
+ }
+
+ /**
+ * Whether this plugin is allowed to use the connection.
+ *
+ * @deprecated since 11.0
+ * @return bool
+ */
+ public function is_enabled() {
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php
new file mode 100644
index 00000000..196a0991
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-authentication.php
@@ -0,0 +1,222 @@
+connection_manager = new Manager();
+ }
+
+ /**
+ * Controls the single instance of this class.
+ *
+ * @static
+ */
+ public static function init() {
+ if ( ! self::$instance ) {
+ self::$instance = new self();
+
+ add_filter( 'determine_current_user', array( self::$instance, 'wp_rest_authenticate' ) );
+ add_filter( 'rest_authentication_errors', array( self::$instance, 'wp_rest_authentication_errors' ) );
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Authenticates requests from Jetpack server to WP REST API endpoints.
+ * Uses the existing XMLRPC request signing implementation.
+ *
+ * @param int|bool $user User ID if one has been determined, false otherwise.
+ *
+ * @return int|null The user id or null if the request was authenticated via blog token, or not authenticated at all.
+ */
+ public function wp_rest_authenticate( $user ) {
+ if ( $this->doing_determine_current_user_filter ) {
+ return $user;
+ }
+
+ $this->doing_determine_current_user_filter = true;
+
+ try {
+ if ( ! empty( $user ) ) {
+ // Another authentication method is in effect.
+ return $user;
+ }
+
+ add_filter(
+ 'jetpack_constant_default_value',
+ __NAMESPACE__ . '\Utils::jetpack_api_constant_filter',
+ 10,
+ 2
+ );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! isset( $_GET['_for'] ) || 'jetpack' !== $_GET['_for'] ) {
+ // Nothing to do for this authentication method.
+ return null;
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! isset( $_GET['token'] ) && ! isset( $_GET['signature'] ) ) {
+ // Nothing to do for this authentication method.
+ return null;
+ }
+
+ if ( ! isset( $_SERVER['REQUEST_METHOD'] ) ) {
+ $this->rest_authentication_status = new WP_Error(
+ 'rest_invalid_request',
+ __( 'The request method is missing.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ return null;
+ }
+
+ // Only support specific request parameters that have been tested and
+ // are known to work with signature verification. A different method
+ // can be passed to the WP REST API via the '?_method=' parameter if
+ // needed.
+ if ( 'GET' !== $_SERVER['REQUEST_METHOD'] && 'POST' !== $_SERVER['REQUEST_METHOD'] ) {
+ $this->rest_authentication_status = new WP_Error(
+ 'rest_invalid_request',
+ __( 'This request method is not supported.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ return null;
+ }
+ if ( 'POST' !== $_SERVER['REQUEST_METHOD'] && ! empty( file_get_contents( 'php://input' ) ) ) {
+ $this->rest_authentication_status = new WP_Error(
+ 'rest_invalid_request',
+ __( 'This request method does not support body parameters.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ return null;
+ }
+
+ $verified = $this->connection_manager->verify_xml_rpc_signature();
+
+ if (
+ $verified &&
+ isset( $verified['type'] ) &&
+ 'blog' === $verified['type']
+ ) {
+ // Site-level authentication successful.
+ $this->rest_authentication_status = true;
+ $this->rest_authentication_type = 'blog';
+ return null;
+ }
+
+ if (
+ $verified &&
+ isset( $verified['type'] ) &&
+ 'user' === $verified['type'] &&
+ ! empty( $verified['user_id'] )
+ ) {
+ // User-level authentication successful.
+ $this->rest_authentication_status = true;
+ $this->rest_authentication_type = 'user';
+ return $verified['user_id'];
+ }
+
+ // Something else went wrong. Probably a signature error.
+ $this->rest_authentication_status = new WP_Error(
+ 'rest_invalid_signature',
+ __( 'The request is not signed correctly.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ return null;
+ } finally {
+ $this->doing_determine_current_user_filter = false;
+ }
+ }
+
+ /**
+ * Report authentication status to the WP REST API.
+ *
+ * @param WP_Error|mixed $value Error from another authentication handler, null if we should handle it, or another value if not.
+ * @return WP_Error|boolean|null {@see WP_JSON_Server::check_authentication}
+ */
+ public function wp_rest_authentication_errors( $value ) {
+ if ( null !== $value ) {
+ return $value;
+ }
+ return $this->rest_authentication_status;
+ }
+
+ /**
+ * Resets the saved authentication state in between testing requests.
+ */
+ public function reset_saved_auth_state() {
+ $this->rest_authentication_status = null;
+ $this->connection_manager->reset_saved_auth_state();
+ }
+
+ /**
+ * Whether the request was signed with a blog token.
+ *
+ * @since 1.29.0
+ *
+ * @return bool True if the request was signed with a valid blog token, false otherwise.
+ */
+ public static function is_signed_with_blog_token() {
+ $instance = self::init();
+
+ return true === $instance->rest_authentication_status && 'blog' === $instance->rest_authentication_type;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php
new file mode 100644
index 00000000..b99f981e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-rest-connector.php
@@ -0,0 +1,1024 @@
+connection = $connection;
+
+ self::$user_permissions_error_msg = esc_html__(
+ 'You do not have the correct user permissions to perform this action.
+ Please contact your site admin if you think this is a mistake.',
+ 'jetpack-connection'
+ );
+
+ $jp_version = Constants::get_constant( 'JETPACK__VERSION' );
+
+ if ( ! $this->connection->has_connected_owner() ) {
+ // Register a site.
+ register_rest_route(
+ 'jetpack/v4',
+ '/verify_registration',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'verify_registration' ),
+ 'permission_callback' => '__return_true',
+ )
+ );
+ }
+
+ // Authorize a remote user.
+ register_rest_route(
+ 'jetpack/v4',
+ '/remote_authorize',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::remote_authorize',
+ 'permission_callback' => '__return_true',
+ )
+ );
+
+ // Authorize a remote user.
+ register_rest_route(
+ 'jetpack/v4',
+ '/remote_provision',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'remote_provision' ),
+ 'permission_callback' => array( $this, 'remote_provision_permission_check' ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/remote_register',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'remote_register' ),
+ 'permission_callback' => array( $this, 'remote_register_permission_check' ),
+ )
+ );
+
+ // Connect a remote user.
+ register_rest_route(
+ 'jetpack/v4',
+ '/remote_connect',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'remote_connect' ),
+ 'permission_callback' => array( $this, 'remote_connect_permission_check' ),
+ )
+ );
+
+ // The endpoint verifies blog connection and blog token validity.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/check',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'connection_check' ),
+ 'permission_callback' => array( $this, 'connection_check_permission_check' ),
+ )
+ );
+
+ // Get current connection status of Jetpack.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::connection_status',
+ 'permission_callback' => '__return_true',
+ )
+ );
+
+ // Disconnect site.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::disconnect_site',
+ 'permission_callback' => __CLASS__ . '::disconnect_site_permission_check',
+ 'args' => array(
+ 'isActive' => array(
+ 'description' => __( 'Set to false will trigger the site to disconnect.', 'jetpack-connection' ),
+ 'validate_callback' => function ( $value ) {
+ if ( false !== $value ) {
+ return new WP_Error(
+ 'rest_invalid_param',
+ __( 'The isActive argument should be set to false.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return true;
+ },
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+
+ // We are only registering this route if Jetpack-the-plugin is not active or it's version is ge 10.0-alpha.
+ // The reason for doing so is to avoid conflicts between the Connection package and
+ // older versions of Jetpack, registering the same route twice.
+ if ( empty( $jp_version ) || version_compare( $jp_version, '10.0-alpha', '>=' ) ) {
+ // Get current user connection data.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/data',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_user_connection_data',
+ 'permission_callback' => __CLASS__ . '::user_connection_data_permission_check',
+ )
+ );
+ }
+
+ // Get list of plugins that use the Jetpack connection.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/plugins',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( __CLASS__, 'get_connection_plugins' ),
+ 'permission_callback' => __CLASS__ . '::connection_plugins_permission_check',
+ )
+ );
+
+ // Full or partial reconnect in case of connection issues.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/reconnect',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'connection_reconnect' ),
+ 'permission_callback' => __CLASS__ . '::jetpack_reconnect_permission_check',
+ )
+ );
+
+ // Register the site (get `blog_token`).
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/register',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( $this, 'connection_register' ),
+ 'permission_callback' => __CLASS__ . '::jetpack_register_permission_check',
+ 'args' => array(
+ 'from' => array(
+ 'description' => __( 'Indicates where the registration action was triggered for tracking/segmentation purposes', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ 'registration_nonce' => array(
+ 'description' => __( 'The registration nonce', 'jetpack-connection' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ 'redirect_uri' => array(
+ 'description' => __( 'URI of the admin page where the user should be redirected after connection flow', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ 'plugin_slug' => array(
+ 'description' => __( 'Indicates from what plugin the request is coming from', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+
+ // Get authorization URL.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/authorize_url',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'connection_authorize_url' ),
+ 'permission_callback' => __CLASS__ . '::user_connection_data_permission_check',
+ 'args' => array(
+ 'redirect_uri' => array(
+ 'description' => __( 'URI of the admin page where the user should be redirected after connection flow', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/user-token',
+ array(
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( static::class, 'update_user_token' ),
+ 'permission_callback' => array( static::class, 'update_user_token_permission_check' ),
+ 'args' => array(
+ 'user_token' => array(
+ 'description' => __( 'New user token', 'jetpack-connection' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ 'is_connection_owner' => array(
+ 'description' => __( 'Is connection owner', 'jetpack-connection' ),
+ 'type' => 'boolean',
+ ),
+ ),
+ ),
+ )
+ );
+
+ // Set the connection owner.
+ register_rest_route(
+ 'jetpack/v4',
+ '/connection/owner',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( static::class, 'set_connection_owner' ),
+ 'permission_callback' => array( static::class, 'set_connection_owner_permission_check' ),
+ 'args' => array(
+ 'owner' => array(
+ 'description' => __( 'New owner', 'jetpack-connection' ),
+ 'type' => 'integer',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Handles verification that a site is registered.
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.4.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return string|WP_Error
+ */
+ public function verify_registration( WP_REST_Request $request ) {
+ $registration_data = array( $request['secret_1'], $request['state'] );
+
+ return $this->connection->handle_registration( $registration_data );
+ }
+
+ /**
+ * Handles verification that a site is registered
+ *
+ * @since 1.7.0
+ * @since-jetpack 5.4.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return array|WP_Error
+ */
+ public static function remote_authorize( $request ) {
+ $xmlrpc_server = new Jetpack_XMLRPC_Server();
+ $result = $xmlrpc_server->remote_authorize( $request );
+
+ if ( is_a( $result, 'IXR_Error' ) ) {
+ $result = new WP_Error( $result->code, $result->message );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Initiate the site provisioning process.
+ *
+ * @since 2.5.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return WP_Error|array
+ */
+ public static function remote_provision( WP_REST_Request $request ) {
+ $xmlrpc_server = new Jetpack_XMLRPC_Server();
+ $result = $xmlrpc_server->remote_provision( $request );
+
+ if ( is_a( $result, 'IXR_Error' ) ) {
+ $result = new WP_Error( $result->code, $result->message );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Connect a remote user.
+ *
+ * @since 2.6.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return WP_Error|array
+ */
+ public static function remote_connect( WP_REST_Request $request ) {
+ $xmlrpc_server = new Jetpack_XMLRPC_Server();
+ $result = $xmlrpc_server->remote_connect( $request );
+
+ if ( is_a( $result, 'IXR_Error' ) ) {
+ $result = new WP_Error( $result->code, $result->message );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Register the site so that a plan can be provisioned.
+ *
+ * @since 2.5.0
+ *
+ * @param WP_REST_Request $request The request object.
+ *
+ * @return WP_Error|array
+ */
+ public function remote_register( WP_REST_Request $request ) {
+ $xmlrpc_server = new Jetpack_XMLRPC_Server();
+ $result = $xmlrpc_server->remote_register( $request );
+
+ if ( is_a( $result, 'IXR_Error' ) ) {
+ $result = new WP_Error( $result->code, $result->message );
+ }
+
+ return $result;
+ }
+
+ /**
+ * Remote provision endpoint permission check.
+ *
+ * @return true|WP_Error
+ */
+ public function remote_provision_permission_check() {
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'invalid_permission_remote_provision', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Remote connect endpoint permission check.
+ *
+ * @return true|WP_Error
+ */
+ public function remote_connect_permission_check() {
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'invalid_permission_remote_connect', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Remote register endpoint permission check.
+ *
+ * @return true|WP_Error
+ */
+ public function remote_register_permission_check() {
+ if ( $this->connection->has_connected_owner() ) {
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'already_registered', __( 'Blog is already registered', 'jetpack-connection' ), 400 );
+ }
+
+ return true;
+ }
+
+ /**
+ * Get connection status for this Jetpack site.
+ *
+ * @since 1.7.0
+ * @since-jetpack 4.3.0
+ *
+ * @param bool $rest_response Should we return a rest response or a simple array. Default to rest response.
+ *
+ * @return WP_REST_Response|array Connection information.
+ */
+ public static function connection_status( $rest_response = true ) {
+ $status = new Status();
+ $connection = new Manager();
+
+ $connection_status = array(
+ 'isActive' => $connection->has_connected_owner(), // TODO deprecate this.
+ 'isStaging' => $status->in_safe_mode(), // TODO deprecate this.
+ 'isRegistered' => $connection->is_connected(),
+ 'isUserConnected' => $connection->is_user_connected(),
+ 'hasConnectedOwner' => $connection->has_connected_owner(),
+ 'offlineMode' => array(
+ 'isActive' => $status->is_offline_mode(),
+ 'constant' => defined( 'JETPACK_DEV_DEBUG' ) && JETPACK_DEV_DEBUG,
+ 'url' => $status->is_local_site(),
+ /** This filter is documented in packages/status/src/class-status.php */
+ 'filter' => ( apply_filters( 'jetpack_development_mode', false ) || apply_filters( 'jetpack_offline_mode', false ) ), // jetpack_development_mode is deprecated.
+ 'wpLocalConstant' => defined( 'WP_LOCAL_DEV' ) && WP_LOCAL_DEV,
+ ),
+ 'isPublic' => '1' == get_option( 'blog_public' ), // phpcs:ignore Universal.Operators.StrictComparisons.LooseEqual
+ );
+
+ /**
+ * Filters the connection status data.
+ *
+ * @since 1.25.0
+ *
+ * @param array An array containing the connection status data.
+ */
+ $connection_status = apply_filters( 'jetpack_connection_status', $connection_status );
+
+ if ( $rest_response ) {
+ return rest_ensure_response(
+ $connection_status
+ );
+ } else {
+ return $connection_status;
+ }
+ }
+
+ /**
+ * Get plugins connected to the Jetpack.
+ *
+ * @param bool $rest_response Should we return a rest response or a simple array. Default to rest response.
+ *
+ * @since 1.13.1
+ * @since 1.38.0 Added $rest_response param.
+ *
+ * @return WP_REST_Response|WP_Error Response or error object, depending on the request result.
+ */
+ public static function get_connection_plugins( $rest_response = true ) {
+ $plugins = ( new Manager() )->get_connected_plugins();
+
+ if ( is_wp_error( $plugins ) ) {
+ return $plugins;
+ }
+
+ array_walk(
+ $plugins,
+ function ( &$data, $slug ) {
+ $data['slug'] = $slug;
+ }
+ );
+
+ if ( $rest_response ) {
+ return rest_ensure_response( array_values( $plugins ) );
+ }
+
+ return array_values( $plugins );
+ }
+
+ /**
+ * Verify that user can view Jetpack admin page and can activate plugins.
+ *
+ * @since 1.15.0
+ *
+ * @return bool|WP_Error Whether user has the capability 'activate_plugins'.
+ */
+ public static function activate_plugins_permission_check() {
+ if ( current_user_can( 'activate_plugins' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_activate_plugins', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Permission check for the connection_plugins endpoint
+ *
+ * @return bool|WP_Error
+ */
+ public static function connection_plugins_permission_check() {
+ if ( true === static::activate_plugins_permission_check() ) {
+ return true;
+ }
+
+ if ( true === static::is_request_signed_by_jetpack_debugger() ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_activate_plugins', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Permission check for the disconnect site endpoint.
+ *
+ * @since 1.30.1
+ *
+ * @return bool|WP_Error True if user is able to disconnect the site.
+ */
+ public static function disconnect_site_permission_check() {
+ if ( current_user_can( 'jetpack_disconnect' ) ) {
+ return true;
+ }
+
+ return new WP_Error(
+ 'invalid_user_permission_jetpack_disconnect',
+ self::get_user_permissions_error_msg(),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ /**
+ * Get miscellaneous user data related to the connection. Similar data available in old "My Jetpack".
+ * Information about the master/primary user.
+ * Information about the current user.
+ *
+ * @param bool $rest_response Should we return a rest response or a simple array. Default to rest response.
+ *
+ * @since 1.30.1
+ *
+ * @return \WP_REST_Response|array
+ */
+ public static function get_user_connection_data( $rest_response = true ) {
+ $blog_id = \Jetpack_Options::get_option( 'id' );
+
+ $connection = new Manager();
+
+ $current_user = wp_get_current_user();
+ $connection_owner = $connection->get_connection_owner();
+
+ $owner_display_name = false === $connection_owner ? null : $connection_owner->display_name;
+
+ $is_user_connected = $connection->is_user_connected();
+ $is_master_user = false === $connection_owner ? false : ( $current_user->ID === $connection_owner->ID );
+ $wpcom_user_data = $connection->get_connected_user_data();
+
+ // Add connected user gravatar to the returned wpcom_user_data.
+ // Probably we shouldn't do this when $wpcom_user_data is false, but we have been since 2016 so
+ // clients probably expect that by now.
+ if ( false === $wpcom_user_data ) {
+ $wpcom_user_data = array();
+ }
+ $wpcom_user_data['avatar'] = ( ! empty( $wpcom_user_data['email'] ) ?
+ get_avatar_url(
+ $wpcom_user_data['email'],
+ array(
+ 'size' => 64,
+ 'default' => 'mysteryman',
+ )
+ )
+ : false );
+
+ $current_user_connection_data = array(
+ 'isConnected' => $is_user_connected,
+ 'isMaster' => $is_master_user,
+ 'username' => $current_user->user_login,
+ 'id' => $current_user->ID,
+ 'blogId' => $blog_id,
+ 'wpcomUser' => $wpcom_user_data,
+ 'gravatar' => get_avatar_url( $current_user->ID, 64, 'mm', '', array( 'force_display' => true ) ),
+ 'permissions' => array(
+ 'connect' => current_user_can( 'jetpack_connect' ),
+ 'connect_user' => current_user_can( 'jetpack_connect_user' ),
+ 'disconnect' => current_user_can( 'jetpack_disconnect' ),
+ ),
+ );
+
+ /**
+ * Filters the current user connection data.
+ *
+ * @since 1.30.1
+ *
+ * @param array An array containing the current user connection data.
+ */
+ $current_user_connection_data = apply_filters( 'jetpack_current_user_connection_data', $current_user_connection_data );
+
+ $response = array(
+ 'currentUser' => $current_user_connection_data,
+ 'connectionOwner' => $owner_display_name,
+ );
+
+ if ( $rest_response ) {
+ return rest_ensure_response( $response );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Permission check for the connection/data endpoint
+ *
+ * @return bool|WP_Error
+ */
+ public static function user_connection_data_permission_check() {
+ if ( current_user_can( 'jetpack_connect_user' ) ) {
+ return true;
+ }
+
+ return new WP_Error(
+ 'invalid_user_permission_user_connection_data',
+ self::get_user_permissions_error_msg(),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ /**
+ * Verifies if the request was signed with the Jetpack Debugger key
+ *
+ * @param string|null $pub_key The public key used to verify the signature. Default is the Jetpack Debugger key. This is used for testing purposes.
+ *
+ * @return bool
+ */
+ public static function is_request_signed_by_jetpack_debugger( $pub_key = null ) {
+ // phpcs:disable WordPress.Security.NonceVerification.Recommended
+ if ( ! isset( $_GET['signature'] ) || ! isset( $_GET['timestamp'] ) || ! isset( $_GET['url'] ) || ! isset( $_GET['rest_route'] ) ) {
+ return false;
+ }
+
+ // signature timestamp must be within 5min of current time.
+ if ( abs( time() - (int) $_GET['timestamp'] ) > 300 ) {
+ return false;
+ }
+
+ $signature = base64_decode( filter_var( wp_unslash( $_GET['signature'] ) ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+
+ $signature_data = wp_json_encode(
+ array(
+ 'rest_route' => filter_var( wp_unslash( $_GET['rest_route'] ) ),
+ 'timestamp' => (int) $_GET['timestamp'],
+ 'url' => filter_var( wp_unslash( $_GET['url'] ) ),
+ )
+ );
+
+ if (
+ ! function_exists( 'openssl_verify' )
+ || 1 !== openssl_verify(
+ $signature_data,
+ $signature,
+ $pub_key ? $pub_key : static::JETPACK__DEBUGGER_PUBLIC_KEY
+ )
+ ) {
+ return false;
+ }
+
+ // phpcs:enable WordPress.Security.NonceVerification.Recommended
+
+ return true;
+ }
+
+ /**
+ * Verify that user is allowed to disconnect Jetpack.
+ *
+ * @since 1.15.0
+ *
+ * @return bool|WP_Error Whether user has the capability 'jetpack_disconnect'.
+ */
+ public static function jetpack_reconnect_permission_check() {
+ if ( current_user_can( 'jetpack_reconnect' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_jetpack_disconnect', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Returns generic error message when user is not allowed to perform an action.
+ *
+ * @return string The error message.
+ */
+ public static function get_user_permissions_error_msg() {
+ return self::$user_permissions_error_msg;
+ }
+
+ /**
+ * The endpoint tried to partially or fully reconnect the website to WP.com.
+ *
+ * @since 1.15.0
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public function connection_reconnect() {
+ $response = array();
+
+ $next = null;
+
+ $result = $this->connection->restore();
+
+ if ( is_wp_error( $result ) ) {
+ $response = $result;
+ } elseif ( is_string( $result ) ) {
+ $next = $result;
+ } else {
+ $next = true === $result ? 'completed' : 'failed';
+ }
+
+ switch ( $next ) {
+ case 'authorize':
+ $response['status'] = 'in_progress';
+ $response['authorizeUrl'] = $this->connection->get_authorization_url();
+ break;
+ case 'completed':
+ $response['status'] = 'completed';
+ /**
+ * Action fired when reconnection has completed successfully.
+ *
+ * @since 1.18.1
+ */
+ do_action( 'jetpack_reconnection_completed' );
+ break;
+ case 'failed':
+ $response = new WP_Error( 'Reconnect failed' );
+ break;
+ }
+
+ return rest_ensure_response( $response );
+ }
+
+ /**
+ * Verify that user is allowed to connect Jetpack.
+ *
+ * @since 1.26.0
+ *
+ * @return bool|WP_Error Whether user has the capability 'jetpack_connect'.
+ */
+ public static function jetpack_register_permission_check() {
+ if ( current_user_can( 'jetpack_connect' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_jetpack_connect', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * The endpoint tried to partially or fully reconnect the website to WP.com.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.7.0
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public function connection_register( $request ) {
+ if ( ! wp_verify_nonce( $request->get_param( 'registration_nonce' ), 'jetpack-registration-nonce' ) ) {
+ return new WP_Error( 'invalid_nonce', __( 'Unable to verify your request.', 'jetpack-connection' ), array( 'status' => 403 ) );
+ }
+
+ if ( isset( $request['from'] ) ) {
+ $this->connection->add_register_request_param( 'from', (string) $request['from'] );
+ }
+
+ if ( ! empty( $request['plugin_slug'] ) ) {
+ // If `plugin_slug` matches a plugin using the connection, let's inform the plugin that is establishing the connection.
+ $connected_plugin = Plugin_Storage::get_one( (string) $request['plugin_slug'] );
+ if ( ! is_wp_error( $connected_plugin ) && ! empty( $connected_plugin ) ) {
+ $this->connection->set_plugin_instance( new Plugin( (string) $request['plugin_slug'] ) );
+ }
+ }
+
+ $result = $this->connection->try_registration();
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ $redirect_uri = $request->get_param( 'redirect_uri' ) ? admin_url( $request->get_param( 'redirect_uri' ) ) : null;
+
+ $authorize_url = ( new Authorize_Redirect( $this->connection ) )->build_authorize_url( $redirect_uri );
+
+ /**
+ * Filters the response of jetpack/v4/connection/register endpoint
+ *
+ * @param array $response Array response
+ * @since 1.27.0
+ */
+ $response_body = apply_filters(
+ 'jetpack_register_site_rest_response',
+ array()
+ );
+
+ // We manipulate the alternate URLs after the filter is applied, so they can not be overwritten.
+ $response_body['authorizeUrl'] = $authorize_url;
+ if ( ! empty( $response_body['alternateAuthorizeUrl'] ) ) {
+ $response_body['alternateAuthorizeUrl'] = Redirect::get_url( $response_body['alternateAuthorizeUrl'] );
+ }
+
+ return rest_ensure_response( $response_body );
+ }
+
+ /**
+ * Get the authorization URL.
+ *
+ * @since 1.27.0
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public function connection_authorize_url( $request ) {
+ $redirect_uri = $request->get_param( 'redirect_uri' ) ? admin_url( $request->get_param( 'redirect_uri' ) ) : null;
+ $authorize_url = $this->connection->get_authorization_url( null, $redirect_uri );
+
+ return rest_ensure_response(
+ array(
+ 'authorizeUrl' => $authorize_url,
+ )
+ );
+ }
+
+ /**
+ * The endpoint tried to partially or fully reconnect the website to WP.com.
+ *
+ * @since 1.29.0
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public static function update_user_token( $request ) {
+ $token_parts = explode( '.', $request['user_token'] );
+
+ if ( count( $token_parts ) !== 3 || ! (int) $token_parts[2] || ! ctype_digit( $token_parts[2] ) ) {
+ return new WP_Error( 'invalid_argument_user_token', esc_html__( 'Invalid user token is provided', 'jetpack-connection' ) );
+ }
+
+ $user_id = (int) $token_parts[2];
+
+ if ( false === get_userdata( $user_id ) ) {
+ return new WP_Error( 'invalid_argument_user_id', esc_html__( 'Invalid user id is provided', 'jetpack-connection' ) );
+ }
+
+ $connection = new Manager();
+
+ if ( ! $connection->is_connected() ) {
+ return new WP_Error( 'site_not_connected', esc_html__( 'Site is not connected', 'jetpack-connection' ) );
+ }
+
+ $is_connection_owner = isset( $request['is_connection_owner'] )
+ ? (bool) $request['is_connection_owner']
+ : ( new Manager() )->get_connection_owner_id() === $user_id;
+
+ ( new Tokens() )->update_user_token( $user_id, $request['user_token'], $is_connection_owner );
+
+ /**
+ * Fires when the user token gets successfully replaced.
+ *
+ * @since 1.29.0
+ *
+ * @param int $user_id User ID.
+ * @param string $token New user token.
+ */
+ do_action( 'jetpack_updated_user_token', $user_id, $request['user_token'] );
+
+ return rest_ensure_response(
+ array(
+ 'success' => true,
+ )
+ );
+ }
+
+ /**
+ * Disconnects Jetpack from the WordPress.com Servers
+ *
+ * @since 1.30.1
+ *
+ * @return bool|WP_Error True if Jetpack successfully disconnected.
+ */
+ public static function disconnect_site() {
+ $connection = new Manager();
+
+ if ( $connection->is_connected() ) {
+ $connection->disconnect_site();
+ return rest_ensure_response( array( 'code' => 'success' ) );
+ }
+
+ return new WP_Error(
+ 'disconnect_failed',
+ esc_html__( 'Failed to disconnect the site as it appears already disconnected.', 'jetpack-connection' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ /**
+ * Verify that the API client is allowed to replace user token.
+ *
+ * @since 1.29.0
+ *
+ * @return bool|WP_Error
+ */
+ public static function update_user_token_permission_check() {
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'invalid_permission_update_user_token', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Change the connection owner.
+ *
+ * @since 1.29.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public static function set_connection_owner( $request ) {
+ $new_owner_id = $request['owner'];
+
+ $owner_set = ( new Manager() )->update_connection_owner( $new_owner_id );
+
+ if ( is_wp_error( $owner_set ) ) {
+ return $owner_set;
+ }
+
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ )
+ );
+ }
+
+ /**
+ * Check that user has permission to change the master user.
+ *
+ * @since 1.7.0
+ * @since-jetpack 6.2.0
+ * @since-jetpack 7.7.0 Update so that any user with jetpack_disconnect privs can set owner.
+ *
+ * @return bool|WP_Error True if user is able to change master user.
+ */
+ public static function set_connection_owner_permission_check() {
+ if ( current_user_can( 'jetpack_disconnect' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_set_connection_owner', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * The endpoint verifies blog connection and blog token validity.
+ *
+ * @since 2.7.0
+ *
+ * @return mixed|null
+ */
+ public function connection_check() {
+ /**
+ * Filters the successful response of the REST API test_connection method
+ *
+ * @param string $response The response string.
+ */
+ $status = apply_filters( 'jetpack_rest_connection_check_response', 'success' );
+
+ return rest_ensure_response(
+ array(
+ 'status' => $status,
+ )
+ );
+ }
+
+ /**
+ * Remote connect endpoint permission check.
+ *
+ * @return true|WP_Error
+ */
+ public function connection_check_permission_check() {
+ if ( current_user_can( 'jetpack_connect' ) ) {
+ return true;
+ }
+
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error( 'invalid_permission_connection_check', self::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php
new file mode 100644
index 00000000..6f5de990
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-secrets.php
@@ -0,0 +1,282 @@
+ time()
+ ) {
+ return $secrets[ $secret_name ];
+ }
+
+ $secret_value = array(
+ 'secret_1' => call_user_func( $callable ),
+ 'secret_2' => call_user_func( $callable ),
+ 'exp' => time() + $exp,
+ );
+
+ $secrets[ $secret_name ] = $secret_value;
+
+ $res = Jetpack_Options::update_raw_option( self::LEGACY_SECRETS_OPTION_NAME, $secrets );
+ return $res ? $secrets[ $secret_name ] : false;
+ }
+
+ /**
+ * Returns two secret tokens and the end of life timestamp for them.
+ *
+ * @param String $action The action name.
+ * @param Integer $user_id The user identifier.
+ * @return string|array an array of secrets or an error string.
+ */
+ public function get( $action, $user_id ) {
+ $secret_name = 'jetpack_' . $action . '_' . $user_id;
+ $secrets = Jetpack_Options::get_raw_option(
+ self::LEGACY_SECRETS_OPTION_NAME,
+ array()
+ );
+
+ if ( ! isset( $secrets[ $secret_name ] ) ) {
+ return self::SECRETS_MISSING;
+ }
+
+ if ( $secrets[ $secret_name ]['exp'] < time() ) {
+ $this->delete( $action, $user_id );
+ return self::SECRETS_EXPIRED;
+ }
+
+ return $secrets[ $secret_name ];
+ }
+
+ /**
+ * Deletes secret tokens in case they, for example, have expired.
+ *
+ * @param String $action The action name.
+ * @param Integer $user_id The user identifier.
+ */
+ public function delete( $action, $user_id ) {
+ $secret_name = 'jetpack_' . $action . '_' . $user_id;
+ $secrets = Jetpack_Options::get_raw_option(
+ self::LEGACY_SECRETS_OPTION_NAME,
+ array()
+ );
+ if ( isset( $secrets[ $secret_name ] ) ) {
+ unset( $secrets[ $secret_name ] );
+ Jetpack_Options::update_raw_option( self::LEGACY_SECRETS_OPTION_NAME, $secrets );
+ }
+ }
+
+ /**
+ * Verify a Previously Generated Secret.
+ *
+ * @param string $action The type of secret to verify.
+ * @param string $secret_1 The secret string to compare to what is stored.
+ * @param int $user_id The user ID of the owner of the secret.
+ * @return WP_Error|string WP_Error on failure, secret_2 on success.
+ */
+ public function verify( $action, $secret_1, $user_id ) {
+ $allowed_actions = array( 'register', 'authorize', 'publicize' );
+ if ( ! in_array( $action, $allowed_actions, true ) ) {
+ return new WP_Error( 'unknown_verification_action', 'Unknown Verification Action', 400 );
+ }
+
+ $user = get_user_by( 'id', $user_id );
+
+ /**
+ * We've begun verifying the previously generated secret.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.5.0
+ *
+ * @param string $action The type of secret to verify.
+ * @param \WP_User $user The user object.
+ */
+ do_action( 'jetpack_verify_secrets_begin', $action, $user );
+
+ /** Closure to run the 'fail' action and return an error. */
+ $return_error = function ( WP_Error $error ) use ( $action, $user ) {
+ /**
+ * Verifying of the previously generated secret has failed.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.5.0
+ *
+ * @param string $action The type of secret to verify.
+ * @param \WP_User $user The user object.
+ * @param WP_Error $error The error object.
+ */
+ do_action( 'jetpack_verify_secrets_fail', $action, $user, $error );
+
+ return $error;
+ };
+
+ $stored_secrets = $this->get( $action, $user_id );
+ $this->delete( $action, $user_id );
+
+ $error = null;
+ if ( empty( $secret_1 ) ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secret_1_missing',
+ /* translators: "%s" is the name of a paramter. It can be either "secret_1" or "state". */
+ sprintf( __( 'The required "%s" parameter is missing.', 'jetpack-connection' ), 'secret_1' ),
+ 400
+ )
+ );
+ } elseif ( ! is_string( $secret_1 ) ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secret_1_malformed',
+ /* translators: "%s" is the name of a paramter. It can be either "secret_1" or "state". */
+ sprintf( __( 'The required "%s" parameter is malformed.', 'jetpack-connection' ), 'secret_1' ),
+ 400
+ )
+ );
+ } elseif ( empty( $user_id ) ) {
+ // $user_id is passed around during registration as "state".
+ $error = $return_error(
+ new WP_Error(
+ 'state_missing',
+ /* translators: "%s" is the name of a paramter. It can be either "secret_1" or "state". */
+ sprintf( __( 'The required "%s" parameter is missing.', 'jetpack-connection' ), 'state' ),
+ 400
+ )
+ );
+ } elseif ( ! ctype_digit( (string) $user_id ) ) {
+ $error = $return_error(
+ new WP_Error(
+ 'state_malformed',
+ /* translators: "%s" is the name of a paramter. It can be either "secret_1" or "state". */
+ sprintf( __( 'The required "%s" parameter is malformed.', 'jetpack-connection' ), 'state' ),
+ 400
+ )
+ );
+ } elseif ( self::SECRETS_MISSING === $stored_secrets ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secrets_missing',
+ __( 'Verification secrets not found', 'jetpack-connection' ),
+ 400
+ )
+ );
+ } elseif ( self::SECRETS_EXPIRED === $stored_secrets ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secrets_expired',
+ __( 'Verification took too long', 'jetpack-connection' ),
+ 400
+ )
+ );
+ } elseif ( ! $stored_secrets ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secrets_empty',
+ __( 'Verification secrets are empty', 'jetpack-connection' ),
+ 400
+ )
+ );
+ } elseif ( is_wp_error( $stored_secrets ) ) {
+ $stored_secrets->add_data( 400 );
+ $error = $return_error( $stored_secrets );
+ } elseif ( empty( $stored_secrets['secret_1'] ) || empty( $stored_secrets['secret_2'] ) || empty( $stored_secrets['exp'] ) ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secrets_incomplete',
+ __( 'Verification secrets are incomplete', 'jetpack-connection' ),
+ 400
+ )
+ );
+ } elseif ( ! hash_equals( $secret_1, $stored_secrets['secret_1'] ) ) {
+ $error = $return_error(
+ new WP_Error(
+ 'verify_secrets_mismatch',
+ __( 'Secret mismatch', 'jetpack-connection' ),
+ 400
+ )
+ );
+ }
+
+ // Something went wrong during the checks, returning the error.
+ if ( ! empty( $error ) ) {
+ return $error;
+ }
+
+ /**
+ * We've succeeded at verifying the previously generated secret.
+ *
+ * @since 1.7.0
+ * @since-jetpack 7.5.0
+ *
+ * @param string $action The type of secret to verify.
+ * @param \WP_User $user The user object.
+ */
+ do_action( 'jetpack_verify_secrets_success', $action, $user );
+
+ return $stored_secrets['secret_2'];
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php
new file mode 100644
index 00000000..a9ca288e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-server-sandbox.php
@@ -0,0 +1,243 @@
+ new URL, 'host' => new Host, 'new_signature => New signature if url was changed ]
+ */
+ public function server_sandbox_request_parameters( $sandbox, $url, $headers, $data = null, $method = 'GET' ) {
+ $host = '';
+ $new_signature = '';
+
+ if ( ! is_string( $sandbox ) || ! is_string( $url ) ) {
+ return array(
+ 'url' => $url,
+ 'host' => $host,
+ 'new_signature' => $new_signature,
+ );
+ }
+
+ $url_host = wp_parse_url( $url, PHP_URL_HOST );
+
+ switch ( $url_host ) {
+ case 'public-api.wordpress.com':
+ case 'jetpack.wordpress.com':
+ case 'jetpack.com':
+ case 'dashboard.wordpress.com':
+ $host = isset( $headers['Host'] ) ? $headers['Host'] : $url_host;
+ $original_url = $url;
+ $url = preg_replace(
+ '@^(https?://)' . preg_quote( $url_host, '@' ) . '(?=[/?#].*|$)@',
+ '${1}' . $sandbox,
+ $url,
+ 1
+ );
+
+ /**
+ * Whether to add the X Debug query parameter to the request made to the Sandbox
+ *
+ * @since 1.36.0
+ *
+ * @param bool $add_parameter Whether to add the parameter to the request or not. Default is to false.
+ * @param string $url The URL of the request being made.
+ * @param string $host The host of the request being made.
+ */
+ if ( apply_filters( 'jetpack_sandbox_add_profile_parameter', false, $url, $host ) ) {
+ $url = add_query_arg( 'XDEBUG_PROFILE', 1, $url );
+
+ // URL has been modified since the signature was created. We'll need a new one.
+ $original_url = add_query_arg( 'XDEBUG_PROFILE', 1, $original_url );
+ $new_signature = $this->get_new_signature( $original_url, $headers, $data, $method );
+
+ }
+ }
+
+ return compact( 'url', 'host', 'new_signature' );
+ }
+
+ /**
+ * Gets a new signature for the request
+ *
+ * @param string $url The new URL to be signed.
+ * @param array $headers The headers of the request about to be made.
+ * @param string $data The body of request about to be made.
+ * @param string $method The method of the request about to be made.
+ * @return string|null
+ */
+ private function get_new_signature( $url, $headers, $data, $method ) {
+
+ if ( ! empty( $headers['Authorization'] ) ) {
+ $a_headers = $this->extract_authorization_headers( $headers );
+ if ( ! empty( $a_headers ) ) {
+ $token_details = explode( ':', $a_headers['token'] );
+
+ if ( count( $token_details ) === 3 ) {
+ $user_id = $token_details[2];
+ $token = ( new Tokens() )->get_access_token( $user_id );
+ $time_diff = (int) \Jetpack_Options::get_option( 'time_diff' );
+ $jetpack_signature = new \Jetpack_Signature( $token->secret, $time_diff );
+
+ $signature = $jetpack_signature->sign_request(
+ $a_headers['token'],
+ $a_headers['timestamp'],
+ $a_headers['nonce'],
+ $a_headers['body-hash'],
+ $method,
+ $url,
+ $data,
+ false
+ );
+
+ if ( $signature && ! is_wp_error( $signature ) ) {
+ return $signature;
+ } elseif ( is_wp_error( $signature ) ) {
+ $this->log_new_signature_error( $signature->get_error_message() );
+ }
+ } else {
+ $this->log_new_signature_error( 'Malformed token on Authorization Header' );
+ }
+ } else {
+ $this->log_new_signature_error( 'Error extracting Authorization Header' );
+ }
+ } else {
+ $this->log_new_signature_error( 'Empty Authorization Header' );
+ }
+ }
+
+ /**
+ * Logs error if the attempt to create a new signature fails
+ *
+ * @param string $message The error message.
+ * @return void
+ */
+ private function log_new_signature_error( $message ) {
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
+ error_log( sprintf( "SANDBOXING: Error re-signing the request. '%s'", $message ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ }
+ }
+
+ /**
+ * Extract the values in the Authorization header into an array
+ *
+ * @param array $headers The headers of the request about to be made.
+ * @return array|null
+ */
+ public function extract_authorization_headers( $headers ) {
+ if ( ! empty( $headers['Authorization'] ) && is_string( $headers['Authorization'] ) ) {
+ $header = str_replace( 'X_JETPACK ', '', $headers['Authorization'] );
+ $vars = explode( ' ', $header );
+ $result = array();
+ foreach ( $vars as $var ) {
+ $elements = explode( '"', $var );
+ if ( count( $elements ) === 3 ) {
+ $result[ substr( $elements[0], 0, -1 ) ] = $elements[1];
+ }
+ }
+ return $result;
+ }
+ }
+
+ /**
+ * Modifies parameters of request in order to send the request to the
+ * server specified by `JETPACK__SANDBOX_DOMAIN`.
+ *
+ * Attached to the `requests-requests.before_request` filter.
+ *
+ * @param string $url URL of request about to be made.
+ * @param array $headers Headers of request about to be made.
+ * @param array|string $data Data of request about to be made.
+ * @param string $type Type of request about to be made.
+ * @return void
+ */
+ public function server_sandbox( &$url, &$headers, &$data = null, &$type = null ) {
+ if ( ! Constants::get_constant( 'JETPACK__SANDBOX_DOMAIN' ) ) {
+ return;
+ }
+
+ $original_url = $url;
+
+ $request_parameters = $this->server_sandbox_request_parameters( Constants::get_constant( 'JETPACK__SANDBOX_DOMAIN' ), $url, $headers, $data, $type );
+
+ $url = $request_parameters['url'];
+
+ if ( $request_parameters['host'] ) {
+ $headers['Host'] = $request_parameters['host'];
+
+ if ( $request_parameters['new_signature'] ) {
+ $headers['Authorization'] = preg_replace( '/signature=\"[^\"]+\"/', 'signature="' . $request_parameters['new_signature'] . '"', $headers['Authorization'] );
+ }
+
+ if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
+ error_log( sprintf( "SANDBOXING via '%s': '%s'", Constants::get_constant( 'JETPACK__SANDBOX_DOMAIN' ), $original_url ) ); // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
+ }
+ }
+ }
+
+ /**
+ * Adds a "Jetpack API Sandboxed" item to the admin bar if the JETPACK__SANDBOX_DOMAIN
+ * constant is set.
+ *
+ * Attached to the `admin_bar_menu` action.
+ *
+ * @param \WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
+ */
+ public function admin_bar_add_sandbox_item( $wp_admin_bar ) {
+ if ( ! Constants::get_constant( 'JETPACK__SANDBOX_DOMAIN' ) ) {
+ return;
+ }
+
+ $node = array(
+ 'id' => 'jetpack-connection-api-sandbox',
+ 'title' => 'Jetpack API Sandboxed',
+ 'meta' => array(
+ 'title' => 'Sandboxing via ' . Constants::get_constant( 'JETPACK__SANDBOX_DOMAIN' ),
+ ),
+ );
+
+ $wp_admin_bar->add_menu( $node );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-terms-of-service.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-terms-of-service.php
new file mode 100644
index 00000000..b208123f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-terms-of-service.php
@@ -0,0 +1,111 @@
+set_agree();
+ /**
+ * Acton fired when the master user has agreed to the terms of service.
+ *
+ * @since 1.0.4
+ * @since-jetpack 7.9.0
+ */
+ do_action( 'jetpack_agreed_to_terms_of_service' );
+ }
+
+ /**
+ * Allow the site to reject to the terms of service.
+ */
+ public function reject() {
+ $this->set_reject();
+ /**
+ * Acton fired when the master user has revoked their agreement to the terms of service.
+ *
+ * @since 1.0.4
+ * @since-jetpack 7.9.1
+ */
+ do_action( 'jetpack_reject_terms_of_service' );
+ }
+
+ /**
+ * Returns whether the master user has agreed to the terms of service.
+ *
+ * The following conditions have to be met in order to agree to the terms of service.
+ * 1. The master user has gone though the connect flow.
+ * 2. The site is not in dev mode.
+ * 3. The master user of the site is still connected (deprecated @since 1.4.0).
+ *
+ * @return bool
+ */
+ public function has_agreed() {
+ if ( $this->is_offline_mode() ) {
+ return false;
+ }
+ /**
+ * Before 1.4.0 we used to also check if the master user of the site is connected
+ * by calling the Connection related `is_active` method.
+ * As of 1.4.0 we have removed this check in order to resolve the
+ * circular dependencies it was introducing to composer packages.
+ *
+ * @since 1.4.0
+ */
+ return $this->get_raw_has_agreed();
+ }
+
+ /**
+ * Abstracted for testing purposes.
+ * Tells us if the site is in dev mode.
+ *
+ * @return bool
+ */
+ protected function is_offline_mode() {
+ return ( new Status() )->is_offline_mode();
+ }
+
+ /**
+ * Gets just the Jetpack Option that contains the terms of service state.
+ * Abstracted for testing purposes.
+ *
+ * @return bool
+ */
+ protected function get_raw_has_agreed() {
+ return \Jetpack_Options::get_option( self::OPTION_NAME, false );
+ }
+
+ /**
+ * Sets the correct Jetpack Option to mark the that the site has agreed to the terms of service.
+ * Abstracted for testing purposes.
+ */
+ protected function set_agree() {
+ \Jetpack_Options::update_option( self::OPTION_NAME, true );
+ }
+
+ /**
+ * Sets the correct Jetpack Option to mark that the site has rejected the terms of service.
+ * Abstracted for testing purposes.
+ */
+ protected function set_reject() {
+ \Jetpack_Options::update_option( self::OPTION_NAME, false );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens-locks.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens-locks.php
new file mode 100644
index 00000000..e6819a7c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens-locks.php
@@ -0,0 +1,76 @@
+init_aiowpm();
+
+ static::$is_initialized = true;
+ }
+
+ /**
+ * Set the token lock for AIOWPM plugin export.
+ *
+ * @param array $params The filter parameters.
+ *
+ * @return array
+ */
+ public function aiowpm_set_lock( $params ) {
+ ( new Tokens() )->set_lock();
+ return $params;
+ }
+
+ /**
+ * Remove the token lock for AIOWPM plugin export.
+ *
+ * @param array $params The filter parameters.
+ *
+ * @return array
+ */
+ public function aiowpm_remove_lock( $params ) {
+ ( new Tokens() )->remove_lock();
+ return $params;
+ }
+
+ /**
+ * Initialize the All-in-One-WP-Migration plugin hooks.
+ *
+ * @return void
+ */
+ private function init_aiowpm() {
+ add_filter( 'ai1wm_export', array( $this, 'aiowpm_set_lock' ), 180 );
+ add_filter( 'ai1wm_export', array( $this, 'aiowpm_remove_lock' ), 250 );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php
new file mode 100644
index 00000000..1b10356d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tokens.php
@@ -0,0 +1,687 @@
+remove_lock();
+ }
+
+ /**
+ * Perform the API request to validate the blog and user tokens.
+ *
+ * @param int|null $user_id ID of the user we need to validate token for. Current user's ID by default.
+ *
+ * @return array|false|WP_Error The API response: `array( 'blog_token_is_healthy' => true|false, 'user_token_is_healthy' => true|false )`.
+ */
+ public function validate( $user_id = null ) {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', 'Site not registered.' );
+ }
+ $url = sprintf(
+ '%s/%s/v%s/%s',
+ Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ),
+ 'wpcom',
+ '2',
+ 'sites/' . $blog_id . '/jetpack-token-health'
+ );
+
+ $user_token = $this->get_access_token( $user_id ? $user_id : get_current_user_id() );
+ $blog_token = $this->get_access_token();
+
+ // Cannot validate non-existent tokens.
+ if ( false === $user_token || false === $blog_token ) {
+ return false;
+ }
+
+ $method = 'POST';
+ $body = array(
+ 'user_token' => $this->get_signed_token( $user_token ),
+ 'blog_token' => $this->get_signed_token( $blog_token ),
+ );
+ $response = Client::_wp_remote_request( $url, compact( 'body', 'method' ) );
+
+ if ( is_wp_error( $response ) || ! wp_remote_retrieve_body( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return false;
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+
+ return $body ? $body : false;
+ }
+
+ /**
+ * Perform the API request to validate only the blog.
+ *
+ * @return bool|WP_Error Boolean with the test result. WP_Error if test cannot be performed.
+ */
+ public function validate_blog_token() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ if ( ! $blog_id ) {
+ return new WP_Error( 'site_not_registered', 'Site not registered.' );
+ }
+ $url = sprintf(
+ '%s/%s/v%s/%s',
+ Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ),
+ 'wpcom',
+ '2',
+ 'sites/' . $blog_id . '/jetpack-token-health/blog'
+ );
+
+ $method = 'GET';
+ $response = Client::remote_request( compact( 'url', 'method' ) );
+
+ if ( is_wp_error( $response ) || ! wp_remote_retrieve_body( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return false;
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ), true );
+
+ return is_array( $body ) && isset( $body['is_healthy'] ) && true === $body['is_healthy'];
+ }
+
+ /**
+ * Obtains the auth token.
+ *
+ * @param array $data The request data.
+ * @param string $token_api_url The URL of the Jetpack "token" API.
+ * @return object|WP_Error Returns the auth token on success.
+ * Returns a WP_Error on failure.
+ */
+ public function get( $data, $token_api_url ) {
+ $roles = new Roles();
+ $role = $roles->translate_current_user_to_role();
+
+ if ( ! $role ) {
+ return new WP_Error( 'role', __( 'An administrator for this blog must set up the Jetpack connection.', 'jetpack-connection' ) );
+ }
+
+ $client_secret = $this->get_access_token();
+ if ( ! $client_secret ) {
+ return new WP_Error( 'client_secret', __( 'You need to register your Jetpack before connecting it.', 'jetpack-connection' ) );
+ }
+
+ /**
+ * Filter the URL of the first time the user gets redirected back to your site for connection
+ * data processing.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param string $redirect_url Defaults to the site admin URL.
+ */
+ $processing_url = apply_filters( 'jetpack_token_processing_url', admin_url( 'admin.php' ) );
+
+ $redirect = isset( $data['redirect'] ) ? esc_url_raw( (string) $data['redirect'] ) : '';
+
+ /**
+ * Filter the URL to redirect the user back to when the authentication process
+ * is complete.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param string $redirect_url Defaults to the site URL.
+ */
+ $redirect = apply_filters( 'jetpack_token_redirect_url', $redirect );
+
+ $redirect_uri = ( 'calypso' === $data['auth_type'] )
+ ? $data['redirect_uri']
+ : add_query_arg(
+ array(
+ 'handler' => 'jetpack-connection-webhooks',
+ 'action' => 'authorize',
+ '_wpnonce' => wp_create_nonce( "jetpack-authorize_{$role}_{$redirect}" ),
+ 'redirect' => $redirect ? rawurlencode( $redirect ) : false,
+ ),
+ esc_url( $processing_url )
+ );
+
+ /**
+ * Filters the token request data.
+ *
+ * @since 1.7.0
+ * @since-jetpack 8.0.0
+ *
+ * @param array $request_data request data.
+ */
+ $body = apply_filters(
+ 'jetpack_token_request_body',
+ array(
+ 'client_id' => Jetpack_Options::get_option( 'id' ),
+ 'client_secret' => $client_secret->secret,
+ 'grant_type' => 'authorization_code',
+ 'code' => $data['code'],
+ 'redirect_uri' => $redirect_uri,
+ )
+ );
+
+ $args = array(
+ 'method' => 'POST',
+ 'body' => $body,
+ 'headers' => array(
+ 'Accept' => 'application/json',
+ ),
+ );
+ add_filter( 'http_request_timeout', array( $this, 'return_30' ), PHP_INT_MAX - 1 );
+ $response = Client::_wp_remote_request( $token_api_url, $args );
+ remove_filter( 'http_request_timeout', array( $this, 'return_30' ), PHP_INT_MAX - 1 );
+
+ if ( is_wp_error( $response ) ) {
+ return new WP_Error( 'token_http_request_failed', $response->get_error_message() );
+ }
+
+ $code = wp_remote_retrieve_response_code( $response );
+ $entity = wp_remote_retrieve_body( $response );
+
+ if ( $entity ) {
+ $json = json_decode( $entity );
+ } else {
+ $json = false;
+ }
+
+ if ( 200 !== $code || ! empty( $json->error ) ) {
+ if ( empty( $json->error ) ) {
+ return new WP_Error( 'unknown', '', $code );
+ }
+
+ /* translators: Error description string. */
+ $error_description = isset( $json->error_description ) ? sprintf( __( 'Error Details: %s', 'jetpack-connection' ), (string) $json->error_description ) : '';
+
+ return new WP_Error( (string) $json->error, $error_description, $code );
+ }
+
+ if ( empty( $json->access_token ) || ! is_scalar( $json->access_token ) ) {
+ return new WP_Error( 'access_token', '', $code );
+ }
+
+ if ( empty( $json->token_type ) || 'X_JETPACK' !== strtoupper( $json->token_type ) ) {
+ return new WP_Error( 'token_type', '', $code );
+ }
+
+ if ( empty( $json->scope ) ) {
+ return new WP_Error( 'scope', 'No Scope', $code );
+ }
+
+ // TODO: get rid of the error silencer.
+ // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged
+ @list( $role, $hmac ) = explode( ':', $json->scope );
+ if ( empty( $role ) || empty( $hmac ) ) {
+ return new WP_Error( 'scope', 'Malformed Scope', $code );
+ }
+
+ if ( $this->sign_role( $role ) !== $json->scope ) {
+ return new WP_Error( 'scope', 'Invalid Scope', $code );
+ }
+
+ $cap = $roles->translate_role_to_cap( $role );
+ if ( ! $cap ) {
+ return new WP_Error( 'scope', 'No Cap', $code );
+ }
+
+ if ( ! current_user_can( $cap ) ) {
+ return new WP_Error( 'scope', 'current_user_cannot', $code );
+ }
+
+ return (string) $json->access_token;
+ }
+
+ /**
+ * Enters a user token into the user_tokens option
+ *
+ * @param int $user_id The user id.
+ * @param string $token The user token.
+ * @param bool $is_master_user Whether the user is the master user.
+ * @return bool
+ */
+ public function update_user_token( $user_id, $token, $is_master_user ) {
+ // Not designed for concurrent updates.
+ $user_tokens = $this->get_user_tokens();
+ if ( ! is_array( $user_tokens ) ) {
+ $user_tokens = array();
+ }
+ $user_tokens[ $user_id ] = $token;
+ if ( $is_master_user ) {
+ $master_user = $user_id;
+ $options = compact( 'user_tokens', 'master_user' );
+ } else {
+ $options = compact( 'user_tokens' );
+ }
+ return Jetpack_Options::update_options( $options );
+ }
+
+ /**
+ * Sign a user role with the master access token.
+ * If not specified, will default to the current user.
+ *
+ * @access public
+ *
+ * @param string $role User role.
+ * @param int $user_id ID of the user.
+ * @return string Signed user role.
+ */
+ public function sign_role( $role, $user_id = null ) {
+ if ( empty( $user_id ) ) {
+ $user_id = (int) get_current_user_id();
+ }
+
+ if ( ! $user_id ) {
+ return false;
+ }
+
+ $token = $this->get_access_token();
+ if ( ! $token || is_wp_error( $token ) ) {
+ return false;
+ }
+
+ return $role . ':' . hash_hmac( 'md5', "{$role}|{$user_id}", $token->secret );
+ }
+
+ /**
+ * Increases the request timeout value to 30 seconds.
+ *
+ * @return int Returns 30.
+ */
+ public function return_30() {
+ return 30;
+ }
+
+ /**
+ * Gets the requested token.
+ *
+ * Tokens are one of two types:
+ * 1. Blog Tokens: These are the "main" tokens. Each site typically has one Blog Token,
+ * though some sites can have multiple "Special" Blog Tokens (see below). These tokens
+ * are not associated with a user account. They represent the site's connection with
+ * the Jetpack servers.
+ * 2. User Tokens: These are "sub-"tokens. Each connected user account has one User Token.
+ *
+ * All tokens look like "{$token_key}.{$private}". $token_key is a public ID for the
+ * token, and $private is a secret that should never be displayed anywhere or sent
+ * over the network; it's used only for signing things.
+ *
+ * Blog Tokens can be "Normal" or "Special".
+ * * Normal: The result of a normal connection flow. They look like
+ * "{$random_string_1}.{$random_string_2}"
+ * That is, $token_key and $private are both random strings.
+ * Sites only have one Normal Blog Token. Normal Tokens are found in either
+ * Jetpack_Options::get_option( 'blog_token' ) (usual) or the JETPACK_BLOG_TOKEN
+ * constant (rare).
+ * * Special: A connection token for sites that have gone through an alternative
+ * connection flow. They look like:
+ * ";{$special_id}{$special_version};{$wpcom_blog_id};.{$random_string}"
+ * That is, $private is a random string and $token_key has a special structure with
+ * lots of semicolons.
+ * Most sites have zero Special Blog Tokens. Special tokens are only found in the
+ * JETPACK_BLOG_TOKEN constant.
+ *
+ * In particular, note that Normal Blog Tokens never start with ";" and that
+ * Special Blog Tokens always do.
+ *
+ * When searching for a matching Blog Tokens, Blog Tokens are examined in the following
+ * order:
+ * 1. Defined Special Blog Tokens (via the JETPACK_BLOG_TOKEN constant)
+ * 2. Stored Normal Tokens (via Jetpack_Options::get_option( 'blog_token' ))
+ * 3. Defined Normal Tokens (via the JETPACK_BLOG_TOKEN constant)
+ *
+ * @param int|false $user_id false: Return the Blog Token. int: Return that user's User Token.
+ * @param string|false $token_key If provided, check that the token matches the provided input.
+ * @param bool|true $suppress_errors If true, return a falsy value when the token isn't found; When false, return a descriptive WP_Error when the token isn't found.
+ *
+ * @return object|false|WP_Error
+ */
+ public function get_access_token( $user_id = false, $token_key = false, $suppress_errors = true ) {
+ if ( $this->is_locked() ) {
+ $this->delete_all();
+ return false;
+ }
+
+ $possible_special_tokens = array();
+ $possible_normal_tokens = array();
+ $user_tokens = $this->get_user_tokens();
+
+ if ( $user_id ) {
+ if ( ! $user_tokens ) {
+ return $suppress_errors ? false : new WP_Error( 'no_user_tokens', __( 'No user tokens found', 'jetpack-connection' ) );
+ }
+ if ( true === $user_id ) { // connection owner.
+ $user_id = Jetpack_Options::get_option( 'master_user' );
+ if ( ! $user_id ) {
+ return $suppress_errors ? false : new WP_Error( 'empty_master_user_option', __( 'No primary user defined', 'jetpack-connection' ) );
+ }
+ }
+ if ( ! isset( $user_tokens[ $user_id ] ) || ! $user_tokens[ $user_id ] ) {
+ // translators: %s is the user ID.
+ return $suppress_errors ? false : new WP_Error( 'no_token_for_user', sprintf( __( 'No token for user %d', 'jetpack-connection' ), $user_id ) );
+ }
+ $user_token_chunks = explode( '.', $user_tokens[ $user_id ] );
+ if ( empty( $user_token_chunks[1] ) || empty( $user_token_chunks[2] ) ) {
+ // translators: %s is the user ID.
+ return $suppress_errors ? false : new WP_Error( 'token_malformed', sprintf( __( 'Token for user %d is malformed', 'jetpack-connection' ), $user_id ) );
+ }
+ if ( $user_token_chunks[2] !== (string) $user_id ) {
+ // translators: %1$d is the ID of the requested user. %2$d is the user ID found in the token.
+ return $suppress_errors ? false : new WP_Error( 'user_id_mismatch', sprintf( __( 'Requesting user_id %1$d does not match token user_id %2$d', 'jetpack-connection' ), $user_id, $user_token_chunks[2] ) );
+ }
+ $possible_normal_tokens[] = "{$user_token_chunks[0]}.{$user_token_chunks[1]}";
+ } else {
+ $stored_blog_token = Jetpack_Options::get_option( 'blog_token' );
+ if ( $stored_blog_token ) {
+ $possible_normal_tokens[] = $stored_blog_token;
+ }
+
+ $defined_tokens_string = Constants::get_constant( 'JETPACK_BLOG_TOKEN' );
+
+ if ( $defined_tokens_string ) {
+ $defined_tokens = explode( ',', $defined_tokens_string );
+ foreach ( $defined_tokens as $defined_token ) {
+ if ( ';' === $defined_token[0] ) {
+ $possible_special_tokens[] = $defined_token;
+ } else {
+ $possible_normal_tokens[] = $defined_token;
+ }
+ }
+ }
+ }
+
+ if ( self::MAGIC_NORMAL_TOKEN_KEY === $token_key ) {
+ $possible_tokens = $possible_normal_tokens;
+ } else {
+ $possible_tokens = array_merge( $possible_special_tokens, $possible_normal_tokens );
+ }
+
+ if ( ! $possible_tokens ) {
+ // If no user tokens were found, it would have failed earlier, so this is about blog token.
+ return $suppress_errors ? false : new WP_Error( 'no_possible_tokens', __( 'No blog token found', 'jetpack-connection' ) );
+ }
+
+ $valid_token = false;
+
+ if ( false === $token_key ) {
+ // Use first token.
+ $valid_token = $possible_tokens[0];
+ } elseif ( self::MAGIC_NORMAL_TOKEN_KEY === $token_key ) {
+ // Use first normal token.
+ $valid_token = $possible_tokens[0]; // $possible_tokens only contains normal tokens because of earlier check.
+ } else {
+ // Use the token matching $token_key or false if none.
+ // Ensure we check the full key.
+ $token_check = rtrim( $token_key, '.' ) . '.';
+
+ foreach ( $possible_tokens as $possible_token ) {
+ if ( hash_equals( substr( $possible_token, 0, strlen( $token_check ) ), $token_check ) ) {
+ $valid_token = $possible_token;
+ break;
+ }
+ }
+ }
+
+ if ( ! $valid_token ) {
+ if ( $user_id ) {
+ // translators: %d is the user ID.
+ return $suppress_errors ? false : new WP_Error( 'no_valid_user_token', sprintf( __( 'Invalid token for user %d', 'jetpack-connection' ), $user_id ) );
+ } else {
+ return $suppress_errors ? false : new WP_Error( 'no_valid_blog_token', __( 'Invalid blog token', 'jetpack-connection' ) );
+ }
+ }
+
+ return (object) array(
+ 'secret' => $valid_token,
+ 'external_user_id' => (int) $user_id,
+ );
+ }
+
+ /**
+ * Updates the blog token to a new value.
+ *
+ * @access public
+ *
+ * @param string $token the new blog token value.
+ * @return Boolean Whether updating the blog token was successful.
+ */
+ public function update_blog_token( $token ) {
+ return Jetpack_Options::update_option( 'blog_token', $token );
+ }
+
+ /**
+ * Unlinks the current user from the linked WordPress.com user.
+ *
+ * @access public
+ * @static
+ *
+ * @todo Refactor to properly load the XMLRPC client independently.
+ *
+ * @param int $user_id The user identifier.
+ *
+ * @return bool Whether the disconnection of the user was successful.
+ */
+ public function disconnect_user( $user_id ) {
+ $tokens = $this->get_user_tokens();
+ if ( ! $tokens ) {
+ return false;
+ }
+
+ if ( ! isset( $tokens[ $user_id ] ) ) {
+ return false;
+ }
+
+ unset( $tokens[ $user_id ] );
+
+ $this->update_user_tokens( $tokens );
+
+ return true;
+ }
+
+ /**
+ * Returns an array of user_id's that have user tokens for communicating with wpcom.
+ * Able to select by specific capability.
+ *
+ * @deprecated 1.30.0
+ * @see Manager::get_connected_users
+ *
+ * @param string $capability The capability of the user.
+ * @param int|null $limit How many connected users to get before returning.
+ * @return array Array of WP_User objects if found.
+ */
+ public function get_connected_users( $capability = 'any', $limit = null ) {
+ _deprecated_function( __METHOD__, '1.30.0' );
+ return ( new Manager( 'jetpack' ) )->get_connected_users( $capability, $limit );
+ }
+
+ /**
+ * Fetches a signed token.
+ *
+ * @param object $token the token.
+ * @return WP_Error|string a signed token
+ */
+ public function get_signed_token( $token ) {
+ if ( ! isset( $token->secret ) || empty( $token->secret ) ) {
+ return new WP_Error( 'invalid_token' );
+ }
+
+ list( $token_key, $token_secret ) = explode( '.', $token->secret );
+
+ $token_key = sprintf(
+ '%s:%d:%d',
+ $token_key,
+ Constants::get_constant( 'JETPACK__API_VERSION' ),
+ $token->external_user_id
+ );
+
+ $timestamp = time();
+
+ if ( function_exists( 'wp_generate_password' ) ) {
+ $nonce = wp_generate_password( 10, false );
+ } else {
+ $nonce = substr( sha1( wp_rand( 0, 1000000 ) ), 0, 10 );
+ }
+
+ $normalized_request_string = implode(
+ "\n",
+ array(
+ $token_key,
+ $timestamp,
+ $nonce,
+ )
+ ) . "\n";
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ $signature = base64_encode( hash_hmac( 'sha1', $normalized_request_string, $token_secret, true ) );
+
+ $auth = array(
+ 'token' => $token_key,
+ 'timestamp' => $timestamp,
+ 'nonce' => $nonce,
+ 'signature' => $signature,
+ );
+
+ $header_pieces = array();
+ foreach ( $auth as $key => $value ) {
+ $header_pieces[] = sprintf( '%s="%s"', $key, $value );
+ }
+
+ return implode( ' ', $header_pieces );
+ }
+
+ /**
+ * Gets the list of user tokens
+ *
+ * @since 1.30.0
+ *
+ * @return bool|array An array of user tokens where keys are user IDs and values are the tokens. False if no user token is found.
+ */
+ public function get_user_tokens() {
+ return Jetpack_Options::get_option( 'user_tokens' );
+ }
+
+ /**
+ * Updates the option that stores the user tokens
+ *
+ * @since 1.30.0
+ *
+ * @param array $tokens An array of user tokens where keys are user IDs and values are the tokens.
+ * @return bool Was the option successfully updated?
+ *
+ * @todo add validate the input.
+ */
+ public function update_user_tokens( $tokens ) {
+ return Jetpack_Options::update_option( 'user_tokens', $tokens );
+ }
+
+ /**
+ * Lock the tokens to the current site URL.
+ *
+ * @param int $timespan How long the tokens should be locked, in seconds.
+ *
+ * @return bool
+ */
+ public function set_lock( $timespan = HOUR_IN_SECONDS ) {
+ try {
+ $expires = ( new DateTime() )->add( DateInterval::createFromDateString( (int) $timespan . ' seconds' ) );
+ } catch ( Exception $e ) {
+ return false;
+ }
+
+ if ( false === $expires ) {
+ return false;
+ }
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
+ return Jetpack_Options::update_option( 'token_lock', $expires->format( static::DATE_FORMAT_ATOM ) . '|||' . base64_encode( Urls::site_url() ) );
+ }
+
+ /**
+ * Remove the site lock from tokens.
+ *
+ * @return bool
+ */
+ public function remove_lock() {
+ Jetpack_Options::delete_option( 'token_lock' );
+
+ return true;
+ }
+
+ /**
+ * Check if the domain is locked, remove the lock if needed.
+ * Possible scenarios:
+ * - lock expired, site URL matches the lock URL: remove the lock, return false.
+ * - lock not expired, site URL matches the lock URL: return false.
+ * - site URL does not match the lock URL (expiration date is ignored): return true, do not remove the lock.
+ *
+ * @return bool
+ */
+ public function is_locked() {
+ $the_lock = Jetpack_Options::get_option( 'token_lock' );
+ if ( ! $the_lock ) {
+ // Not locked.
+ return false;
+ }
+
+ $the_lock = explode( '|||', $the_lock, 2 );
+ if ( count( $the_lock ) !== 2 ) {
+ // Something's wrong with the lock.
+ $this->remove_lock();
+ return false;
+ }
+
+ // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
+ $locked_site_url = base64_decode( $the_lock[1] );
+ $expires = $the_lock[0];
+
+ $expiration_date = DateTime::createFromFormat( static::DATE_FORMAT_ATOM, $expires );
+ if ( false === $expiration_date || ! $locked_site_url ) {
+ // Something's wrong with the lock.
+ $this->remove_lock();
+ return false;
+ }
+
+ if ( Urls::site_url() === $locked_site_url ) {
+ if ( new DateTime() > $expiration_date ) {
+ // Site lock expired.
+ // Site URL matches, removing the lock.
+ $this->remove_lock();
+ }
+
+ return false;
+ }
+
+ // Site URL doesn't match.
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tracking.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tracking.php
new file mode 100644
index 00000000..edf23af7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-tracking.php
@@ -0,0 +1,319 @@
+product_name = $product_name;
+ $this->connection = $connection;
+ if ( $this->connection === null ) {
+ // TODO We should always pass a Connection.
+ $this->connection = new Connection\Manager();
+ }
+
+ if ( ! did_action( 'jetpack_set_tracks_ajax_hook' ) ) {
+ add_action( 'wp_ajax_jetpack_tracks', array( $this, 'ajax_tracks' ) );
+
+ /**
+ * Fires when the Tracking::ajax_tracks() callback has been hooked to the
+ * wp_ajax_jetpack_tracks action. This action is used to ensure that
+ * the callback is hooked only once.
+ *
+ * @since 1.13.11
+ */
+ do_action( 'jetpack_set_tracks_ajax_hook' );
+ }
+ }
+
+ /**
+ * Universal method for for all tracking events triggered via the JavaScript client.
+ *
+ * @access public
+ */
+ public function ajax_tracks() {
+ // Check for nonce.
+ if (
+ empty( $_REQUEST['tracksNonce'] )
+ || ! wp_verify_nonce( $_REQUEST['tracksNonce'], 'jp-tracks-ajax-nonce' ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- WP core doesn't pre-sanitize nonces either.
+ ) {
+ wp_send_json_error(
+ __( 'You aren’t authorized to do that.', 'jetpack-connection' ),
+ 403
+ );
+ }
+
+ if ( ! isset( $_REQUEST['tracksEventName'] ) || ! isset( $_REQUEST['tracksEventType'] ) ) {
+ wp_send_json_error(
+ __( 'No valid event name or type.', 'jetpack-connection' ),
+ 403
+ );
+ }
+
+ $tracks_data = array();
+ if ( 'click' === $_REQUEST['tracksEventType'] && isset( $_REQUEST['tracksEventProp'] ) ) {
+ if ( is_array( $_REQUEST['tracksEventProp'] ) ) {
+ $tracks_data = array_map( 'filter_var', wp_unslash( $_REQUEST['tracksEventProp'] ) );
+ } else {
+ $tracks_data = array( 'clicked' => filter_var( wp_unslash( $_REQUEST['tracksEventProp'] ) ) );
+ }
+ }
+
+ $this->record_user_event( filter_var( wp_unslash( $_REQUEST['tracksEventName'] ) ), $tracks_data, null, false );
+
+ wp_send_json_success();
+ }
+
+ /**
+ * Register script necessary for tracking.
+ *
+ * @param boolean $enqueue Also enqueue? defaults to false.
+ */
+ public static function register_tracks_functions_scripts( $enqueue = false ) {
+
+ // Register jp-tracks as it is a dependency.
+ wp_register_script(
+ 'jp-tracks',
+ '//stats.wp.com/w.js',
+ array(),
+ gmdate( 'YW' ),
+ true
+ );
+
+ Assets::register_script(
+ 'jp-tracks-functions',
+ '../dist/tracks-callables.js',
+ __FILE__,
+ array(
+ 'dependencies' => array( 'jp-tracks' ),
+ 'enqueue' => $enqueue,
+ 'in_footer' => true,
+ )
+ );
+ }
+
+ /**
+ * Enqueue script necessary for tracking.
+ */
+ public function enqueue_tracks_scripts() {
+ Assets::register_script(
+ 'jptracks',
+ '../dist/tracks-ajax.js',
+ __FILE__,
+ array(
+ 'dependencies' => array( 'jquery' ),
+ 'enqueue' => true,
+ 'in_footer' => true,
+ )
+ );
+
+ wp_localize_script(
+ 'jptracks',
+ 'jpTracksAJAX',
+ array(
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
+ 'jpTracksAJAX_nonce' => wp_create_nonce( 'jp-tracks-ajax-nonce' ),
+ )
+ );
+ }
+
+ /**
+ * Send an event in Tracks.
+ *
+ * @param string $event_type Type of the event.
+ * @param array $data Data to send with the event.
+ * @param mixed $user Username, user_id, or WP_User object.
+ * @param bool $use_product_prefix Whether to use the object's product name as a prefix to the event type. If
+ * set to false, the prefix will be 'jetpack_'.
+ */
+ public function record_user_event( $event_type, $data = array(), $user = null, $use_product_prefix = true ) {
+ if ( ! $user ) {
+ $user = wp_get_current_user();
+ }
+ $site_url = get_option( 'siteurl' );
+
+ $data['_via_ua'] = isset( $_SERVER['HTTP_USER_AGENT'] ) ? filter_var( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) : '';
+ $data['_via_ip'] = isset( $_SERVER['REMOTE_ADDR'] ) ? filter_var( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : '';
+ $data['_lg'] = isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ? filter_var( wp_unslash( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ) : '';
+ $data['blog_url'] = $site_url;
+ $data['blog_id'] = \Jetpack_Options::get_option( 'id' );
+
+ // Top level events should not be namespaced.
+ if ( '_aliasUser' !== $event_type ) {
+ $prefix = $use_product_prefix ? $this->product_name : 'jetpack';
+ $event_type = $prefix . '_' . $event_type;
+ }
+
+ $data['jetpack_version'] = defined( 'JETPACK__VERSION' ) ? JETPACK__VERSION : '0';
+
+ return $this->tracks_record_event( $user, $event_type, $data );
+ }
+
+ /**
+ * Record an event in Tracks - this is the preferred way to record events from PHP.
+ *
+ * @param mixed $user username, user_id, or WP_User object.
+ * @param string $event_name The name of the event.
+ * @param array $properties Custom properties to send with the event.
+ * @param int $event_timestamp_millis The time in millis since 1970-01-01 00:00:00 when the event occurred.
+ *
+ * @return bool true for success | \WP_Error if the event pixel could not be fired
+ */
+ public function tracks_record_event( $user, $event_name, $properties = array(), $event_timestamp_millis = false ) {
+
+ // We don't want to track user events during unit tests/CI runs.
+ if ( $user instanceof \WP_User && 'wptests_capabilities' === $user->cap_key ) {
+ return false;
+ }
+ $terms_of_service = new Terms_Of_Service();
+ $status = new Status();
+ // Don't track users who have not agreed to our TOS.
+ if ( ! $this->should_enable_tracking( $terms_of_service, $status ) ) {
+ return false;
+ }
+
+ $event_obj = $this->tracks_build_event_obj( $user, $event_name, $properties, $event_timestamp_millis );
+
+ if ( is_wp_error( $event_obj->error ) ) {
+ return $event_obj->error;
+ }
+
+ return $event_obj->record();
+ }
+
+ /**
+ * Determines whether tracking should be enabled.
+ *
+ * @param \Automattic\Jetpack\Terms_Of_Service $terms_of_service A Terms_Of_Service object.
+ * @param \Automattic\Jetpack\Status $status A Status object.
+ *
+ * @return boolean True if tracking should be enabled, else false.
+ */
+ public function should_enable_tracking( $terms_of_service, $status ) {
+ if ( $status->is_offline_mode() ) {
+ return false;
+ }
+
+ return $terms_of_service->has_agreed() || $this->connection->is_user_connected();
+ }
+
+ /**
+ * Procedurally build a Tracks Event Object.
+ * NOTE: Use this only when the simpler Automattic\Jetpack\Tracking->jetpack_tracks_record_event() function won't work for you.
+ *
+ * @param \WP_User $user WP_User object.
+ * @param string $event_name The name of the event.
+ * @param array $properties Custom properties to send with the event.
+ * @param int $event_timestamp_millis The time in millis since 1970-01-01 00:00:00 when the event occurred.
+ *
+ * @return \Jetpack_Tracks_Event|\WP_Error
+ */
+ private function tracks_build_event_obj( $user, $event_name, $properties = array(), $event_timestamp_millis = false ) {
+ $identity = $this->tracks_get_identity( $user->ID );
+
+ $properties['user_lang'] = $user->get( 'WPLANG' );
+
+ $blog_details = array(
+ 'blog_lang' => isset( $properties['blog_lang'] ) ? $properties['blog_lang'] : get_bloginfo( 'language' ),
+ 'blog_id' => \Jetpack_Options::get_option( 'id' ),
+ );
+
+ $timestamp = ( false !== $event_timestamp_millis ) ? $event_timestamp_millis : round( microtime( true ) * 1000 );
+ $timestamp_string = is_string( $timestamp ) ? $timestamp : number_format( $timestamp, 0, '', '' );
+
+ return new \Jetpack_Tracks_Event(
+ array_merge(
+ $blog_details,
+ (array) $properties,
+ $identity,
+ array(
+ '_en' => $event_name,
+ '_ts' => $timestamp_string,
+ )
+ )
+ );
+ }
+
+ /**
+ * Get the identity to send to tracks.
+ *
+ * @param int $user_id The user id of the local user.
+ *
+ * @return array $identity
+ */
+ public function tracks_get_identity( $user_id ) {
+
+ // Meta is set, and user is still connected. Use WPCOM ID.
+ $wpcom_id = get_user_meta( $user_id, 'jetpack_tracks_wpcom_id', true );
+ if ( $wpcom_id && $this->connection->is_user_connected( $user_id ) ) {
+ return array(
+ '_ut' => 'wpcom:user_id',
+ '_ui' => $wpcom_id,
+ );
+ }
+
+ // User is connected, but no meta is set yet. Use WPCOM ID and set meta.
+ if ( $this->connection->is_user_connected( $user_id ) ) {
+ $wpcom_user_data = $this->connection->get_connected_user_data( $user_id );
+ update_user_meta( $user_id, 'jetpack_tracks_wpcom_id', $wpcom_user_data['ID'] );
+
+ return array(
+ '_ut' => 'wpcom:user_id',
+ '_ui' => $wpcom_user_data['ID'],
+ );
+ }
+
+ // User isn't linked at all. Fall back to anonymous ID.
+ $anon_id = get_user_meta( $user_id, 'jetpack_tracks_anon_id', true );
+ if ( ! $anon_id ) {
+ $anon_id = \Jetpack_Tracks_Client::get_anon_id();
+ add_user_meta( $user_id, 'jetpack_tracks_anon_id', $anon_id, false );
+ }
+
+ if ( ! isset( $_COOKIE['tk_ai'] ) && ! headers_sent() ) {
+ setcookie( 'tk_ai', $anon_id, 0, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), false ); // phpcs:ignore Jetpack.Functions.SetCookie -- This is a random string and should be fine.
+ }
+
+ return array(
+ '_ut' => 'anon',
+ '_ui' => $anon_id,
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php
new file mode 100644
index 00000000..f8c22cee
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-urls.php
@@ -0,0 +1,192 @@
+update_user_token() instead.
+ *
+ * @param int $user_id The user id.
+ * @param string $token The user token.
+ * @param bool $is_master_user Whether the user is the master user.
+ * @return bool
+ */
+ public static function update_user_token( $user_id, $token, $is_master_user ) {
+ _deprecated_function( __METHOD__, '1.24.0', 'Automattic\\Jetpack\\Connection\\Tokens->update_user_token' );
+ return ( new Tokens() )->update_user_token( $user_id, $token, $is_master_user );
+ }
+
+ /**
+ * Filters the value of the api constant.
+ *
+ * @param String $constant_value The constant value.
+ * @param String $constant_name The constant name.
+ * @return mixed | null
+ */
+ public static function jetpack_api_constant_filter( $constant_value, $constant_name ) {
+ if ( $constant_value !== null ) {
+ // If the constant value was already set elsewhere, use that value.
+ return $constant_value;
+ }
+
+ if ( defined( "self::DEFAULT_$constant_name" ) ) {
+ return constant( "self::DEFAULT_$constant_name" );
+ }
+
+ return null;
+ }
+
+ /**
+ * Add a filter to initialize default values of the constants.
+ */
+ public static function init_default_constants() {
+ add_filter(
+ 'jetpack_constant_default_value',
+ array( __CLASS__, 'jetpack_api_constant_filter' ),
+ 10,
+ 2
+ );
+ }
+
+ /**
+ * Filters the registration request body to include tracking properties.
+ *
+ * @param array $properties Already prepared tracking properties.
+ * @return array amended properties.
+ */
+ public static function filter_register_request_body( $properties ) {
+ $tracking = new Tracking();
+ $tracks_identity = $tracking->tracks_get_identity( get_current_user_id() );
+
+ return array_merge(
+ $properties,
+ array(
+ '_ui' => $tracks_identity['_ui'],
+ '_ut' => $tracks_identity['_ut'],
+ )
+ );
+ }
+
+ /**
+ * Generate a new user from a SSO attempt.
+ *
+ * @param object $user_data WordPress.com user information.
+ */
+ public static function generate_user( $user_data ) {
+ $username = $user_data->login;
+ /**
+ * Determines how many times the SSO module can attempt to randomly generate a user.
+ *
+ * @module sso
+ *
+ * @since jetpack-4.3.2
+ *
+ * @param int 5 By default, SSO will attempt to random generate a user up to 5 times.
+ */
+ $num_tries = (int) apply_filters( 'jetpack_sso_allowed_username_generate_retries', 5 );
+
+ $exists = username_exists( $username );
+ $tries = 0;
+ while ( $exists && $tries++ < $num_tries ) {
+ $username = $user_data->login . '_' . $user_data->ID . '_' . wp_rand();
+ $exists = username_exists( $username );
+ }
+
+ if ( $exists ) {
+ return false;
+ }
+
+ $user = (object) array();
+ $user->user_pass = wp_generate_password( 20 );
+ $user->user_login = wp_slash( $username );
+ $user->user_email = wp_slash( $user_data->email );
+ $user->display_name = $user_data->display_name;
+ $user->first_name = $user_data->first_name;
+ $user->last_name = $user_data->last_name;
+ $user->url = $user_data->url;
+ $user->description = $user_data->description;
+
+ if ( isset( $user_data->role ) && $user_data->role ) {
+ $user->role = $user_data->role;
+ }
+
+ $created_user_id = wp_insert_user( $user );
+
+ update_user_meta( $created_user_id, 'wpcom_user_id', $user_data->ID );
+ return get_userdata( $created_user_id );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php
new file mode 100644
index 00000000..de580c06
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-webhooks.php
@@ -0,0 +1,213 @@
+connection = $connection;
+ }
+
+ /**
+ * Initialize the webhooks.
+ *
+ * @param Manager $connection The Connection Manager object.
+ */
+ public static function init( $connection ) {
+ $webhooks = new static( $connection );
+
+ add_action( 'init', array( $webhooks, 'controller' ) );
+ add_action( 'load-toplevel_page_jetpack', array( $webhooks, 'fallback_jetpack_controller' ) );
+ }
+
+ /**
+ * Jetpack plugin used to trigger this webhooks in Jetpack::admin_page_load()
+ *
+ * The Jetpack toplevel menu is still accessible for stand-alone plugins, and while there's no content for that page, there are still
+ * actions from Calypso and WPCOM that reach that route regardless of the site having the Jetpack plugin or not. That's why we are still handling it here.
+ */
+ public function fallback_jetpack_controller() {
+ $this->controller( true );
+ }
+
+ /**
+ * The "controller" decides which handler we need to run.
+ *
+ * @param bool $force Do not check if it's a webhook request and just run the controller.
+ */
+ public function controller( $force = false ) {
+ if ( ! $force ) {
+ // The nonce is verified in specific handlers.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( empty( $_GET['handler'] ) || 'jetpack-connection-webhooks' !== $_GET['handler'] ) {
+ return;
+ }
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( isset( $_GET['connect_url_redirect'] ) ) {
+ $this->handle_connect_url_redirect();
+ }
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( empty( $_GET['action'] ) ) {
+ return;
+ }
+
+ // The nonce is verified in specific handlers.
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ switch ( $_GET['action'] ) {
+ case 'authorize':
+ $this->handle_authorize();
+ $this->do_exit();
+ break; // @phan-suppress-current-line PhanPluginUnreachableCode -- Safer to include it even though do_exit never returns.
+ case 'authorize_redirect':
+ $this->handle_authorize_redirect();
+ $this->do_exit();
+ break; // @phan-suppress-current-line PhanPluginUnreachableCode -- Safer to include it even though do_exit never returns.
+ // Class Jetpack::admin_page_load() still handles other cases.
+ }
+ }
+
+ /**
+ * Perform the authorization action.
+ */
+ public function handle_authorize() {
+ if ( $this->connection->is_connected() && $this->connection->is_user_connected() ) {
+ $redirect_url = apply_filters( 'jetpack_client_authorize_already_authorized_url', admin_url() );
+ wp_safe_redirect( $redirect_url );
+
+ return;
+ }
+ do_action( 'jetpack_client_authorize_processing' );
+
+ $data = stripslashes_deep( $_GET ); // We need all request data under the context of an authorization request.
+ $data['auth_type'] = 'client';
+ $roles = new Roles();
+ $role = $roles->translate_current_user_to_role();
+ $redirect = isset( $data['redirect'] ) ? esc_url_raw( (string) $data['redirect'] ) : '';
+
+ check_admin_referer( "jetpack-authorize_{$role}_{$redirect}" );
+
+ $tracking = new Tracking();
+
+ $result = $this->connection->authorize( $data );
+
+ if ( is_wp_error( $result ) ) {
+ do_action( 'jetpack_client_authorize_error', $result );
+
+ $tracking->record_user_event(
+ 'jpc_client_authorize_fail',
+ array(
+ 'error_code' => $result->get_error_code(),
+ 'error_message' => $result->get_error_message(),
+ )
+ );
+ } else {
+ /**
+ * Fires after the Jetpack client is authorized to communicate with WordPress.com.
+ *
+ * @param int Jetpack Blog ID.
+ *
+ * @since 1.7.0
+ * @since-jetpack 4.2.0
+ */
+ do_action( 'jetpack_client_authorized', Jetpack_Options::get_option( 'id' ) );
+
+ $tracking->record_user_event( 'jpc_client_authorize_success' );
+ }
+
+ $fallback_redirect = apply_filters( 'jetpack_client_authorize_fallback_url', admin_url() );
+ $redirect = wp_validate_redirect( $redirect ) ? $redirect : $fallback_redirect;
+
+ wp_safe_redirect( $redirect );
+ }
+
+ /**
+ * The authorhize_redirect webhook handler
+ */
+ public function handle_authorize_redirect() {
+ $authorize_redirect_handler = new Webhooks\Authorize_Redirect( $this->connection );
+ $authorize_redirect_handler->handle();
+ }
+
+ /**
+ * The `exit` is wrapped into a method so we could mock it.
+ *
+ * @return never
+ */
+ protected function do_exit() {
+ exit;
+ }
+
+ /**
+ * Handle the `connect_url_redirect` action,
+ * which is usually called to repeat an attempt for user to authorize the connection.
+ *
+ * @return void
+ */
+ public function handle_connect_url_redirect() {
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- no site changes.
+ $from = ! empty( $_GET['from'] ) ? sanitize_text_field( wp_unslash( $_GET['from'] ) ) : 'iframe';
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- no site changes, sanitization happens in get_authorization_url()
+ $redirect = ! empty( $_GET['redirect_after_auth'] ) ? wp_unslash( $_GET['redirect_after_auth'] ) : false;
+
+ add_filter( 'allowed_redirect_hosts', array( Host::class, 'allow_wpcom_environments' ) );
+
+ if ( ! $this->connection->is_user_connected() ) {
+ if ( ! $this->connection->is_connected() ) {
+ $this->connection->register();
+ }
+
+ $connect_url = add_query_arg( 'from', $from, $this->connection->get_authorization_url( null, $redirect ) );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- no site changes.
+ if ( isset( $_GET['notes_iframe'] ) ) {
+ $connect_url .= '¬es_iframe';
+ }
+ wp_safe_redirect( $connect_url );
+ $this->do_exit();
+ } elseif ( ! isset( $_GET['calypso_env'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended -- no site changes.
+ ( new CookieState() )->state( 'message', 'already_authorized' );
+ wp_safe_redirect( $redirect );
+ $this->do_exit();
+ } else {
+ $connect_url = add_query_arg(
+ array(
+ 'from' => $from,
+ 'already_authorized' => true,
+ ),
+ $this->connection->get_authorization_url()
+ );
+ wp_safe_redirect( $connect_url );
+ $this->do_exit();
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php
new file mode 100644
index 00000000..bc525104
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-async-call.php
@@ -0,0 +1,106 @@
+ [
+ * $user_id => [
+ * arrat of Jetpack_IXR_ClientMulticall
+ * ]
+ * ]
+ * ]
+ *
+ * @var array
+ */
+ public static $clients = array();
+
+ /**
+ * Adds a new XMLRPC call to the queue to be processed on shutdown
+ *
+ * @param string $method The XML-RPC method.
+ * @param integer $user_id The user ID used to make the request (will use this user's token); Use 0 for the blog token.
+ * @param mixed ...$args This function accepts any number of additional arguments, that will be passed to the call.
+ * @return void
+ */
+ public static function add_call( $method, $user_id = 0, ...$args ) {
+ global $blog_id;
+
+ $client_blog_id = is_multisite() ? $blog_id : 0;
+
+ if ( ! isset( self::$clients[ $client_blog_id ] ) ) {
+ self::$clients[ $client_blog_id ] = array();
+ }
+
+ if ( ! isset( self::$clients[ $client_blog_id ][ $user_id ] ) ) {
+ self::$clients[ $client_blog_id ][ $user_id ] = new Jetpack_IXR_ClientMulticall( array( 'user_id' => $user_id ) );
+ }
+
+ // https://plugins.trac.wordpress.org/ticket/2041
+ if ( function_exists( 'ignore_user_abort' ) ) {
+ ignore_user_abort( true );
+ }
+
+ array_unshift( $args, $method );
+
+ call_user_func_array( array( self::$clients[ $client_blog_id ][ $user_id ], 'addCall' ), $args );
+
+ if ( false === has_action( 'shutdown', array( 'Automattic\Jetpack\Connection\XMLRPC_Async_Call', 'do_calls' ) ) ) {
+ add_action( 'shutdown', array( 'Automattic\Jetpack\Connection\XMLRPC_Async_Call', 'do_calls' ) );
+ }
+ }
+
+ /**
+ * Trigger the calls at shutdown
+ *
+ * @return void
+ */
+ public static function do_calls() {
+ foreach ( self::$clients as $client_blog_id => $blog_clients ) {
+ if ( $client_blog_id > 0 ) {
+ $switch_success = switch_to_blog( $client_blog_id );
+
+ if ( ! $switch_success ) {
+ continue;
+ }
+ }
+
+ foreach ( $blog_clients as $client ) {
+ if ( empty( $client->calls ) ) {
+ continue;
+ }
+
+ flush();
+ $client->query();
+ }
+
+ if ( $client_blog_id > 0 ) {
+ restore_current_blog();
+ }
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php
new file mode 100644
index 00000000..a5693cf2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/class-xmlrpc-connector.php
@@ -0,0 +1,85 @@
+connection = $connection;
+
+ // Adding the filter late to avoid being overwritten by Jetpack's XMLRPC server.
+ add_filter( 'xmlrpc_methods', array( $this, 'xmlrpc_methods' ), 20 );
+ }
+
+ /**
+ * Attached to the `xmlrpc_methods` filter.
+ *
+ * @param array $methods The already registered XML-RPC methods.
+ * @return array
+ */
+ public function xmlrpc_methods( $methods ) {
+ return array_merge(
+ $methods,
+ array(
+ 'jetpack.verifyRegistration' => array( $this, 'verify_registration' ),
+ )
+ );
+ }
+
+ /**
+ * Handles verification that a site is registered.
+ *
+ * @param array $registration_data The data sent by the XML-RPC client:
+ * [ $secret_1, $user_id ].
+ *
+ * @return string|IXR_Error
+ */
+ public function verify_registration( $registration_data ) {
+ return $this->output( $this->connection->handle_registration( $registration_data ) );
+ }
+
+ /**
+ * Normalizes output for XML-RPC.
+ *
+ * @param mixed $data The data to output.
+ */
+ private function output( $data ) {
+ if ( is_wp_error( $data ) ) {
+ $code = $data->get_error_data();
+ if ( ! $code ) {
+ $code = -10520;
+ }
+
+ if ( ! class_exists( IXR_Error::class ) ) {
+ require_once ABSPATH . WPINC . '/class-IXR.php';
+ }
+ return new IXR_Error(
+ $code,
+ sprintf( 'Jetpack: [%s] %s', $data->get_error_code(), $data->get_error_message() )
+ );
+ }
+
+ return $data;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin-bar.scss b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin-bar.scss
new file mode 100644
index 00000000..262b0819
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin-bar.scss
@@ -0,0 +1,30 @@
+#wpadminbar #wp-admin-bar-jetpack-idc {
+ margin-right: 5px;
+
+ .jp-idc-admin-bar {
+ border-radius: 2px;
+ font-weight: 500;
+ font-size: 14px;
+ line-height: 20px;
+ color: #EFEFF0;
+ padding: 6px 8px;
+ }
+
+ &.hide {
+ display: none;
+ }
+
+ .dashicons {
+ font-family: 'dashicons';
+ margin-top: -6px;
+
+ &:before {
+ font-size: 18px;
+ }
+ }
+
+ .ab-item {
+ padding: 0;
+ background: #E68B28;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin.jsx b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin.jsx
new file mode 100644
index 00000000..8d731738
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/admin.jsx
@@ -0,0 +1,62 @@
+import { IDCScreen } from '@automattic/jetpack-idc';
+import * as WPElement from '@wordpress/element';
+import React from 'react';
+
+import './admin-bar.scss';
+import './style.scss';
+
+/**
+ * The initial renderer function.
+ */
+function render() {
+ if ( ! Object.hasOwn( window, 'JP_IDENTITY_CRISIS__INITIAL_STATE' ) ) {
+ return;
+ }
+
+ const container = document.getElementById(
+ window.JP_IDENTITY_CRISIS__INITIAL_STATE.containerID || 'jp-identity-crisis-container'
+ );
+
+ if ( null === container ) {
+ return;
+ }
+
+ const {
+ WP_API_root,
+ WP_API_nonce,
+ wpcomHomeUrl,
+ currentUrl,
+ redirectUri,
+ tracksUserData,
+ tracksEventData,
+ isSafeModeConfirmed,
+ consumerData,
+ isAdmin,
+ possibleDynamicSiteUrlDetected,
+ isDevelopmentSite,
+ } = window.JP_IDENTITY_CRISIS__INITIAL_STATE;
+
+ if ( ! isSafeModeConfirmed ) {
+ const component = (
+
+ );
+ WPElement.createRoot( container ).render( component );
+ }
+}
+
+window.addEventListener( 'load', () => render() );
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/style.scss b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/style.scss
new file mode 100644
index 00000000..14f09db9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/_inc/style.scss
@@ -0,0 +1,9 @@
+#jp-identity-crisis-container .jp-idc__idc-screen {
+ margin-top: 40px;
+ margin-bottom: 40px;
+}
+
+#jp-identity-crisis-container.notice {
+ background: none;
+ border: none;
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-exception.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-exception.php
new file mode 100644
index 00000000..f6bd4140
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-exception.php
@@ -0,0 +1,13 @@
+disconnect_site( true );
+ } else {
+ $connection->disconnect_site( false );
+ }
+
+ delete_option( static::PERSISTENT_BLOG_ID_OPTION_NAME );
+
+ // Clear IDC options.
+ self::clear_all_idc_options();
+ }
+
+ /**
+ * Filter to prevent site from disconnecting from WPCOM if it's in an IDC.
+ *
+ * @see jetpack_connection_disconnect_site_wpcom filter.
+ *
+ * @return bool False if the site is in IDC, true otherwise.
+ */
+ public static function jetpack_connection_disconnect_site_wpcom_filter() {
+ return ! self::validate_sync_error_idc_option();
+ }
+
+ /**
+ * This method loops through the array of processed items from sync and checks if one of the items was the
+ * home_url or site_url callable. If so, then we delete the jetpack_migrate_for_idc option.
+ *
+ * @param array $processed_items Array of processed items that were synced to WordPress.com.
+ */
+ public function maybe_clear_migrate_option( $processed_items ) {
+ foreach ( (array) $processed_items as $item ) {
+
+ // First, is this item a jetpack_sync_callable action? If so, then proceed.
+ $callable_args = ( is_array( $item ) && isset( $item[0] ) && isset( $item[1] ) && 'jetpack_sync_callable' === $item[0] )
+ ? $item[1]
+ : null;
+
+ // Second, if $callable_args is set, check if the callable was home_url or site_url. If so,
+ // clear the migrate option.
+ if (
+ isset( $callable_args[0] )
+ && ( 'home_url' === $callable_args[0] || 'site_url' === $callable_args[1] )
+ ) {
+ Jetpack_Options::delete_option( 'migrate_for_idc' );
+ break;
+ }
+ }
+ }
+
+ /**
+ * WordPress init.
+ *
+ * @return void
+ */
+ public function wordpress_init() {
+ if ( current_user_can( 'jetpack_disconnect' ) ) {
+ if (
+ isset( $_GET['jetpack_idc_clear_confirmation'] ) && isset( $_GET['_wpnonce'] ) &&
+ wp_verify_nonce( $_GET['_wpnonce'], 'jetpack_idc_clear_confirmation' ) // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- WordPress core doesn't unslash or verify nonces either.
+ ) {
+ Jetpack_Options::delete_option( 'safe_mode_confirmed' );
+ self::$is_safe_mode_confirmed = false;
+ } else {
+ self::$is_safe_mode_confirmed = (bool) Jetpack_Options::get_option( 'safe_mode_confirmed' );
+ }
+ }
+
+ // 121 Priority so that it's the most inner Jetpack item in the admin bar.
+ add_action( 'admin_bar_menu', array( $this, 'display_admin_bar_button' ), 121 );
+
+ UI::init();
+ }
+
+ /**
+ * Add the idc query arguments to the url.
+ *
+ * @param string $url The remote request url.
+ */
+ public function add_idc_query_args_to_url( $url ) {
+ $status = new Status();
+ if ( ! is_string( $url )
+ || $status->is_offline_mode()
+ || self::validate_sync_error_idc_option() ) {
+ return $url;
+ }
+ $home_url = Urls::home_url();
+ $site_url = Urls::site_url();
+ $hostname = wp_parse_url( $site_url, PHP_URL_HOST );
+
+ // If request is from an IP, make sure ip_requester option is set
+ if ( self::url_is_ip( $hostname ) ) {
+ self::maybe_update_ip_requester( $hostname );
+ }
+
+ $query_args = array(
+ 'home' => $home_url,
+ 'siteurl' => $site_url,
+ );
+
+ if ( self::should_handle_idc() ) {
+ $query_args['idc'] = true;
+ }
+
+ if ( \Jetpack_Options::get_option( 'migrate_for_idc', false ) ) {
+ $query_args['migrate_for_idc'] = true;
+ }
+
+ if ( is_multisite() ) {
+ $query_args['multisite'] = true;
+ }
+
+ return add_query_arg( $query_args, $url );
+ }
+
+ /**
+ * Renders the admin bar button.
+ *
+ * @return void
+ */
+ public function display_admin_bar_button() {
+ global $wp_admin_bar;
+
+ $href = is_admin()
+ ? add_query_arg( 'jetpack_idc_clear_confirmation', '1' )
+ : add_query_arg( 'jetpack_idc_clear_confirmation', '1', admin_url() );
+
+ $href = wp_nonce_url( $href, 'jetpack_idc_clear_confirmation' );
+
+ $consumer_data = UI::get_consumer_data();
+ $label = isset( $consumer_data['customContent']['adminBarSafeModeLabel'] )
+ ? esc_html( $consumer_data['customContent']['adminBarSafeModeLabel'] )
+ : esc_html__( 'Jetpack Safe Mode', 'jetpack-connection' );
+
+ $title = sprintf(
+ '%s %s',
+ '',
+ $label
+ );
+
+ $menu = array(
+ 'id' => 'jetpack-idc',
+ 'title' => $title,
+ 'href' => esc_url( $href ),
+ 'parent' => 'top-secondary',
+ );
+
+ if ( ! self::$is_safe_mode_confirmed ) {
+ $menu['meta'] = array(
+ 'class' => 'hide',
+ );
+ }
+
+ $wp_admin_bar->add_node( $menu );
+ }
+
+ /**
+ * Checks if the site is currently in an identity crisis.
+ *
+ * @return array|bool Array of options that are in a crisis, or false if everything is OK.
+ */
+ public static function check_identity_crisis() {
+ $connection = new Connection_Manager( 'jetpack' );
+
+ if ( ! $connection->is_connected() || ( new Status() )->is_offline_mode() || ! self::validate_sync_error_idc_option() ) {
+ return false;
+ }
+ return Jetpack_Options::get_option( 'sync_error_idc' );
+ }
+
+ /**
+ * Checks the HTTP response body for the 'idc_detected' key. If the key exists,
+ * checks the idc_detected value for a valid idc error.
+ *
+ * @param array|WP_Error $http_response The HTTP response.
+ *
+ * @return bool Whether the site is in an identity crisis.
+ */
+ public function check_http_response_for_idc_detected( $http_response ) {
+ if ( ! is_array( $http_response ) ) {
+ return false;
+ }
+ $response_body = json_decode( wp_remote_retrieve_body( $http_response ), true );
+
+ if ( isset( $response_body['idc_detected'] ) ) {
+ return $this->check_response_for_idc( $response_body['idc_detected'] );
+ }
+
+ if ( isset( $response_body['migrated_for_idc'] ) ) {
+ Jetpack_Options::delete_option( 'migrate_for_idc' );
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks the WPCOM response to determine if the site is in an identity crisis. Updates the
+ * sync_error_idc option if it is.
+ *
+ * @param array $response The response data.
+ *
+ * @return bool Whether the site is in an identity crisis.
+ */
+ public function check_response_for_idc( $response ) {
+ if ( is_array( $response ) && isset( $response['error_code'] ) ) {
+ $error_code = $response['error_code'];
+ $allowed_idc_error_codes = array(
+ 'jetpack_url_mismatch',
+ 'jetpack_home_url_mismatch',
+ 'jetpack_site_url_mismatch',
+ );
+
+ if ( in_array( $error_code, $allowed_idc_error_codes, true ) ) {
+ Jetpack_Options::update_option(
+ 'sync_error_idc',
+ self::get_sync_error_idc_option( $response )
+ );
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Clears all IDC specific options. This method is used on disconnect and reconnect.
+ *
+ * @return void
+ */
+ public static function clear_all_idc_options() {
+ // If the site is currently in IDC, let's also clear the VaultPress connection options.
+ // We have to check if the site is in IDC, otherwise we'd be clearing the VaultPress
+ // connection any time the Jetpack connection is cycled.
+ if ( self::validate_sync_error_idc_option() ) {
+ delete_option( 'vaultpress' );
+ delete_option( 'vaultpress_auto_register' );
+ }
+
+ Jetpack_Options::delete_option(
+ array(
+ 'sync_error_idc',
+ 'safe_mode_confirmed',
+ 'migrate_for_idc',
+ )
+ );
+
+ delete_transient( 'jetpack_idc_possible_dynamic_site_url_detected' );
+ }
+
+ /**
+ * Checks whether the sync_error_idc option is valid or not, and if not, will do cleanup.
+ *
+ * @return bool
+ * @since-jetpack 5.4.0 Do not call get_sync_error_idc_option() unless site is in IDC
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ public static function validate_sync_error_idc_option() {
+ $is_valid = false;
+
+ // Is the site opted in and does the stored sync_error_idc option match what we now generate?
+ $sync_error = Jetpack_Options::get_option( 'sync_error_idc' );
+ if ( $sync_error && self::should_handle_idc() ) {
+ $local_options = self::get_sync_error_idc_option();
+
+ // Ensure all values are set.
+ if ( isset( $sync_error['home'] ) && isset( $local_options['home'] ) && isset( $sync_error['siteurl'] ) && isset( $local_options['siteurl'] ) ) {
+ // If the WP.com expected home and siteurl match local home and siteurl it is not valid IDC.
+ if (
+ isset( $sync_error['wpcom_home'] ) &&
+ isset( $sync_error['wpcom_siteurl'] ) &&
+ $sync_error['wpcom_home'] === $local_options['home'] &&
+ $sync_error['wpcom_siteurl'] === $local_options['siteurl']
+ ) {
+ // Enable migrate_for_idc so that sync actions are accepted.
+ Jetpack_Options::update_option( 'migrate_for_idc', true );
+ } elseif ( $sync_error['home'] === $local_options['home'] && $sync_error['siteurl'] === $local_options['siteurl'] ) {
+ $is_valid = true;
+ }
+ }
+ }
+
+ /**
+ * Filters whether the sync_error_idc option is valid.
+ *
+ * @param bool $is_valid If the sync_error_idc is valid or not.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ $is_valid = (bool) apply_filters( 'jetpack_sync_error_idc_validation', $is_valid );
+
+ if ( ! $is_valid && $sync_error ) {
+ // Since the option exists, and did not validate, delete it.
+ Jetpack_Options::delete_option( 'sync_error_idc' );
+ }
+
+ return $is_valid;
+ }
+
+ /**
+ * Reverses WP.com URLs stored in sync_error_idc option.
+ *
+ * @param array $sync_error error option containing reversed URLs.
+ * @return array
+ */
+ public static function reverse_wpcom_urls_for_idc( $sync_error ) {
+ if ( isset( $sync_error['reversed_url'] ) ) {
+ if ( array_key_exists( 'wpcom_siteurl', $sync_error ) ) {
+ $sync_error['wpcom_siteurl'] = strrev( $sync_error['wpcom_siteurl'] );
+ }
+ if ( array_key_exists( 'wpcom_home', $sync_error ) ) {
+ $sync_error['wpcom_home'] = strrev( $sync_error['wpcom_home'] );
+ }
+ }
+ return $sync_error;
+ }
+
+ /**
+ * Normalizes a url by doing three things:
+ * - Strips protocol
+ * - Strips www
+ * - Adds a trailing slash
+ *
+ * @param string $url URL to parse.
+ *
+ * @return WP_Error|string
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ */
+ public static function normalize_url_protocol_agnostic( $url ) {
+ $parsed_url = wp_parse_url( trailingslashit( esc_url_raw( $url ) ) );
+ if ( ! $parsed_url || empty( $parsed_url['host'] ) || empty( $parsed_url['path'] ) ) {
+ return new WP_Error(
+ 'cannot_parse_url',
+ sprintf(
+ /* translators: %s: URL to parse. */
+ esc_html__( 'Cannot parse URL %s', 'jetpack-connection' ),
+ $url
+ )
+ );
+ }
+
+ // Strip www and protocols.
+ $url = preg_replace( '/^www\./i', '', $parsed_url['host'] . $parsed_url['path'] );
+
+ return $url;
+ }
+
+ /**
+ * Gets the value that is to be saved in the jetpack_sync_error_idc option.
+ *
+ * @param array $response HTTP response.
+ *
+ * @return array Array of the local urls, wpcom urls, and error code.
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ * @since-jetpack 5.4.0 Add transient since home/siteurl retrieved directly from DB.
+ */
+ public static function get_sync_error_idc_option( $response = array() ) {
+ // Since the local options will hit the database directly, store the values
+ // in a transient to allow for autoloading and caching on subsequent views.
+ $local_options = get_transient( 'jetpack_idc_local' );
+ if ( false === $local_options ) {
+ $local_options = array(
+ 'home' => Urls::home_url(),
+ 'siteurl' => Urls::site_url(),
+ );
+ set_transient( 'jetpack_idc_local', $local_options, MINUTE_IN_SECONDS );
+ }
+
+ $options = array_merge( $local_options, $response );
+
+ $returned_values = array();
+ foreach ( $options as $key => $option ) {
+ if ( 'error_code' === $key ) {
+ $returned_values[ $key ] = $option;
+ continue;
+ }
+
+ $normalized_url = self::normalize_url_protocol_agnostic( $option );
+ if ( is_wp_error( $normalized_url ) ) {
+ continue;
+ }
+
+ $returned_values[ $key ] = $normalized_url;
+ }
+ // We need to protect WPCOM URLs from search & replace by reversing them. See https://wp.me/pf5801-3R
+ // Add 'reversed_url' key for backward compatibility
+ if ( array_key_exists( 'wpcom_home', $returned_values ) && array_key_exists( 'wpcom_siteurl', $returned_values ) ) {
+ $returned_values['reversed_url'] = true;
+ $returned_values = self::reverse_wpcom_urls_for_idc( $returned_values );
+ }
+
+ return $returned_values;
+ }
+
+ /**
+ * Returns the value of the jetpack_should_handle_idc filter or constant.
+ * If set to true, the site will be put into staging mode.
+ *
+ * This method uses both the current jetpack_should_handle_idc filter
+ * and constant to determine whether an IDC should be handled.
+ *
+ * @return bool
+ * @since 0.2.6
+ */
+ public static function should_handle_idc() {
+ if ( Constants::is_defined( 'JETPACK_SHOULD_HANDLE_IDC' ) ) {
+ $default = Constants::get_constant( 'JETPACK_SHOULD_HANDLE_IDC' );
+ } else {
+ $default = ! Constants::is_defined( 'SUNRISE' ) && ! is_multisite();
+ }
+
+ /**
+ * Allows sites to opt in for IDC mitigation which blocks the site from syncing to WordPress.com when the home
+ * URL or site URL do not match what WordPress.com expects. The default value is either true, or the value of
+ * JETPACK_SHOULD_HANDLE_IDC constant if set.
+ *
+ * @param bool $default Whether the site is opted in to IDC mitigation.
+ *
+ * @since 0.2.6
+ */
+ return (bool) apply_filters( 'jetpack_should_handle_idc', $default );
+ }
+
+ /**
+ * Whether the site is undergoing identity crisis.
+ *
+ * @return bool
+ */
+ public static function has_identity_crisis() {
+ return false !== static::check_identity_crisis() && ! static::$is_safe_mode_confirmed;
+ }
+
+ /**
+ * Whether an admin has confirmed safe mode.
+ * Unlike `static::$is_safe_mode_confirmed` this function always returns the actual flag value.
+ *
+ * @return bool
+ */
+ public static function safe_mode_is_confirmed() {
+ return Jetpack_Options::get_option( 'safe_mode_confirmed' );
+ }
+
+ /**
+ * Returns the mismatched URLs.
+ *
+ * @return array|bool The mismatched urls, or false if the site is not connected, offline, in safe mode, or the IDC error is not valid.
+ */
+ public static function get_mismatched_urls() {
+ if ( ! static::has_identity_crisis() ) {
+ return false;
+ }
+
+ $data = static::check_identity_crisis();
+
+ if ( ! $data ||
+ ! isset( $data['error_code'] ) ||
+ ! isset( $data['wpcom_home'] ) ||
+ ! isset( $data['home'] ) ||
+ ! isset( $data['wpcom_siteurl'] ) ||
+ ! isset( $data['siteurl'] )
+ ) {
+ // The jetpack_sync_error_idc option is missing a key.
+ return false;
+ }
+
+ if ( 'jetpack_site_url_mismatch' === $data['error_code'] ) {
+ return array(
+ 'wpcom_url' => $data['wpcom_siteurl'],
+ 'current_url' => $data['siteurl'],
+ );
+ }
+
+ return array(
+ 'wpcom_url' => $data['wpcom_home'],
+ 'current_url' => $data['home'],
+ );
+ }
+
+ /**
+ * Try to detect $_SERVER['HTTP_HOST'] being used within WP_SITEURL or WP_HOME definitions inside of wp-config.
+ *
+ * If `HTTP_HOST` usage is found, it's possbile (though not certain) that site URLs are dynamic.
+ *
+ * When a site URL is dynamic, it can lead to a Jetpack IDC. If potentially dynamic usage is detected,
+ * helpful support info will be shown on the IDC UI about setting a static site/home URL.
+ *
+ * @return bool True if potentially dynamic site urls were detected in wp-config, false otherwise.
+ */
+ public static function detect_possible_dynamic_site_url() {
+ $transient_key = 'jetpack_idc_possible_dynamic_site_url_detected';
+ $transient_val = get_transient( $transient_key );
+
+ if ( false !== $transient_val ) {
+ return (bool) $transient_val;
+ }
+
+ $path = self::locate_wp_config();
+ $wp_config = $path ? file_get_contents( $path ) : false; // phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
+ if ( $wp_config ) {
+ $matched = preg_match(
+ '/define ?\( ?[\'"](?:WP_SITEURL|WP_HOME).+(?:HTTP_HOST).+\);/',
+ $wp_config
+ );
+
+ if ( $matched ) {
+ set_transient( $transient_key, 1, HOUR_IN_SECONDS );
+ return true;
+ }
+ }
+
+ set_transient( $transient_key, 0, HOUR_IN_SECONDS );
+ return false;
+ }
+
+ /**
+ * Gets path to WordPress configuration.
+ * Source: https://github.com/wp-cli/wp-cli/blob/master/php/utils.php
+ *
+ * @return string
+ */
+ public static function locate_wp_config() {
+ static $path;
+
+ if ( null === $path ) {
+ $path = false;
+
+ if ( getenv( 'WP_CONFIG_PATH' ) && file_exists( getenv( 'WP_CONFIG_PATH' ) ) ) {
+ $path = getenv( 'WP_CONFIG_PATH' );
+ } elseif ( file_exists( ABSPATH . 'wp-config.php' ) ) {
+ $path = ABSPATH . 'wp-config.php';
+ } elseif ( file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) {
+ $path = dirname( ABSPATH ) . '/wp-config.php';
+ }
+
+ if ( $path ) {
+ $path = realpath( $path );
+ }
+ }
+
+ return $path;
+ }
+
+ /**
+ * Adds `url_secret` to the `jetpack.idcUrlValidation` URL validation endpoint.
+ * Adds `url_secret_error` in case of an error.
+ *
+ * @param array $response The endpoint response that we're modifying.
+ *
+ * @return array
+ *
+ * phpcs:ignore Squiz.Commenting.FunctionCommentThrowTag -- The exception is being caught, false positive.
+ */
+ public static function add_secret_to_url_validation_response( array $response ) {
+ try {
+ $secret = new URL_Secret();
+
+ $secret->create();
+
+ if ( $secret->exists() ) {
+ $response['url_secret'] = $secret->get_secret();
+ }
+ } catch ( Exception $e ) {
+ $response['url_secret_error'] = new WP_Error( 'unable_to_create_url_secret', $e->getMessage() );
+ }
+
+ return $response;
+ }
+
+ /**
+ * Check if URL is an IP.
+ *
+ * @param string $hostname The hostname to check.
+ * @return bool
+ */
+ public static function url_is_ip( $hostname = null ) {
+
+ if ( ! $hostname ) {
+ $hostname = wp_parse_url( Urls::site_url(), PHP_URL_HOST );
+ }
+
+ $is_ip = filter_var( $hostname, FILTER_VALIDATE_IP ) !== false ? $hostname : false;
+ return $is_ip;
+ }
+
+ /**
+ * Add IDC-related data to the registration query.
+ *
+ * @param array $params The existing query params.
+ *
+ * @return array
+ */
+ public static function register_request_body( array $params ) {
+ $persistent_blog_id = get_option( static::PERSISTENT_BLOG_ID_OPTION_NAME );
+ if ( $persistent_blog_id ) {
+ $params['persistent_blog_id'] = $persistent_blog_id;
+ $params['url_secret'] = URL_Secret::create_secret( 'registration_request_url_secret_failed' );
+ }
+
+ return $params;
+ }
+
+ /**
+ * Set the necessary options when site gets registered.
+ *
+ * @param int $blog_id The blog ID.
+ *
+ * @return void
+ */
+ public static function site_registered( $blog_id ) {
+ update_option( static::PERSISTENT_BLOG_ID_OPTION_NAME, (int) $blog_id, false );
+ }
+
+ /**
+ * Check if we need to update the ip_requester option.
+ *
+ * @param string $hostname The hostname to check.
+ *
+ * @return void
+ */
+ public static function maybe_update_ip_requester( $hostname ) {
+ // Check if transient exists
+ $transient_key = ip2long( $hostname );
+ if ( $transient_key && ! get_transient( 'jetpack_idc_ip_requester_' . $transient_key ) ) {
+ self::set_ip_requester_for_idc( $hostname, $transient_key );
+ }
+ }
+
+ /**
+ * If URL is an IP, add the IP value to the ip_requester option with its expiry value.
+ *
+ * @param string $hostname The hostname to check.
+ * @param int $transient_key The transient key.
+ */
+ public static function set_ip_requester_for_idc( $hostname, $transient_key ) {
+ // Check if option exists
+ $data = Jetpack_Options::get_option( 'identity_crisis_ip_requester' );
+
+ $ip_requester = array(
+ 'ip' => $hostname,
+ 'expires_at' => time() + 360,
+ );
+
+ // If not set, initialize it
+ if ( empty( $data ) ) {
+ $data = array( $ip_requester );
+ } else {
+ $updated_data = array();
+ $updated_value = false;
+
+ // Remove expired values and update existing IP
+ foreach ( $data as $item ) {
+ if ( time() > $item['expires_at'] ) {
+ continue; // Skip expired IP
+ }
+
+ if ( $item['ip'] === $hostname ) {
+ $item['expires_at'] = time() + 360;
+ $updated_value = true;
+ }
+
+ $updated_data[] = $item;
+ }
+
+ if ( ! $updated_value || empty( $updated_data ) ) {
+ $updated_data[] = $ip_requester;
+ }
+
+ $data = $updated_data;
+ }
+
+ self::update_ip_requester( $data, $transient_key );
+ }
+
+ /**
+ * Update the ip_requester option and set a transient to expire in 5 minutes.
+ *
+ * @param array $data The data to be updated.
+ * @param int $transient_key The transient key.
+ *
+ * @return void
+ */
+ public static function update_ip_requester( $data, $transient_key ) {
+ // Update the option
+ $updated = Jetpack_Options::update_option( 'identity_crisis_ip_requester', $data );
+ // Set a transient to expire in 5 minutes
+ if ( $updated ) {
+ $transient_name = 'jetpack_idc_ip_requester_' . $transient_key;
+ set_transient( $transient_name, $data, 300 );
+ }
+ }
+
+ /**
+ * Adds `ip_requester` to the `jetpack.idcUrlValidation` URL validation endpoint.
+ *
+ * @param array $response The enpoint response that we're modifying.
+ *
+ * @return array
+ */
+ public static function add_ip_requester_to_url_validation_response( array $response ) {
+ $requesters = Jetpack_Options::get_option( 'identity_crisis_ip_requester' );
+ if ( $requesters ) {
+ // Loop through the requesters and add the IP to the response if it's not expired
+ $i = 0;
+ foreach ( $requesters as $ip ) {
+ if ( $ip['expires_at'] > time() ) {
+ $response['ip_requester'][] = $ip['ip'];
+ }
+ // Limit the response to five IPs
+ $i = ++$i;
+ if ( $i === 5 ) {
+ break;
+ }
+ }
+ }
+ return $response;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-rest-endpoints.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-rest-endpoints.php
new file mode 100644
index 00000000..b3547811
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-rest-endpoints.php
@@ -0,0 +1,322 @@
+ WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::confirm_safe_mode',
+ 'permission_callback' => __CLASS__ . '::identity_crisis_mitigation_permission_check',
+ )
+ );
+
+ // Handles the request to migrate stats and subscribers during an identity crisis.
+ register_rest_route(
+ 'jetpack/v4',
+ 'identity-crisis/migrate',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::migrate_stats_and_subscribers',
+ 'permission_callback' => __CLASS__ . '::identity_crisis_mitigation_permission_check',
+ )
+ );
+
+ // IDC resolve: create an entirely new shadow site for this URL.
+ register_rest_route(
+ 'jetpack/v4',
+ '/identity-crisis/start-fresh',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::start_fresh_connection',
+ 'permission_callback' => __CLASS__ . '::identity_crisis_mitigation_permission_check',
+ 'args' => array(
+ 'redirect_uri' => array(
+ 'description' => __( 'URI of the admin page where the user should be redirected after connection flow', 'jetpack-connection' ),
+ 'type' => 'string',
+ ),
+ ),
+ )
+ );
+
+ // Fetch URL and secret for IDC check.
+ register_rest_route(
+ 'jetpack/v4',
+ '/identity-crisis/idc-url-validation',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( static::class, 'validate_urls_and_set_secret' ),
+ 'permission_callback' => array( static::class, 'url_secret_permission_check' ),
+ )
+ );
+
+ // Fetch URL verification secret.
+ register_rest_route(
+ 'jetpack/v4',
+ '/identity-crisis/url-secret',
+ array(
+ 'methods' => WP_REST_Server::READABLE,
+ 'callback' => array( static::class, 'fetch_url_secret' ),
+ 'permission_callback' => array( static::class, 'url_secret_permission_check' ),
+ )
+ );
+
+ // Fetch URL verification secret.
+ register_rest_route(
+ 'jetpack/v4',
+ '/identity-crisis/compare-url-secret',
+ array(
+ 'methods' => WP_REST_Server::EDITABLE,
+ 'callback' => array( static::class, 'compare_url_secret' ),
+ 'permission_callback' => array( static::class, 'compare_url_secret_permission_check' ),
+ 'args' => array(
+ 'secret' => array(
+ 'description' => __( 'URL secret to compare to the ones stored in the database.', 'jetpack-connection' ),
+ 'type' => 'string',
+ 'required' => true,
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Handles identity crisis mitigation, confirming safe mode for this site.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ *
+ * @return bool | WP_Error True if option is properly set.
+ */
+ public static function confirm_safe_mode() {
+ $updated = Jetpack_Options::update_option( 'safe_mode_confirmed', true );
+ if ( $updated ) {
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ )
+ );
+ }
+
+ return new WP_Error(
+ 'error_setting_jetpack_safe_mode',
+ esc_html__( 'Could not confirm safe mode.', 'jetpack-connection' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
+ * Handles identity crisis mitigation, migrating stats and subscribers from old url to this, new url.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ *
+ * @return bool | WP_Error True if option is properly set.
+ */
+ public static function migrate_stats_and_subscribers() {
+ if ( Jetpack_Options::get_option( 'sync_error_idc' ) && ! Jetpack_Options::delete_option( 'sync_error_idc' ) ) {
+ return new WP_Error(
+ 'error_deleting_sync_error_idc',
+ esc_html__( 'Could not delete sync error option.', 'jetpack-connection' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ if ( Jetpack_Options::get_option( 'migrate_for_idc' ) || Jetpack_Options::update_option( 'migrate_for_idc', true ) ) {
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ )
+ );
+ }
+ return new WP_Error(
+ 'error_setting_jetpack_migrate',
+ esc_html__( 'Could not confirm migration.', 'jetpack-connection' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
+ * This IDC resolution will disconnect the site and re-connect to a completely new
+ * and separate shadow site than the original.
+ *
+ * It will first will disconnect the site without phoning home as to not disturb the production site.
+ * It then builds a fresh connection URL and sends it back along with the response.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return \WP_REST_Response|WP_Error
+ */
+ public static function start_fresh_connection( $request ) {
+ /**
+ * Fires when Users have requested through Identity Crisis for the connection to be reset.
+ * Should be used to disconnect any connections and reset options.
+ *
+ * @since 0.2.0
+ */
+ do_action( 'jetpack_idc_disconnect' );
+
+ $connection = new Connection_Manager();
+ $result = $connection->try_registration( true );
+
+ // early return if site registration fails.
+ if ( ! $result || is_wp_error( $result ) ) {
+ return rest_ensure_response( $result );
+ }
+
+ $redirect_uri = $request->get_param( 'redirect_uri' ) ? admin_url( $request->get_param( 'redirect_uri' ) ) : null;
+
+ /**
+ * Filters the connection url that users should be redirected to for re-establishing their connection.
+ *
+ * @since 0.2.0
+ *
+ * @param \WP_REST_Response|WP_Error $connection_url Connection URL user should be redirected to.
+ */
+ return apply_filters( 'jetpack_idc_authorization_url', rest_ensure_response( $connection->get_authorization_url( null, $redirect_uri ) ) );
+ }
+
+ /**
+ * Verify that user can mitigate an identity crisis.
+ *
+ * @since 0.2.0
+ * @since-jetpack 4.4.0
+ *
+ * @return true|WP_Error True if the user has capability 'jetpack_disconnect', an error object otherwise.
+ */
+ public static function identity_crisis_mitigation_permission_check() {
+ if ( current_user_can( 'jetpack_disconnect' ) ) {
+ return true;
+ }
+ $error_msg = esc_html__(
+ 'You do not have the correct user permissions to perform this action.
+ Please contact your site admin if you think this is a mistake.',
+ 'jetpack-connection'
+ );
+
+ return new WP_Error( 'invalid_user_permission_identity_crisis', $error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Endpoint for URL validation and creating a secret.
+ *
+ * @since 0.18.0
+ *
+ * @return array
+ */
+ public static function validate_urls_and_set_secret() {
+ $xmlrpc_server = new Jetpack_XMLRPC_Server();
+ $result = $xmlrpc_server->validate_urls_for_idc_mitigation();
+
+ return $result;
+ }
+
+ /**
+ * Endpoint for fetching the existing secret.
+ *
+ * @return WP_Error|\WP_REST_Response
+ */
+ public static function fetch_url_secret() {
+ $secret = new URL_Secret();
+
+ if ( ! $secret->exists() ) {
+ return new WP_Error( 'missing_url_secret', esc_html__( 'URL secret does not exist.', 'jetpack-connection' ) );
+ }
+
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'data' => array(
+ 'secret' => $secret->get_secret(),
+ 'expires_at' => $secret->get_expires_at(),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Endpoint for comparing the existing secret.
+ *
+ * @param \WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return WP_Error|\WP_REST_Response
+ */
+ public static function compare_url_secret( $request ) {
+ $match = false;
+
+ $storage = new URL_Secret();
+
+ if ( $storage->exists() ) {
+ $remote_secret = $request->get_param( 'secret' );
+ $match = $remote_secret && hash_equals( $storage->get_secret(), $remote_secret );
+ }
+
+ return rest_ensure_response(
+ array(
+ 'code' => 'success',
+ 'match' => $match,
+ )
+ );
+ }
+
+ /**
+ * Verify url_secret create/fetch permissions (valid blog token authentication).
+ *
+ * @return true|WP_Error
+ */
+ public static function url_secret_permission_check() {
+ return Rest_Authentication::is_signed_with_blog_token()
+ ? true
+ : new WP_Error(
+ 'invalid_user_permission_identity_crisis',
+ esc_html__( 'You do not have the correct user permissions to perform this action.', 'jetpack-connection' ),
+ array( 'status' => rest_authorization_required_code() )
+ );
+ }
+
+ /**
+ * The endpoint is only available on non-connected sites.
+ * use `/identity-crisis/url-secret` for connected sites.
+ *
+ * @return true|WP_Error
+ */
+ public static function compare_url_secret_permission_check() {
+ return ( new Connection_Manager() )->is_connected()
+ ? new WP_Error(
+ 'invalid_connection_status',
+ esc_html__( 'The endpoint is not available on connected sites.', 'jetpack-connection' ),
+ array( 'status' => 403 )
+ )
+ : true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-ui.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-ui.php
new file mode 100644
index 00000000..ee4c5acb
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-ui.php
@@ -0,0 +1,204 @@
+ true,
+ 'textdomain' => 'jetpack-connection',
+ )
+ );
+ Assets::enqueue_script( 'jp_identity_crisis_banner' );
+ wp_add_inline_script( 'jp_identity_crisis_banner', static::get_initial_state(), 'before' );
+
+ add_action( 'admin_notices', array( static::class, 'render_container' ) );
+ }
+ }
+
+ /**
+ * Create the container element for the IDC banner.
+ */
+ public static function render_container() {
+ ?>
+
+ esc_url_raw( rest_url() ),
+ 'WP_API_nonce' => wp_create_nonce( 'wp_rest' ),
+ 'wpcomHomeUrl' => ( is_array( $idc_urls ) && array_key_exists( 'wpcom_url', $idc_urls ) ) ? $idc_urls['wpcom_url'] : null,
+ 'currentUrl' => ( is_array( $idc_urls ) && array_key_exists( 'current_url', $idc_urls ) ) ? $idc_urls['current_url'] : null,
+ 'redirectUri' => isset( $_SERVER['REQUEST_URI'] ) ? str_replace( '/wp-admin/', '/', filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ) ) ) : '',
+ 'tracksUserData' => Jetpack_Tracks_Client::get_connected_user_tracks_identity(),
+ 'tracksEventData' => array(
+ 'isAdmin' => $is_admin,
+ 'currentScreen' => $current_screen ? $current_screen->id : false,
+ 'blogID' => Jetpack_Options::get_option( 'id' ),
+ 'platform' => static::get_platform(),
+ ),
+ 'isSafeModeConfirmed' => Identity_Crisis::$is_safe_mode_confirmed,
+ 'consumerData' => static::get_consumer_data(),
+ 'isAdmin' => $is_admin,
+ 'possibleDynamicSiteUrlDetected' => $possible_dynamic_site_url_detected,
+ 'isDevelopmentSite' => $is_development_site,
+
+ /**
+ * Use the filter to provide custom HTML elecontainer ID.
+ *
+ * @since 0.10.0
+ *
+ * @param string|null $containerID The container ID.
+ */
+ 'containerID' => apply_filters( 'identity_crisis_container_id', null ),
+ );
+ }
+
+ /**
+ * Get the package consumer data.
+ *
+ * @return array
+ */
+ public static function get_consumer_data() {
+ if ( null !== static::$consumers ) {
+ return static::$consumers;
+ }
+
+ $consumers = apply_filters( 'jetpack_idc_consumers', array() );
+
+ if ( ! $consumers ) {
+ return array();
+ }
+
+ usort(
+ $consumers,
+ function ( $c1, $c2 ) {
+ $priority1 = ( array_key_exists( 'priority', $c1 ) && (int) $c1['priority'] ) ? (int) $c1['priority'] : 10;
+ $priority2 = ( array_key_exists( 'priority', $c2 ) && (int) $c2['priority'] ) ? (int) $c2['priority'] : 10;
+
+ return $priority1 <=> $priority2;
+ }
+ );
+
+ $consumer_chosen = null;
+ $consumer_url_length = 0;
+
+ foreach ( $consumers as $consumer ) {
+ if ( empty( $consumer['admin_page'] ) || ! is_string( $consumer['admin_page'] ) ) {
+ continue;
+ }
+
+ if ( isset( $_SERVER['REQUEST_URI'] ) && str_starts_with( filter_var( wp_unslash( $_SERVER['REQUEST_URI'] ) ), $consumer['admin_page'] ) && strlen( $consumer['admin_page'] ) > $consumer_url_length ) {
+ $consumer_chosen = $consumer;
+ $consumer_url_length = strlen( $consumer['admin_page'] );
+ }
+ }
+
+ static::$consumers = $consumer_chosen ? $consumer_chosen : array_shift( $consumers );
+
+ return static::$consumers;
+ }
+
+ /**
+ * Get the site platform.
+ *
+ * @return string
+ */
+ private static function get_platform() {
+ $host = new Host();
+
+ if ( $host->is_woa_site() ) {
+ return 'woa';
+ }
+
+ if ( $host->is_vip_site() ) {
+ return 'vip';
+ }
+
+ if ( $host->is_newspack_site() ) {
+ return 'newspack';
+ }
+
+ return 'self-hosted';
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-url-secret.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-url-secret.php
new file mode 100644
index 00000000..e2ff3f8b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/identity-crisis/class-url-secret.php
@@ -0,0 +1,159 @@
+fetch();
+
+ if ( $secret_data !== null ) {
+ $this->secret = $secret_data['secret'];
+ $this->expires_at = $secret_data['expires_at'];
+ }
+ }
+
+ /**
+ * Fetch the URL secret from the database.
+ *
+ * @return array|null
+ */
+ private function fetch() {
+ $data = Jetpack_Options::get_option( static::OPTION_KEY );
+
+ if ( $data === false || empty( $data['secret'] ) || empty( $data['expires_at'] ) ) {
+ return null;
+ }
+
+ if ( time() > $data['expires_at'] ) {
+ Jetpack_Options::delete_option( static::OPTION_KEY );
+ return null;
+ }
+
+ return $data;
+ }
+
+ /**
+ * Create new secret and save it in the options.
+ *
+ * @throws Exception Thrown if unable to save the new secret.
+ *
+ * @return bool
+ */
+ public function create() {
+ $secret_data = array(
+ 'secret' => $this->generate_secret(),
+ 'expires_at' => strval( time() + static::LIFESPAN ),
+ );
+
+ $result = Jetpack_Options::update_option( static::OPTION_KEY, $secret_data );
+
+ if ( ! $result ) {
+ throw new Exception( esc_html__( 'Unable to save new URL secret', 'jetpack-connection' ) );
+ }
+
+ $this->secret = $secret_data['secret'];
+ $this->expires_at = $secret_data['expires_at'];
+
+ return true;
+ }
+
+ /**
+ * Get the URL secret.
+ *
+ * @return string|null
+ */
+ public function get_secret() {
+ return $this->secret;
+ }
+
+ /**
+ * Get the URL secret expiration date.
+ *
+ * @return string|null
+ */
+ public function get_expires_at() {
+ return $this->expires_at;
+ }
+
+ /**
+ * Check if the secret exists.
+ *
+ * @return bool
+ */
+ public function exists() {
+ return $this->secret && $this->expires_at;
+ }
+
+ /**
+ * Generate the secret string.
+ *
+ * @return string
+ */
+ private function generate_secret() {
+ return wp_generate_password( 12, false );
+ }
+
+ /**
+ * Generate secret for response.
+ *
+ * @param string $flow used to tell which flow generated the exception.
+ * @return string|null
+ */
+ public static function create_secret( $flow = 'generating_secret_failed' ) {
+ $secret_value = null;
+ try {
+
+ $secret = new self();
+ $secret->create();
+
+ if ( $secret->exists() ) {
+ $secret_value = $secret->get_secret();
+ }
+ } catch ( Exception $e ) {
+ // Track the error and proceed.
+ ( new Tracking() )->record_user_event( $flow, array( 'current_url' => Urls::site_url() ) );
+ }
+ return $secret_value;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php
new file mode 100644
index 00000000..804f3848
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/interface-manager.php
@@ -0,0 +1,17 @@
+role = apply_filters( 'jetpack_force_2fa_cap', 'manage_options' );
+
+ // Bail if Jetpack SSO is not active
+ if ( ! ( new Modules() )->is_active( 'sso' ) ) {
+ add_action( 'admin_notices', array( $this, 'admin_notice' ) );
+ return;
+ }
+
+ $this->force_2fa();
+ }
+
+ /**
+ * Display an admin notice if Jetpack SSO is not active.
+ */
+ public function admin_notice() {
+ /**
+ * Filter if an admin notice is deplayed when Force 2FA is required, but SSO is not enabled.
+ * Defaults to true.
+ *
+ * @param bool $display_notice Whether to display the notice.
+ * @return bool
+ * @since jetpack-12.7
+ * @module SSO
+ */
+ if ( apply_filters( 'jetpack_force_2fa_dependency_notice', true ) && current_user_can( $this->role ) ) {
+ wp_admin_notice(
+ esc_html__( 'Jetpack Force 2FA requires Jetpack’s SSO feature.', 'jetpack-connection' ),
+ array(
+ 'type' => 'warning',
+ )
+ );
+ }
+ }
+
+ /**
+ * Force 2FA when using Jetpack SSO and force Jetpack SSO.
+ *
+ * @return void
+ */
+ private function force_2fa() {
+ // Allows WP.com login to a local account if it matches the local account.
+ add_filter( 'jetpack_sso_match_by_email', '__return_true', 9999 );
+
+ // multisite
+ if ( is_multisite() ) {
+
+ // Hide the login form
+ add_filter( 'jetpack_remove_login_form', '__return_true', 9999 );
+ add_filter( 'jetpack_sso_bypass_login_forward_wpcom', '__return_true', 9999 );
+ add_filter( 'jetpack_sso_display_disclaimer', '__return_false', 9999 );
+
+ add_filter(
+ 'wp_authenticate_user',
+ function () {
+ return new WP_Error( 'wpcom-required', $this->get_login_error_message() ); },
+ 9999
+ );
+
+ add_filter( 'jetpack_sso_require_two_step', '__return_true' );
+
+ add_filter( 'allow_password_reset', '__return_false' );
+ } else {
+ // Not multisite.
+
+ // Completely disable the standard login form for admins.
+ add_filter(
+ 'wp_authenticate_user',
+ function ( $user ) {
+ if ( is_wp_error( $user ) ) {
+ return $user;
+ }
+ if ( $user->has_cap( $this->role ) ) {
+ return new WP_Error( 'wpcom-required', $this->get_login_error_message(), $user->user_login );
+ }
+ return $user;
+ },
+ 9999
+ );
+
+ add_filter(
+ 'allow_password_reset',
+ function ( $allow, $user_id ) {
+ if ( user_can( $user_id, $this->role ) ) {
+ return false;
+ }
+ return $allow; },
+ 9999,
+ 2
+ );
+
+ add_action( 'jetpack_sso_pre_handle_login', array( $this, 'jetpack_set_two_step' ) );
+ }
+ }
+
+ /**
+ * Specifically set the two step filter for Jetpack SSO.
+ *
+ * @param Object $user_data The user data from WordPress.com.
+ *
+ * @return void
+ */
+ public function jetpack_set_two_step( $user_data ) {
+ $user = SSO::get_user_by_wpcom_id( $user_data->ID );
+
+ // Borrowed from Jetpack. Ignores the match_by_email setting.
+ if ( empty( $user ) ) {
+ $user = get_user_by( 'email', $user_data->email );
+ }
+
+ if ( $user && $user->has_cap( $this->role ) ) {
+ add_filter( 'jetpack_sso_require_two_step', '__return_true' );
+ }
+ }
+
+ /**
+ * Get the login error message.
+ *
+ * @return string
+ */
+ private function get_login_error_message() {
+ /**
+ * Filter the login error message.
+ * Defaults to a message that explains the user must use a WordPress.com account with 2FA enabled.
+ *
+ * @param string $message The login error message.
+ * @return string
+ * @since jetpack-12.7
+ * @module SSO
+ */
+ return apply_filters(
+ 'jetpack_force_2fa_login_error_message',
+ sprintf( 'For added security, please log in using your WordPress.com account.
Note: Your account must have Two Step Authentication enabled, which can be configured from Security Settings.', 'https://support.wordpress.com/security/two-step-authentication/', 'https://wordpress.com/me/security/two-step' )
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-helpers.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-helpers.php
new file mode 100644
index 00000000..2fdf7369
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-helpers.php
@@ -0,0 +1,387 @@
+ $original_request )
+ );
+ }
+
+ /**
+ * Check if the site has a custom login page URL, and return it.
+ * If default login page URL is used (`wp-login.php`), `null` will be returned.
+ *
+ * @return string|null
+ */
+ public static function get_custom_login_url() {
+ $login_url = wp_login_url();
+
+ if ( str_ends_with( $login_url, 'wp-login.php' ) ) {
+ // No custom URL found.
+ return null;
+ }
+
+ $site_url = trailingslashit( site_url() );
+
+ if ( ! str_starts_with( $login_url, $site_url ) ) {
+ // Something went wrong, we can't properly extract the custom URL.
+ return null;
+ }
+
+ // Extracting the "path" part of the URL, because we don't need the `site_url` part.
+ return str_ireplace( $site_url, '', $login_url );
+ }
+
+ /**
+ * Clear the cookies that store the profile information for the last
+ * WPCOM user to connect.
+ */
+ public static function clear_wpcom_profile_cookies() {
+ if ( isset( $_COOKIE[ 'jetpack_sso_wpcom_name_' . COOKIEHASH ] ) ) {
+ setcookie(
+ 'jetpack_sso_wpcom_name_' . COOKIEHASH,
+ ' ',
+ time() - YEAR_IN_SECONDS,
+ COOKIEPATH,
+ COOKIE_DOMAIN,
+ is_ssl(),
+ true
+ );
+ }
+
+ if ( isset( $_COOKIE[ 'jetpack_sso_wpcom_gravatar_' . COOKIEHASH ] ) ) {
+ setcookie(
+ 'jetpack_sso_wpcom_gravatar_' . COOKIEHASH,
+ ' ',
+ time() - YEAR_IN_SECONDS,
+ COOKIEPATH,
+ COOKIE_DOMAIN,
+ is_ssl(),
+ true
+ );
+ }
+ }
+
+ /**
+ * Remove an SSO connection for a user.
+ *
+ * @param int $user_id The local user id.
+ */
+ public static function delete_connection_for_user( $user_id ) {
+ $wpcom_user_id = get_user_meta( $user_id, 'wpcom_user_id', true );
+ if ( ! $wpcom_user_id ) {
+ return;
+ }
+
+ $xml = new Jetpack_IXR_Client(
+ array(
+ 'wpcom_user_id' => $user_id,
+ )
+ );
+ $xml->query( 'jetpack.sso.removeUser', $wpcom_user_id );
+
+ if ( $xml->isError() ) {
+ return false;
+ }
+
+ // Clean up local data stored for SSO.
+ delete_user_meta( $user_id, 'wpcom_user_id' );
+ delete_user_meta( $user_id, 'wpcom_user_data' );
+ self::clear_wpcom_profile_cookies();
+
+ return $xml->getResponse();
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-notices.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-notices.php
new file mode 100644
index 00000000..289ba6c7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-notices.php
@@ -0,0 +1,272 @@
+Security Settings to configure Two-step Authentication for your account.',
+ 'jetpack-connection'
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ ),
+ Redirect::get_url( 'calypso-me-security-two-step' ),
+ Redirect::get_url( 'wpcom-support-security-two-step-authentication' )
+ );
+
+ $message .= sprintf( '
%s
', $error );
+
+ return $message;
+ }
+
+ /**
+ * Error message displayed when the user tries to SSO, but match by email
+ * is off and they already have an account with their email address on
+ * this site.
+ *
+ * @param string $message Error message.
+ * @return string
+ */
+ public static function error_msg_email_already_exists( $message ) {
+ $error = sprintf(
+ wp_kses(
+ /* translators: login URL */
+ __(
+ 'You already have an account on this site. Please sign in with your username and password and then connect to WordPress.com.',
+ 'jetpack-connection'
+ ),
+ array( 'a' => array( 'href' => array() ) )
+ ),
+ esc_url_raw( add_query_arg( 'jetpack-sso-show-default-form', '1', wp_login_url() ) )
+ );
+
+ $message .= sprintf( '
%s
', $error );
+
+ return $message;
+ }
+
+ /**
+ * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
+ *
+ * @since jetpack-4.3.2
+ *
+ * @param string $message Error Message.
+ *
+ * @return string
+ */
+ public static function error_msg_identity_crisis( $message ) {
+ $error = esc_html__( 'Logging in with WordPress.com is not currently available because this site is experiencing connection problems.', 'jetpack-connection' );
+ $message .= sprintf( '
%s
', $error );
+ return $message;
+ }
+
+ /**
+ * Error message that is displayed when we are not able to verify the SSO nonce due to an XML error or
+ * failed validation. In either case, we prompt the user to try again or log in with username and password.
+ *
+ * @since jetpack-4.3.2
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function error_invalid_response_data( $message ) {
+ $error = esc_html__(
+ 'There was an error logging you in via WordPress.com, please try again or try logging in with your username and password.',
+ 'jetpack-connection'
+ );
+ $message .= sprintf( '
%s
', $error );
+ return $message;
+ }
+
+ /**
+ * Error message that is displayed when we were not able to automatically create an account for a user
+ * after a user has logged in via SSO. By default, this message is triggered after trying to create an account 5 times.
+ *
+ * @since jetpack-4.3.2
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function error_unable_to_create_user( $message ) {
+ $error = esc_html__(
+ 'There was an error creating a user for you. Please contact the administrator of your site.',
+ 'jetpack-connection'
+ );
+ $message .= sprintf( '
%s
', $error );
+ return $message;
+ }
+
+ /**
+ * When the default login form is hidden, this method is called on the 'authenticate' filter with a priority of 30.
+ * This method disables the ability to submit the default login form.
+ *
+ * @param WP_User|WP_Error $user Either the user attempting to login or an existing authentication failure.
+ *
+ * @return WP_Error
+ */
+ public static function disable_default_login_form( $user ) {
+ if ( is_wp_error( $user ) ) {
+ return $user;
+ }
+
+ /**
+ * Since we're returning an error that will be shown as a red notice, let's remove the
+ * informational "blue" notice.
+ */
+ remove_filter( 'login_message', array( static::class, 'msg_login_by_jetpack' ) );
+ return new WP_Error( 'jetpack_sso_required', self::get_sso_required_message() );
+ }
+
+ /**
+ * Message displayed when the site admin has disabled the default WordPress
+ * login form in Settings > General > Secure Sign On
+ *
+ * @since jetpack-2.7
+ * @param string $message Error message.
+ *
+ * @return string
+ **/
+ public static function msg_login_by_jetpack( $message ) {
+ $message .= sprintf( '
%s
', self::get_sso_required_message() );
+ return $message;
+ }
+
+ /**
+ * Get the message for SSO required.
+ *
+ * @return string
+ */
+ public static function get_sso_required_message() {
+ $msg = esc_html__(
+ 'A WordPress.com account is required to access this site. Click the button below to sign in or create a free WordPress.com account.',
+ 'jetpack-connection'
+ );
+
+ /**
+ * Filter the message displayed when the default WordPress login form is disabled.
+ *
+ * @module sso
+ *
+ * @since jetpack-2.8.0
+ *
+ * @param string $msg Disclaimer when default WordPress login form is disabled.
+ */
+ return apply_filters( 'jetpack_sso_disclaimer_message', $msg );
+ }
+
+ /**
+ * Message displayed when the user can not be found after approving the SSO process on WordPress.com
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function cant_find_user( $message ) {
+ $error = __(
+ "We couldn't find your account. If you already have an account, make sure you have connected to WordPress.com.",
+ 'jetpack-connection'
+ );
+
+ /**
+ * Filters the "couldn't find your account" notice after an attempted SSO.
+ *
+ * @module sso
+ *
+ * @since jetpack-10.5.0
+ *
+ * @param string $error Error text.
+ */
+ $error = apply_filters( 'jetpack_sso_unknown_user_notice', $error );
+
+ $message .= sprintf( '
%s
', esc_html( $error ) );
+
+ return $message;
+ }
+
+ /**
+ * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
+ *
+ * @since jetpack-4.4.0
+ * @deprecated since 2.10.0
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function sso_not_allowed_in_staging( $message ) {
+ _deprecated_function( __FUNCTION__, '2.10.0', 'sso_not_allowed_in_safe_mode' );
+ $error = __(
+ 'Logging in with WordPress.com is disabled for sites that are in staging mode.',
+ 'jetpack-connection'
+ );
+
+ /**
+ * Filters the disallowed notice for staging sites attempting SSO.
+ *
+ * @module sso
+ *
+ * @since jetpack-10.5.0
+ *
+ * @param string $error Error text.
+ */
+ $error = apply_filters_deprecated( 'jetpack_sso_disallowed_staging_notice', array( $error ), '2.9.1', 'jetpack_sso_disallowed_safe_mode_notice' );
+ $message .= sprintf( '
%s
', esc_html( $error ) );
+ return $message;
+ }
+
+ /**
+ * Error message that is displayed when the current site is in an identity crisis and SSO can not be used.
+ *
+ * @since 2.10.0
+ *
+ * @param string $message Error message.
+ *
+ * @return string
+ */
+ public static function sso_not_allowed_in_safe_mode( $message ) {
+ $error = __(
+ 'Logging in with WordPress.com is disabled for sites that are in safe mode.',
+ 'jetpack-connection'
+ );
+
+ /**
+ * Filters the disallowed notice for sites in safe mode attempting SSO.
+ *
+ * @module sso
+ *
+ * @since 2.10.0
+ *
+ * @param string $error Error text.
+ */
+ $error = apply_filters( 'jetpack_sso_disallowed_safe_mode_notice', $error );
+ $message .= sprintf( '
%s
', esc_html( $error ) );
+ return $message;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-sso.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-sso.php
new file mode 100644
index 00000000..b1c69934
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/class-sso.php
@@ -0,0 +1,1276 @@
+is_user_connected() &&
+ ! is_multisite() &&
+ /**
+ * Toggle the ability to invite new users to create a WordPress.com account.
+ *
+ * @module sso
+ *
+ * @since 2.7.2
+ *
+ * @param bool true Whether to allow admins to invite new users to create a WordPress.com account.
+ */
+ apply_filters( 'jetpack_sso_invite_new_users_wpcom', true )
+ ) {
+ new User_Admin();
+ }
+ }
+
+ /**
+ * Returns the single instance of the Automattic\Jetpack\Connection\SSO object
+ *
+ * @since jetpack-2.8
+ * @return \Automattic\Jetpack\Connection\SSO
+ */
+ public static function get_instance() {
+ if ( self::$instance !== null ) {
+ return self::$instance;
+ }
+
+ self::$instance = new SSO();
+ return self::$instance;
+ }
+
+ /**
+ * Add SSO callables to the sync whitelist.
+ *
+ * @since 2.8.1
+ *
+ * @param array $callables list of callables.
+ *
+ * @return array list of callables.
+ */
+ public function sync_sso_callables( $callables ) {
+ $sso_callables = array(
+ 'sso_is_two_step_required' => array( Helpers::class, 'is_two_step_required' ),
+ 'sso_should_hide_login_form' => array( Helpers::class, 'should_hide_login_form' ),
+ 'sso_match_by_email' => array( Helpers::class, 'match_by_email' ),
+ 'sso_new_user_override' => array( Helpers::class, 'new_user_override' ),
+ 'sso_bypass_default_login_form' => array( Helpers::class, 'bypass_login_forward_wpcom' ),
+ );
+
+ return array_merge( $callables, $sso_callables );
+ }
+
+ /**
+ * Safety heads-up added to the logout messages when SSO is enabled.
+ * Some folks on a shared computer don't know that they need to log out of WordPress.com as well.
+ *
+ * @param WP_Error $errors WP_Error object.
+ */
+ public function sso_reminder_logout_wpcom( $errors ) {
+ if ( ( new Host() )->is_wpcom_platform() ) {
+ return $errors;
+ }
+
+ if ( ! empty( $errors->errors['loggedout'] ) ) {
+ $logout_message = wp_kses(
+ sprintf(
+ /* translators: %1$s is a link to the WordPress.com account settings page. */
+ __( 'If you are on a shared computer, remember to also log out of WordPress.com.', 'jetpack-connection' ),
+ 'https://wordpress.com/me'
+ ),
+ array(
+ 'a' => array(
+ 'href' => array(),
+ ),
+ )
+ );
+ $errors->add( 'jetpack-sso-show-logout', $logout_message, 'message' );
+ }
+ return $errors;
+ }
+
+ /**
+ * If jetpack_force_logout == 1 in current user meta the user will be forced
+ * to logout and reauthenticate with the site.
+ **/
+ public function maybe_logout_user() {
+ global $current_user;
+
+ if ( 1 === (int) $current_user->jetpack_force_logout ) {
+ delete_user_meta( $current_user->ID, 'jetpack_force_logout' );
+ Helpers::delete_connection_for_user( $current_user->ID );
+ wp_logout();
+ wp_safe_redirect( wp_login_url() );
+ exit;
+ }
+ }
+
+ /**
+ * Adds additional methods the WordPress xmlrpc API for handling SSO specific features
+ *
+ * @param array $methods API methods.
+ * @return array
+ **/
+ public function xmlrpc_methods( $methods ) {
+ $methods['jetpack.userDisconnect'] = array( $this, 'xmlrpc_user_disconnect' );
+ return $methods;
+ }
+
+ /**
+ * Marks a user's profile for disconnect from WordPress.com and forces a logout
+ * the next time the user visits the site.
+ *
+ * @param int $user_id User to disconnect from the site.
+ **/
+ public function xmlrpc_user_disconnect( $user_id ) {
+ $user_query = new WP_User_Query(
+ array(
+ 'meta_key' => 'wpcom_user_id',
+ 'meta_value' => $user_id,
+ )
+ );
+ $user = $user_query->get_results();
+ $user = $user[0];
+
+ if ( $user instanceof WP_User ) {
+ $user = wp_set_current_user( $user->ID );
+ update_user_meta( $user->ID, 'jetpack_force_logout', '1' );
+ Helpers::delete_connection_for_user( $user->ID );
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Enqueues scripts and styles necessary for SSO login.
+ */
+ public function login_enqueue_scripts() {
+ global $action;
+
+ if ( ! Helpers::display_sso_form_for_action( $action ) ) {
+ return;
+ }
+
+ Assets::register_script(
+ 'jetpack-sso-login',
+ '../../dist/jetpack-sso-login.js',
+ __FILE__,
+ array(
+ 'enqueue' => true,
+ 'version' => Package_Version::PACKAGE_VERSION,
+ )
+ );
+ }
+
+ /**
+ * Adds Jetpack SSO classes to login body
+ *
+ * @param array $classes Array of classes to add to body tag.
+ * @return array Array of classes to add to body tag.
+ */
+ public function login_body_class( $classes ) {
+ global $action;
+
+ if ( ! Helpers::display_sso_form_for_action( $action ) ) {
+ return $classes;
+ }
+
+ // Always add the jetpack-sso class so that we can add SSO specific styling even when the SSO form isn't being displayed.
+ $classes[] = 'jetpack-sso';
+
+ if ( ! ( new Status() )->in_safe_mode() ) {
+ /**
+ * Should we show the SSO login form?
+ *
+ * $_GET['jetpack-sso-default-form'] is used to provide a fallback in case JavaScript is not enabled.
+ *
+ * The default_to_sso_login() method allows us to dynamically decide whether we show the SSO login form or not.
+ * The SSO module uses the method to display the default login form if we can not find a user to log in via SSO.
+ * But, the method could be filtered by a site admin to always show the default login form if that is preferred.
+ */
+ if ( empty( $_GET['jetpack-sso-show-default-form'] ) && Helpers::show_sso_login() ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $classes[] = 'jetpack-sso-form-display';
+ }
+ }
+
+ return $classes;
+ }
+
+ /**
+ * Inlined admin styles for SSO.
+ */
+ public function print_inline_admin_css() {
+ ?>
+
+ General > Secure Sign On that allows users to
+ * turn off the login form on wp-login.php
+ *
+ * @since jetpack-2.7
+ **/
+ public function register_settings() {
+
+ add_settings_section(
+ 'jetpack_sso_settings',
+ __( 'Secure Sign On', 'jetpack-connection' ),
+ '__return_false',
+ 'jetpack-sso'
+ );
+
+ /*
+ * Settings > General > Secure Sign On
+ * Require two step authentication
+ */
+ register_setting(
+ 'jetpack-sso',
+ 'jetpack_sso_require_two_step',
+ array( $this, 'validate_jetpack_sso_require_two_step' )
+ );
+
+ add_settings_field(
+ 'jetpack_sso_require_two_step',
+ '', // Output done in render $callback: __( 'Require Two-Step Authentication' , 'jetpack-connection' ).
+ array( $this, 'render_require_two_step' ),
+ 'jetpack-sso',
+ 'jetpack_sso_settings'
+ );
+
+ /*
+ * Settings > General > Secure Sign On
+ */
+ register_setting(
+ 'jetpack-sso',
+ 'jetpack_sso_match_by_email',
+ array( $this, 'validate_jetpack_sso_match_by_email' )
+ );
+
+ add_settings_field(
+ 'jetpack_sso_match_by_email',
+ '', // Output done in render $callback: __( 'Match by Email' , 'jetpack-connection' ).
+ array( $this, 'render_match_by_email' ),
+ 'jetpack-sso',
+ 'jetpack_sso_settings'
+ );
+ }
+
+ /**
+ * Builds the display for the checkbox allowing user to require two step
+ * auth be enabled on WordPress.com accounts before login. Displays in Settings > General
+ *
+ * @since jetpack-2.7
+ **/
+ public function render_require_two_step() {
+ ?>
+
+ General.
+ *
+ * @param bool $input The jetpack_sso_require_two_step option setting.
+ *
+ * @since jetpack-2.7
+ * @return int
+ **/
+ public function validate_jetpack_sso_require_two_step( $input ) {
+ return ( ! empty( $input ) ) ? 1 : 0;
+ }
+
+ /**
+ * Builds the display for the checkbox allowing the user to allow matching logins by email
+ * Displays in Settings > General
+ *
+ * @since jetpack-2.9
+ **/
+ public function render_match_by_email() {
+ ?>
+
+ General.
+ *
+ * @param bool $input The jetpack_sso_match_by_email option setting.
+ *
+ * @since jetpack-2.9
+ * @return int
+ **/
+ public function validate_jetpack_sso_match_by_email( $input ) {
+ return ( ! empty( $input ) ) ? 1 : 0;
+ }
+
+ /**
+ * Checks to determine if the user wants to login on wp-login
+ *
+ * This function mostly exists to cover the exceptions to login
+ * that may exist as other parameters to $_GET[action] as $_GET[action]
+ * does not have to exist. By default WordPress assumes login if an action
+ * is not set, however this may not be true, as in the case of logout
+ * where $_GET[loggedout] is instead set
+ *
+ * @return boolean
+ **/
+ private function wants_to_login() {
+ $wants_to_login = false;
+
+ // Cover default WordPress behavior.
+ $action = isset( $_REQUEST['action'] ) ? filter_var( wp_unslash( $_REQUEST['action'] ) ) : 'login'; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+
+ // And now the exceptions.
+ $action = isset( $_GET['loggedout'] ) ? 'loggedout' : $action; // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+
+ if ( Helpers::display_sso_form_for_action( $action ) ) {
+ $wants_to_login = true;
+ }
+
+ return $wants_to_login;
+ }
+
+ /**
+ * Initialization for a SSO request.
+ */
+ public function login_init() {
+ global $action;
+
+ $tracking = new Tracking();
+
+ if ( Helpers::should_hide_login_form() ) {
+ /**
+ * Since the default authenticate filters fire at priority 20 for checking username and password,
+ * let's fire at priority 30. wp_authenticate_spam_check is fired at priority 99, but since we return a
+ * WP_Error in disable_default_login_form, then we won't trigger spam processing logic.
+ */
+ add_filter( 'authenticate', array( Notices::class, 'disable_default_login_form' ), 30 );
+
+ /**
+ * Filter the display of the disclaimer message appearing when default WordPress login form is disabled.
+ *
+ * @module sso
+ *
+ * @since jetpack-2.8.0
+ *
+ * @param bool true Should the disclaimer be displayed. Default to true.
+ */
+ $display_sso_disclaimer = apply_filters( 'jetpack_sso_display_disclaimer', true );
+ if ( $display_sso_disclaimer ) {
+ add_filter( 'login_message', array( Notices::class, 'msg_login_by_jetpack' ) );
+ }
+ }
+
+ if ( 'jetpack-sso' === $action ) {
+ if ( isset( $_GET['result'] ) && isset( $_GET['user_id'] ) && isset( $_GET['sso_nonce'] ) && 'success' === $_GET['result'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $this->handle_login();
+ $this->display_sso_login_form();
+ } elseif ( ( new Status() )->in_safe_mode() ) {
+ add_filter( 'login_message', array( Notices::class, 'sso_not_allowed_in_safe_mode' ) );
+ } else {
+ // Is it wiser to just use wp_redirect than do this runaround to wp_safe_redirect?
+ add_filter( 'allowed_redirect_hosts', array( Helpers::class, 'allowed_redirect_hosts' ) );
+ $reauth = ! empty( $_GET['force_reauth'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $sso_url = $this->get_sso_url_or_die( $reauth );
+
+ $tracking->record_user_event( 'sso_login_redirect_success' );
+ wp_safe_redirect( $sso_url );
+ exit;
+ }
+ } elseif ( Helpers::display_sso_form_for_action( $action ) ) {
+
+ // Save cookies so we can handle redirects after SSO.
+ static::save_cookies();
+
+ /**
+ * Check to see if the site admin wants to automagically forward the user
+ * to the WordPress.com login page AND that the request to wp-login.php
+ * is not something other than login (Like logout!)
+ */
+ if ( Helpers::bypass_login_forward_wpcom() && $this->wants_to_login() ) {
+ add_filter( 'allowed_redirect_hosts', array( Helpers::class, 'allowed_redirect_hosts' ) );
+ $reauth = ! empty( $_GET['force_reauth'] ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $sso_url = $this->get_sso_url_or_die( $reauth );
+ $tracking->record_user_event( 'sso_login_redirect_bypass_success' );
+ wp_safe_redirect( $sso_url );
+ exit;
+ }
+
+ $this->display_sso_login_form();
+ }
+ }
+
+ /**
+ * Ensures that we can get a nonce from WordPress.com via XML-RPC before setting
+ * up the hooks required to display the SSO form.
+ */
+ public function display_sso_login_form() {
+ add_filter( 'login_body_class', array( $this, 'login_body_class' ) );
+ add_action( 'login_head', array( $this, 'print_inline_admin_css' ) );
+
+ if ( ( new Status() )->in_safe_mode() ) {
+ add_filter( 'login_message', array( Notices::class, 'sso_not_allowed_in_safe_mode' ) );
+ return;
+ }
+
+ $sso_nonce = self::request_initial_nonce();
+ if ( is_wp_error( $sso_nonce ) ) {
+ return;
+ }
+
+ add_action( 'login_form', array( $this, 'login_form' ) );
+ add_action( 'login_enqueue_scripts', array( $this, 'login_enqueue_scripts' ) );
+ }
+
+ /**
+ * Conditionally save the redirect_to url as a cookie.
+ *
+ * @since jetpack-4.6.0 Renamed to save_cookies from maybe_save_redirect_cookies
+ */
+ public static function save_cookies() {
+ if ( headers_sent() ) {
+ return new WP_Error( 'headers_sent', __( 'Cannot deal with cookie redirects, as headers are already sent.', 'jetpack-connection' ) );
+ }
+
+ setcookie(
+ 'jetpack_sso_original_request',
+ // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- Sniff misses the wrapping esc_url_raw().
+ esc_url_raw( set_url_scheme( ( isset( $_SERVER['HTTP_HOST'] ) ? wp_unslash( $_SERVER['HTTP_HOST'] ) : '' ) . ( isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : '' ) ) ),
+ time() + HOUR_IN_SECONDS,
+ COOKIEPATH,
+ COOKIE_DOMAIN,
+ is_ssl(),
+ true
+ );
+
+ if ( ! empty( $_GET['redirect_to'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ // If we have something to redirect to.
+ $url = esc_url_raw( wp_unslash( $_GET['redirect_to'] ) ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ setcookie( 'jetpack_sso_redirect_to', $url, time() + HOUR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );
+ } elseif ( ! empty( $_COOKIE['jetpack_sso_redirect_to'] ) ) {
+ // Otherwise, if it's already set, purge it.
+ setcookie( 'jetpack_sso_redirect_to', ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );
+ }
+ }
+
+ /**
+ * Outputs the Jetpack SSO button and description as well as the toggle link
+ * for switching between Jetpack SSO and default login.
+ */
+ public function login_form() {
+ $site_name = get_bloginfo( 'name' );
+ if ( ! $site_name ) {
+ $site_name = get_bloginfo( 'url' );
+ }
+
+ $display_name = ! empty( $_COOKIE[ 'jetpack_sso_wpcom_name_' . COOKIEHASH ] )
+ ? sanitize_text_field( wp_unslash( $_COOKIE[ 'jetpack_sso_wpcom_name_' . COOKIEHASH ] ) )
+ : false;
+ $gravatar = ! empty( $_COOKIE[ 'jetpack_sso_wpcom_gravatar_' . COOKIEHASH ] )
+ ? esc_url_raw( wp_unslash( $_COOKIE[ 'jetpack_sso_wpcom_gravatar_' . COOKIEHASH ] ) )
+ : false;
+
+ ?>
+
+ 500
+ ) {
+ $errors->add(
+ 'custom_email_message',
+ wp_kses(
+ __( 'Error: The custom message is too long. Please keep it under 500 characters.', 'jetpack-connection' ),
+ array(
+ 'strong' => array(),
+ )
+ )
+ );
+ }
+
+ $site_id = Manager::get_site_id( true );
+ if ( ! $site_id ) {
+ $errors->add(
+ 'invalid_site_id',
+ wp_kses(
+ __( 'Error: Invalid site ID.', 'jetpack-connection' ),
+ array(
+ 'strong' => array(),
+ )
+ )
+ );
+ }
+
+ // Bail if there are any errors.
+ if ( $errors->has_errors() ) {
+ return $errors;
+ }
+
+ $new_user_request = array(
+ 'email_or_username' => sanitize_email( $user->user_email ),
+ 'role' => sanitize_key( $user->role ),
+ );
+
+ if (
+ isset( $_POST['custom_email_message'] )
+ && strlen( sanitize_text_field( wp_unslash( $_POST['custom_email_message'] ) ) ) > 0
+ ) {
+ $new_user_request['message'] = sanitize_text_field( wp_unslash( $_POST['custom_email_message'] ) );
+ }
+
+ if ( isset( $_POST['user_external_contractor'] ) ) {
+ $new_user_request['is_external'] = true;
+ }
+
+ $response = Client::wpcom_json_api_request_as_user(
+ sprintf(
+ '/sites/%d/invites/new',
+ (int) $site_id
+ ),
+ '2', // Api version
+ array(
+ 'method' => 'POST',
+ ),
+ array(
+ 'invitees' => array( $new_user_request ),
+ )
+ );
+
+ $event_name = 'sso_new_user_invite_sent';
+ $custom_message_sent = isset( $new_user_request['message'] ) ? 'true' : 'false';
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $errors->add(
+ 'invitation_not_sent',
+ wp_kses(
+ __( 'Error: The user invitation email could not be sent, the user account was not created.', 'jetpack-connection' ),
+ array(
+ 'strong' => array(),
+ )
+ )
+ );
+ self::$tracking->record_user_event(
+ $event_name,
+ array(
+ 'success' => 'false',
+ 'error' => wp_remote_retrieve_body( $response ), // Get as much information as possible.
+ )
+ );
+ } else {
+ self::$tracking->record_user_event(
+ $event_name,
+ array(
+ 'success' => 'true',
+ 'custom_message_sent' => $custom_message_sent,
+ )
+ );
+ }
+
+ return $errors;
+ }
+
+ /**
+ * Adds a column in the user admin table to display user connection status and actions.
+ *
+ * @param array $columns User list table columns.
+ *
+ * @return array
+ */
+ public function jetpack_user_connected_th( $columns ) {
+ Assets::register_script(
+ 'jetpack-sso-users',
+ '../../dist/jetpack-sso-users.js',
+ __FILE__,
+ array(
+ 'strategy' => 'defer',
+ 'in_footer' => true,
+ 'enqueue' => true,
+ 'version' => Package_Version::PACKAGE_VERSION,
+ )
+ );
+
+ $tooltip_string = esc_attr__( 'Jetpack SSO allows a seamless and secure experience on WordPress.com. Join millions of WordPress users who trust us to keep their accounts safe.', 'jetpack-connection' );
+
+ wp_add_inline_script(
+ 'jetpack-sso-users',
+ "var Jetpack_SSOTooltip = { 'tooltipString': '{$tooltip_string}' }",
+ 'before'
+ );
+
+ $columns['user_jetpack'] = sprintf(
+ '%2$s',
+ $tooltip_string,
+ esc_html__( 'SSO Status', 'jetpack-connection' ),
+ esc_attr__( 'Tooltip', 'jetpack-connection' )
+ );
+ return $columns;
+ }
+
+ /**
+ * Executed when our WP_User_Query instance is set, and we don't have cached invites.
+ * This function uses the user emails and the 'are-users-invited' endpoint to build the cache.
+ *
+ * @return void
+ */
+ private static function rebuild_invite_cache() {
+ $blog_id = Manager::get_site_id( true );
+
+ if ( self::$cached_invites === null && self::$user_search !== null ) {
+
+ self::$cached_invites = array();
+
+ $results = self::$user_search->get_results();
+
+ $user_emails = array_reduce(
+ $results,
+ function ( $current, $item ) {
+ if ( ! ( new Manager() )->is_user_connected( $item->ID ) ) {
+ $current[] = rawurlencode( $item->user_email );
+ } else {
+ self::$cached_invites[] = array(
+ 'email_or_username' => $item->user_email,
+ 'invited' => false,
+ 'invite_code' => '',
+ );
+ }
+ return $current;
+ },
+ array()
+ );
+
+ if ( ! empty( $user_emails ) ) {
+ $url = '/sites/' . $blog_id . '/invites/are-users-invited';
+
+ $response = Client::wpcom_json_api_request_as_user(
+ $url,
+ 'v2',
+ array(
+ 'method' => 'POST',
+ ),
+ array( 'users' => $user_emails ),
+ 'wpcom'
+ );
+
+ if ( 200 === wp_remote_retrieve_response_code( $response ) ) {
+ $body = json_decode( $response['body'], true );
+
+ // ensure array_merge happens with the right parameters
+ if ( empty( $body ) ) {
+ $body = array();
+ }
+
+ self::$cached_invites = array_merge( self::$cached_invites, $body );
+ }
+ }
+ }
+ }
+
+ /**
+ * Check if there is cached invite for a user email.
+ *
+ * @access private
+ * @static
+ *
+ * @param string $email The user email.
+ *
+ * @return array|void Returns the cached invite if found.
+ */
+ public static function get_pending_cached_wpcom_invite( $email ) {
+ if ( self::$cached_invites === null ) {
+ self::rebuild_invite_cache();
+ }
+
+ if ( ! empty( self::$cached_invites ) && is_array( self::$cached_invites ) ) {
+ $index = array_search( $email, array_column( self::$cached_invites, 'email_or_username' ), true );
+ if ( $index !== false ) {
+ return self::$cached_invites[ $index ];
+ }
+ }
+ }
+
+ /**
+ * Check if a given user is invited to the site.
+ *
+ * @access private
+ * @static
+ * @param int $user_id The user ID.
+ *
+ * @return false|string returns the user invite code if the user is invited, false otherwise.
+ */
+ private static function has_pending_wpcom_invite( $user_id ) {
+ $blog_id = Manager::get_site_id( true );
+ $user = get_user_by( 'id', $user_id );
+ $cached_invite = self::get_pending_cached_wpcom_invite( $user->user_email );
+
+ if ( $cached_invite ) {
+ return $cached_invite['invite_code'];
+ }
+
+ $url = '/sites/' . $blog_id . '/invites/is-invited';
+ $url = add_query_arg(
+ array(
+ 'email_or_username' => rawurlencode( $user->user_email ),
+ ),
+ $url
+ );
+ $response = Client::wpcom_json_api_request_as_user(
+ $url,
+ 'v2',
+ array(),
+ null,
+ 'wpcom'
+ );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return false;
+ }
+
+ $body_response = wp_remote_retrieve_body( $response );
+ if ( empty( $body_response ) ) {
+ return false;
+ }
+
+ $body = json_decode( $body_response, true );
+ if ( ! empty( $body['invite_code'] ) ) {
+ return $body['invite_code'];
+ }
+
+ return false;
+ }
+
+ /**
+ * Delete an external contributor from the site.
+ *
+ * @access private
+ * @static
+ * @param int $user_id The user ID.
+ *
+ * @return bool Returns true if the user was successfully deleted, false otherwise.
+ */
+ private static function delete_external_contributor( $user_id ) {
+ $blog_id = Manager::get_site_id( true );
+ $url = '/sites/' . $blog_id . '/external-contributors/remove';
+ $response = Client::wpcom_json_api_request_as_user(
+ $url,
+ 'v2',
+ array(
+ 'method' => 'POST',
+ ),
+ array(
+ 'user_id' => $user_id,
+ ),
+ 'wpcom'
+ );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Show Jetpack SSO user connection status.
+ *
+ * @param string $val HTML for the column.
+ * @param string $col User list table column.
+ * @param int $user_id User ID.
+ *
+ * @return string
+ */
+ public function jetpack_show_connection_status( $val, $col, $user_id ) {
+ if ( 'user_jetpack' === $col ) {
+ if ( ( new Manager() )->is_user_connected( $user_id ) ) {
+ $connection_html = sprintf(
+ '%2$s',
+ esc_attr__( 'This user is connected and can log-in to this site.', 'jetpack-connection' ),
+ esc_html__( 'Connected', 'jetpack-connection' )
+ );
+ return $connection_html;
+ } else {
+ $has_pending_invite = self::has_pending_wpcom_invite( $user_id );
+ if ( $has_pending_invite ) {
+ $connection_html = sprintf(
+ '%2$s',
+ esc_attr__( 'This user didn’t accept the invitation to join this site yet.', 'jetpack-connection' ),
+ esc_html__( 'Pending invite', 'jetpack-connection' )
+ );
+ return $connection_html;
+ }
+ $nonce = wp_create_nonce( 'jetpack-sso-invite-user' );
+ $connection_html = sprintf(
+ // Using formmethod and formaction because we can't nest forms and have to submit using the main form.
+ '
+ %2$s
+
+ %3$s
+
+ ',
+ add_query_arg(
+ array(
+ 'user_id' => $user_id,
+ 'invite_nonce' => $nonce,
+ 'action' => 'jetpack_invite_user_to_wpcom',
+ ),
+ admin_url( 'admin-post.php' )
+ ),
+ esc_html__( 'Send invite', 'jetpack-connection' ),
+ esc_attr__( 'This user doesn’t have an SSO connection to WordPress.com. Invite them to the site to increase security and improve their experience.', 'jetpack-connection' ),
+ esc_attr__( 'Tooltip', 'jetpack-connection' )
+ );
+ return $connection_html;
+ }
+ }
+ return $val;
+ }
+
+ /**
+ * Creates error notices and redirects the user to the previous page.
+ *
+ * @param array $query_params - query parameters added to redirection URL.
+ */
+ public function create_error_notice_and_redirect( $query_params ) {
+ $ref = wp_get_referer();
+ if ( empty( $ref ) ) {
+ $ref = network_admin_url( 'users.php' );
+ }
+
+ $url = add_query_arg(
+ $query_params,
+ $ref
+ );
+ return wp_safe_redirect( $url );
+ }
+
+ /**
+ * Style the Jetpack user rows and columns.
+ */
+ public function jetpack_user_table_styles() {
+ ?>
+
+ p,
+.jetpack-sso-form-display #loginform>div {
+ display: none;
+}
+
+.jetpack-sso-form-display #loginform #jetpack-sso-wrap {
+ display: block;
+}
+
+.jetpack-sso-form-display #loginform {
+ padding: 26px 24px;
+}
+
+.jetpack-sso-or {
+ margin-bottom: 16px;
+ position: relative;
+ text-align: center;
+}
+
+.jetpack-sso-or:before {
+ background: #dcdcde;
+ content: '';
+ height: 1px;
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 100%;
+}
+
+.jetpack-sso-or span {
+ background: #fff;
+ color: #777;
+ position: relative;
+ padding: 0 8px;
+ text-transform: uppercase
+}
+
+#jetpack-sso-wrap .button {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 36px;
+ margin-bottom: 16px;
+ width: 100%;
+}
+
+#jetpack-sso-wrap .button .genericon-wordpress {
+ font-size: 24px;
+ margin-right: 4px;
+}
+
+#jetpack-sso-wrap__user img {
+ border-radius: 50%;
+ display: block;
+ margin: 0 auto 16px;
+}
+
+#jetpack-sso-wrap__user h2 {
+ font-size: 21px;
+ font-weight: 300;
+ margin-bottom: 16px;
+ text-align: center;
+}
+
+#jetpack-sso-wrap__user h2 span {
+ font-weight: bold;
+}
+
+.jetpack-sso-wrap__reauth {
+ margin-bottom: 16px;
+}
+
+.jetpack-sso-form-display #nav {
+ display: none;
+}
+
+.jetpack-sso-form-display #backtoblog {
+ margin: 24px 0 0;
+}
+
+.jetpack-sso-clear:after {
+ content: "";
+ display: table;
+ clear: both;
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js
new file mode 100644
index 00000000..980741be
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js
@@ -0,0 +1,27 @@
+document.addEventListener( 'DOMContentLoaded', () => {
+ const body = document.querySelector( 'body' ),
+ toggleSSO = document.querySelector( '.jetpack-sso-toggle' ),
+ userLogin = document.getElementById( 'user_login' ),
+ userPassword = document.getElementById( 'user_pass' ),
+ ssoWrap = document.getElementById( 'jetpack-sso-wrap' ),
+ loginForm = document.getElementById( 'loginform' ),
+ overflow = document.createElement( 'div' );
+
+ overflow.className = 'jetpack-sso-clear';
+
+ loginForm.appendChild( overflow );
+ overflow.appendChild( document.querySelector( 'p.forgetmenot' ) );
+ overflow.appendChild( document.querySelector( 'p.submit' ) );
+
+ loginForm.appendChild( ssoWrap );
+ body.classList.add( 'jetpack-sso-repositioned' );
+
+ toggleSSO.addEventListener( 'click', e => {
+ e.preventDefault();
+ body.classList.toggle( 'jetpack-sso-form-display' );
+ if ( ! body.classList.contains( 'jetpack-sso-form-display' ) ) {
+ userLogin.focus();
+ userPassword.disabled = false;
+ }
+ } );
+} );
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js
new file mode 100644
index 00000000..242786a9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js
@@ -0,0 +1,64 @@
+document.addEventListener( 'DOMContentLoaded', function () {
+ document
+ .querySelectorAll( '.jetpack-sso-invitation-tooltip-icon:not(.sso-disconnected-user)' )
+ .forEach( function ( tooltip ) {
+ tooltip.innerHTML += ' [?]';
+
+ const tooltipTextbox = document.createElement( 'span' );
+ tooltipTextbox.classList.add( 'jetpack-sso-invitation-tooltip', 'jetpack-sso-th-tooltip' );
+
+ const tooltipString = window.Jetpack_SSOTooltip.tooltipString;
+ tooltipTextbox.innerHTML += tooltipString;
+
+ tooltip.addEventListener( 'mouseenter', appendTooltip );
+ tooltip.addEventListener( 'focus', appendTooltip );
+ tooltip.addEventListener( 'mouseleave', removeTooltip );
+ tooltip.addEventListener( 'blur', removeTooltip );
+
+ /**
+ * Display the tooltip textbox.
+ */
+ function appendTooltip() {
+ tooltip.appendChild( tooltipTextbox );
+ tooltipTextbox.style.display = 'block';
+ }
+
+ /**
+ * Remove the tooltip textbox.
+ */
+ function removeTooltip() {
+ // Only remove tooltip if the element isn't currently active.
+ if ( document.activeElement === tooltip ) {
+ return;
+ }
+ tooltip.removeChild( tooltipTextbox );
+ }
+ } );
+ document
+ .querySelectorAll( '.jetpack-sso-invitation-tooltip-icon:not(.jetpack-sso-status-column)' )
+ .forEach( function ( tooltip ) {
+ tooltip.addEventListener( 'mouseenter', appendSSOInvitationTooltip );
+ tooltip.addEventListener( 'focus', appendSSOInvitationTooltip );
+ tooltip.addEventListener( 'mouseleave', removeSSOInvitationTooltip );
+ tooltip.addEventListener( 'blur', removeSSOInvitationTooltip );
+ } );
+
+ /**
+ * Display the SSO invitation tooltip textbox.
+ */
+ function appendSSOInvitationTooltip() {
+ this.querySelector( '.jetpack-sso-invitation-tooltip' ).style.display = 'block';
+ }
+
+ /**
+ * Remove the SSO invitation tooltip textbox.
+ *
+ * @param {Event} event - Triggering event.
+ */
+ function removeSSOInvitationTooltip( event ) {
+ if ( document.activeElement === event.target ) {
+ return;
+ }
+ this.querySelector( '.jetpack-sso-invitation-tooltip' ).style.display = 'none';
+ }
+} );
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/webhooks/class-authorize-redirect.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/webhooks/class-authorize-redirect.php
new file mode 100644
index 00000000..be6e886d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-connection/src/webhooks/class-authorize-redirect.php
@@ -0,0 +1,211 @@
+connection = $connection;
+ }
+
+ /**
+ * Handle the webhook
+ *
+ * This method implements what's in Jetpack::admin_page_load when the Jetpack plugin is not present
+ *
+ * @return never
+ */
+ public function handle() {
+
+ add_filter(
+ 'allowed_redirect_hosts',
+ function ( $domains ) {
+ $domains[] = 'jetpack.com';
+ $domains[] = 'jetpack.wordpress.com';
+ $domains[] = 'wordpress.com';
+ // Calypso envs.
+ $domains[] = 'calypso.localhost';
+ $domains[] = 'wpcalypso.wordpress.com';
+ $domains[] = 'horizon.wordpress.com';
+ return array_unique( $domains );
+ }
+ );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $dest_url = empty( $_GET['dest_url'] ) ? null : esc_url_raw( wp_unslash( $_GET['dest_url'] ) );
+
+ if ( ! $dest_url || ( 0 === stripos( $dest_url, 'https://jetpack.com/' ) && 0 === stripos( $dest_url, 'https://wordpress.com/' ) ) ) {
+ // The destination URL is missing or invalid, nothing to do here.
+ exit;
+ }
+
+ // The user is either already connected, or finished the connection process.
+ if ( $this->connection->is_connected() && $this->connection->is_user_connected() ) {
+ if ( class_exists( '\Automattic\Jetpack\Licensing' ) && method_exists( '\Automattic\Jetpack\Licensing', 'handle_user_connected_redirect' ) ) {
+ Licensing::instance()->handle_user_connected_redirect( $dest_url );
+ }
+
+ wp_safe_redirect( $dest_url );
+ exit;
+ } elseif ( ! empty( $_GET['done'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ // The user decided not to proceed with setting up the connection.
+
+ wp_safe_redirect( Admin_Menu::get_top_level_menu_item_url() );
+ exit;
+ }
+
+ $redirect_args = array(
+ 'page' => 'jetpack',
+ 'action' => 'authorize_redirect',
+ 'dest_url' => rawurlencode( $dest_url ),
+ 'done' => '1',
+ );
+
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ if ( ! empty( $_GET['from'] ) && 'jetpack_site_only_checkout' === $_GET['from'] ) {
+ $redirect_args['from'] = 'jetpack_site_only_checkout';
+ }
+
+ wp_safe_redirect( $this->build_authorize_url( add_query_arg( $redirect_args, admin_url( 'admin.php' ) ) ) );
+ exit;
+ }
+
+ /**
+ * Create the Jetpack authorization URL.
+ *
+ * @since 2.7.6 Added optional $from and $raw parameters.
+ *
+ * @param bool|string $redirect URL to redirect to.
+ * @param bool|string $from If not false, adds 'from=$from' param to the connect URL.
+ * @param bool $raw If true, URL will not be escaped.
+ *
+ * @todo Update default value for redirect since the called function expects a string.
+ *
+ * @return mixed|void
+ */
+ public function build_authorize_url( $redirect = false, $from = false, $raw = false ) {
+
+ add_filter( 'jetpack_connect_request_body', array( __CLASS__, 'filter_connect_request_body' ) );
+ add_filter( 'jetpack_connect_redirect_url', array( __CLASS__, 'filter_connect_redirect_url' ) );
+
+ $url = $this->connection->get_authorization_url( wp_get_current_user(), $redirect, $from, $raw );
+
+ remove_filter( 'jetpack_connect_request_body', array( __CLASS__, 'filter_connect_request_body' ) );
+ remove_filter( 'jetpack_connect_redirect_url', array( __CLASS__, 'filter_connect_redirect_url' ) );
+
+ /**
+ * Filter the URL used when authorizing a user to a WordPress.com account.
+ *
+ * @since jetpack-8.9.0
+ * @since 2.7.6 Added $raw parameter.
+ *
+ * @param string $url Connection URL.
+ * @param bool $raw If true, URL will not be escaped.
+ */
+ return apply_filters( 'jetpack_build_authorize_url', $url, $raw );
+ }
+
+ /**
+ * Filters the redirection URL that is used for connect requests. The redirect
+ * URL should return the user back to the My Jetpack page.
+ *
+ * @param string $redirect the default redirect URL used by the package.
+ * @return string the modified URL.
+ */
+ public static function filter_connect_redirect_url( $redirect ) {
+ $jetpack_admin_page = esc_url_raw( admin_url( 'admin.php?page=my-jetpack' ) );
+ $redirect = $redirect
+ ? wp_validate_redirect( esc_url_raw( $redirect ), $jetpack_admin_page )
+ : $jetpack_admin_page;
+
+ if (
+ class_exists( 'Jetpack_Network' )
+ && isset( $_REQUEST['is_multisite'] ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ ) {
+ $redirect = Jetpack_Network::init()->get_url( 'network_admin_page' );
+ }
+
+ return $redirect;
+ }
+
+ /**
+ * Filters the connection URL parameter array.
+ *
+ * @param array $args default URL parameters used by the package.
+ * @return array the modified URL arguments array.
+ */
+ public static function filter_connect_request_body( $args ) {
+ if (
+ Constants::is_defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' )
+ && include_once Constants::get_constant( 'JETPACK__GLOTPRESS_LOCALES_PATH' )
+ ) {
+ $gp_locale = GP_Locales::by_field( 'wp_locale', get_locale() );
+ $args['locale'] = isset( $gp_locale ) && isset( $gp_locale->slug )
+ ? $gp_locale->slug
+ : '';
+ }
+
+ $tracking = new Tracking();
+ $tracks_identity = $tracking->tracks_get_identity( $args['state'] );
+
+ $args = array_merge(
+ $args,
+ array(
+ '_ui' => $tracks_identity['_ui'],
+ '_ut' => $tracks_identity['_ut'],
+ )
+ );
+
+ $calypso_env = ( new Host() )->get_calypso_env();
+
+ if ( ! empty( $calypso_env ) ) {
+ $args['calypso_env'] = $calypso_env;
+ }
+
+ return $args;
+ }
+
+ /**
+ * Return Calypso environment value; used for developing Jetpack and pairing
+ * it with different Calypso enrionments, such as localhost.
+ * Copied from Jetpack class.
+ *
+ * @deprecated 2.7.6
+ *
+ * @since 1.37.1
+ *
+ * @return string Calypso environment
+ */
+ public static function get_calypso_env() {
+ _deprecated_function( __METHOD__, '2.7.6', 'Automattic\\Jetpack\\Status\\Host::get_calypso_env' );
+
+ return ( new Host() )->get_calypso_env();
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md
new file mode 100644
index 00000000..842f3a81
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/CHANGELOG.md
@@ -0,0 +1,214 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [2.0.4] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [2.0.3] - 2024-05-29
+### Fixed
+- Fix phpdoc type on `Constants::set_constant()` value parameter. [#37606]
+
+## [2.0.2] - 2024-04-30
+### Changed
+- Internal updates.
+
+## [2.0.1] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [2.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [1.6.23] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.6.22] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.6.21] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.6.20] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [1.6.19] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.6.18] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.6.17] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [1.6.16] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.6.15] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [1.6.14] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.6.13] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.6.12] - 2021-11-22
+### Changed
+- Updated package dependencies
+
+## [1.6.11] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.6.10] - 2021-10-26
+### Fixed
+- Updated is_true docblock to be more accurate.
+
+## [1.6.9] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.6.8] - 2021-10-06
+### Changed
+- Updated package dependencies
+
+## [1.6.7] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.6.6] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- Updated versions in annotations
+
+## [1.6.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.6.4] - 2021-04-08
+### Changed
+- Packaging and build changes, no change to the package itself.
+
+## [1.6.3] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.6.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.6.1] - 2021-01-19
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.6.0] - 2020-12-14
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.5.1] - 2020-10-28
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.5.0] - 2020-08-13
+
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.4.0] - 2020-07-01
+
+- Package Unit tests: update test file names to make sure they runs in Travis
+
+## [1.3.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+
+## [1.2.0] - 2020-04-15
+
+- Use jp.com redirect in all links
+- Connection: add a filter for setting Jetpack api constants
+
+## [1.1.3] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.1.2] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## [1.1.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## [1.1.0] - 2019-09-14
+
+## 1.0.0 - 2019-07-09
+
+- Packages: Finish the constants package
+
+[2.0.4]: https://github.com/Automattic/jetpack-constants/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-constants/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-constants/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-constants/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-constants/compare/v1.6.23...v2.0.0
+[1.6.23]: https://github.com/Automattic/jetpack-constants/compare/v1.6.22...v1.6.23
+[1.6.22]: https://github.com/Automattic/jetpack-constants/compare/v1.6.21...v1.6.22
+[1.6.21]: https://github.com/Automattic/jetpack-constants/compare/v1.6.20...v1.6.21
+[1.6.20]: https://github.com/Automattic/jetpack-constants/compare/v1.6.19...v1.6.20
+[1.6.19]: https://github.com/Automattic/jetpack-constants/compare/v1.6.18...v1.6.19
+[1.6.18]: https://github.com/Automattic/jetpack-constants/compare/v1.6.17...v1.6.18
+[1.6.17]: https://github.com/Automattic/jetpack-constants/compare/v1.6.16...v1.6.17
+[1.6.16]: https://github.com/Automattic/jetpack-constants/compare/v1.6.15...v1.6.16
+[1.6.15]: https://github.com/Automattic/jetpack-constants/compare/v1.6.14...v1.6.15
+[1.6.14]: https://github.com/Automattic/jetpack-constants/compare/v1.6.13...v1.6.14
+[1.6.13]: https://github.com/Automattic/jetpack-constants/compare/v1.6.12...v1.6.13
+[1.6.12]: https://github.com/Automattic/jetpack-constants/compare/v1.6.11...v1.6.12
+[1.6.11]: https://github.com/Automattic/jetpack-constants/compare/v1.6.10...v1.6.11
+[1.6.10]: https://github.com/Automattic/jetpack-constants/compare/v1.6.9...v1.6.10
+[1.6.9]: https://github.com/Automattic/jetpack-constants/compare/v1.6.8...v1.6.9
+[1.6.8]: https://github.com/Automattic/jetpack-constants/compare/v1.6.7...v1.6.8
+[1.6.7]: https://github.com/Automattic/jetpack-constants/compare/v1.6.6...v1.6.7
+[1.6.6]: https://github.com/Automattic/jetpack-constants/compare/v1.6.5...v1.6.6
+[1.6.5]: https://github.com/Automattic/jetpack-constants/compare/v1.6.4...v1.6.5
+[1.6.4]: https://github.com/Automattic/jetpack-constants/compare/v1.6.3...v1.6.4
+[1.6.3]: https://github.com/Automattic/jetpack-constants/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-constants/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-constants/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-constants/compare/v1.5.1...v1.6.0
+[1.5.1]: https://github.com/Automattic/jetpack-constants/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-constants/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-constants/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-constants/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-constants/compare/v1.1.3...v1.2.0
+[1.1.3]: https://github.com/Automattic/jetpack-constants/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/Automattic/jetpack-constants/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-constants/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-constants/compare/v1.0.0...v1.1.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/composer.json
new file mode 100644
index 00000000..9c4b937e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/composer.json
@@ -0,0 +1,42 @@
+{
+ "name": "automattic/jetpack-constants",
+ "description": "A wrapper for defining constants in a more testable way.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.0.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php
new file mode 100644
index 00000000..45768a94
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-constants/src/class-constants.php
@@ -0,0 +1,124 @@
+= 7.0. [#34192]
+
+## [1.5.1] - 2023-11-14
+
+## [1.5.0] - 2023-11-13
+### Added
+- Added 'cookieinformationscanner' and 'facebookexternalhit' to the bot user agent list. [#34026]
+
+## [1.4.27] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.4.26] - 2023-06-12
+### Fixed
+- Catch PHP notice if User Agent is not available [#31279]
+
+## [1.4.25] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.4.24] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.4.23] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [1.4.22] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [1.4.21] - 2022-11-22
+### Added
+- Add a guard in `functions.php` against being loaded twice from different copies of the package. [#27475]
+
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.4.20] - 2022-11-07
+### Fixed
+- Ensure that User_Agent is loaded in environments without autoload enabled. (e.g.: WordPress.com and Super Cache) [#27223]
+
+## [1.4.19] - 2022-10-25
+### Changed
+- Update `wp_unslash` wrapper to possibly run on wpcom before WordPress is loaded. [#26971]
+
+## [1.4.18] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.4.17] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [1.4.16] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.4.15] - 2022-04-19
+### Changed
+- PHPCS: Fix `WordPress.Security.ValidatedSanitizedInput`
+
+## [1.4.14] - 2022-03-29
+### Changed
+- Microperformance: Use === null instead of is_null
+
+## [1.4.13] - 2022-02-09
+### Fixed
+- Fixed some new PHPCS warnings.
+
+## [1.4.12] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.11] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.4.10] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.4.9] - 2021-11-16
+### Fixed
+- Verify $_SERVER['HTTP_USER_AGENT'] exists before use.
+
+## [1.4.8] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.4.7] - 2021-10-19
+### Deprecated
+- General: remove numerous long-deprecated functions.
+
+## [1.4.6] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.4.5] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.4.4] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.4.3] - 2021-08-31
+### Changed
+- Run composer update on test-php command instead of phpunit.
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- Updated versions in annotations.
+
+## [1.4.2] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.1] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.4.0] - 2021-03-30
+### Added
+- Added Opera Desktop detection
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.3.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.3.1] - 2021-01-19
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.3.0] - 2020-12-09
+
+- Codesniffer: Update mediawiki/mediawiki-codesniffer dependency
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.2.1] - 2020-11-10
+
+- Improve PHP 8 compatibility
+- Updated PHPCS: Packages and Debugger
+
+## [1.2.0] - 2020-10-19
+
+- Replaced intval() with (int) as part of issue #17432.
+
+## [1.1.0] - 2020-08-13
+
+- CI: Try collect js coverage
+
+## 1.0.0 - 2020-06-25
+
+- Moving jetpack_is_mobile into a package
+
+[2.1.4]: https://github.com/Automattic/jetpack-device-detection/compare/v2.1.3...v2.1.4
+[2.1.3]: https://github.com/Automattic/jetpack-device-detection/compare/v2.1.2...v2.1.3
+[2.1.2]: https://github.com/Automattic/jetpack-device-detection/compare/v2.1.1...v2.1.2
+[2.1.1]: https://github.com/Automattic/jetpack-device-detection/compare/v2.1.0...v2.1.1
+[2.1.0]: https://github.com/Automattic/jetpack-device-detection/compare/v2.0.1...v2.1.0
+[2.0.1]: https://github.com/Automattic/jetpack-device-detection/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.5.1...v2.0.0
+[1.5.1]: https://github.com/Automattic/jetpack-device-detection/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.27...v1.5.0
+[1.4.27]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.26...v1.4.27
+[1.4.26]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.25...v1.4.26
+[1.4.25]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.24...v1.4.25
+[1.4.24]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.23...v1.4.24
+[1.4.23]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.22...v1.4.23
+[1.4.22]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.21...v1.4.22
+[1.4.21]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.20...v1.4.21
+[1.4.20]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.19...v1.4.20
+[1.4.19]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.18...v1.4.19
+[1.4.18]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.17...v1.4.18
+[1.4.17]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.16...v1.4.17
+[1.4.16]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.15...v1.4.16
+[1.4.15]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.14...v1.4.15
+[1.4.14]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.13...v1.4.14
+[1.4.13]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.12...v1.4.13
+[1.4.12]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.11...v1.4.12
+[1.4.11]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.10...v1.4.11
+[1.4.10]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.9...v1.4.10
+[1.4.9]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.8...v1.4.9
+[1.4.8]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.7...v1.4.8
+[1.4.7]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-device-detection/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.3.2...v1.4.0
+[1.3.2]: https://github.com/Automattic/jetpack-device-detection/compare/v1.3.1...v1.3.2
+[1.3.1]: https://github.com/Automattic/jetpack-device-detection/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.2.1...v1.3.0
+[1.2.1]: https://github.com/Automattic/jetpack-device-detection/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-device-detection/compare/v1.0.0...v1.1.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/composer.json
new file mode 100644
index 00000000..9b1b6aff
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/composer.json
@@ -0,0 +1,41 @@
+{
+ "name": "automattic/jetpack-device-detection",
+ "description": "A way to detect device types based on User-Agent header.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.1.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php
new file mode 100644
index 00000000..767a552c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-device-detection.php
@@ -0,0 +1,224 @@
+ (bool) Whether the current device is a mobile phone.
+ * 'is_smartphone' => (bool) Whether the current device is a smartphone.
+ * 'is_tablet' => (bool) Whether the current device is a tablet device.
+ * 'is_handheld' => (bool) Whether the current device is a handheld device.
+ * 'is_desktop' => (bool) Whether the current device is a laptop / desktop device.
+ * 'platform' => (string) Detected platform.
+ * 'is_phone_matched_ua' => (string) Matched UA.
+ * );
+ */
+ public static function get_info( $ua = '' ) {
+ $ua_info = new User_Agent_Info( $ua );
+
+ $info = array(
+ 'is_phone' => self::is_mobile( 'any', false, $ua_info ),
+ 'is_phone_matched_ua' => self::is_mobile( 'any', true, $ua_info ),
+ 'is_smartphone' => self::is_mobile( 'smart', false, $ua_info ),
+ 'is_tablet' => $ua_info->is_tablet(),
+ 'platform' => $ua_info->get_platform(),
+ 'desktop_platform' => $ua_info->get_desktop_platform(),
+ 'browser' => $ua_info->get_browser(),
+ );
+
+ $info['is_handheld'] = $info['is_phone'] || $info['is_tablet'];
+ $info['is_desktop'] = ! $info['is_handheld'];
+
+ if ( function_exists( 'apply_filters' ) ) {
+ /**
+ * Filter the value of Device_Detection::get_info.
+ *
+ * @since 1.0.0
+ *
+ * @param array $info Array of device information.
+ * @param string $ua User agent string passed to Device_Detection::get_info.
+ * @param User_Agent_Info $ua_info Instance of Automattic\Jetpack\Device_Detection\User_Agent_Info.
+ */
+ $info = apply_filters( 'jetpack_device_detection_get_info', $info, $ua, $ua_info );
+ }
+ return $info;
+ }
+
+ /**
+ * Detects phone devices.
+ *
+ * @param string $ua User-Agent string.
+ *
+ * @return bool
+ */
+ public static function is_phone( $ua = '' ) {
+ $device_info = self::get_info( $ua );
+ return true === $device_info['is_phone'];
+ }
+
+ /**
+ * Detects smartphone devices.
+ *
+ * @param string $ua User-Agent string.
+ *
+ * @return bool
+ */
+ public static function is_smartphone( $ua = '' ) {
+ $device_info = self::get_info( $ua );
+ return true === $device_info['is_smartphone'];
+ }
+
+ /**
+ * Detects tablet devices.
+ *
+ * @param string $ua User-Agent string.
+ *
+ * @return bool
+ */
+ public static function is_tablet( $ua = '' ) {
+ $device_info = self::get_info( $ua );
+ return true === $device_info['is_tablet'];
+ }
+
+ /**
+ * Detects desktop devices.
+ *
+ * @param string $ua User-Agent string.
+ *
+ * @return bool
+ */
+ public static function is_desktop( $ua = '' ) {
+ $device_info = self::get_info( $ua );
+ return true === $device_info['is_desktop'];
+ }
+
+ /**
+ * Detects handheld (i.e. phone + tablet) devices.
+ *
+ * @param string $ua User-Agent string.
+ *
+ * @return bool
+ */
+ public static function is_handheld( $ua = '' ) {
+ $device_info = self::get_info( $ua );
+ return true === $device_info['is_handheld'];
+ }
+
+ /**
+ * Determine if the current User Agent matches the passed $kind.
+ *
+ * @param string $kind Category of mobile device to check for. Either: any, dumb, smart.
+ * @param bool $return_matched_agent Boolean indicating if the UA should be returned.
+ * @param User_Agent_Info $ua_info Boolean indicating if the UA should be returned.
+ *
+ * @return bool|string Boolean indicating if current UA matches $kind. If `$return_matched_agent` is true, returns the UA string.
+ */
+ private static function is_mobile( $kind, $return_matched_agent, $ua_info ) {
+ $kinds = array(
+ 'smart' => false,
+ 'dumb' => false,
+ 'any' => false,
+ );
+ $first_run = true;
+ $matched_agent = '';
+
+ // If an invalid kind is passed in, reset it to default.
+ if ( ! isset( $kinds[ $kind ] ) ) {
+ $kind = 'any';
+ }
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( filter_var( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) );
+ if ( strpos( $agent, 'ipad' ) ) {
+ return false;
+ }
+
+ // Remove Samsung Galaxy tablets (SCH-I800) from being mobile devices.
+ if ( strpos( $agent, 'sch-i800' ) ) {
+ return false;
+ }
+
+ if ( $ua_info->is_android_tablet() && false === $ua_info->is_kindle_touch() ) {
+ return false;
+ }
+
+ if ( $ua_info->is_blackberry_tablet() ) {
+ return false;
+ }
+
+ if ( $first_run ) {
+ $first_run = false;
+
+ // checks for iPhoneTier devices & RichCSS devices.
+ if ( $ua_info->isTierIphone() || $ua_info->isTierRichCSS() ) {
+ $kinds['smart'] = true;
+ $matched_agent = $ua_info->matched_agent;
+ }
+
+ if ( ! $kinds['smart'] ) {
+ // if smart, we are not dumb so no need to check.
+ $dumb_agents = $ua_info->dumb_agents;
+
+ foreach ( $dumb_agents as $dumb_agent ) {
+ if ( false !== strpos( $agent, $dumb_agent ) ) {
+ $kinds['dumb'] = true;
+ $matched_agent = $dumb_agent;
+
+ break;
+ }
+ }
+
+ if ( ! $kinds['dumb'] ) {
+ if ( isset( $_SERVER['HTTP_X_WAP_PROFILE'] ) ) {
+ $kinds['dumb'] = true;
+ $matched_agent = 'http_x_wap_profile';
+ } elseif ( isset( $_SERVER['HTTP_ACCEPT'] ) && ( preg_match( '/wap\.|\.wap/i', $_SERVER['HTTP_ACCEPT'] ) || false !== strpos( strtolower( $_SERVER['HTTP_ACCEPT'] ), 'application/vnd.wap.xhtml+xml' ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- This is doing the validating.
+ $kinds['dumb'] = true;
+ $matched_agent = 'vnd.wap.xhtml+xml';
+ }
+ }
+ }
+
+ if ( $kinds['dumb'] || $kinds['smart'] ) {
+ $kinds['any'] = true;
+ }
+ }
+
+ $value = $kinds[ $kind ];
+
+ if ( $return_matched_agent ) {
+ $value = $matched_agent;
+ }
+ return $value;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php
new file mode 100644
index 00000000..96fb68cd
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/class-user-agent-info.php
@@ -0,0 +1,1755 @@
+useragent = $ua;
+ } elseif ( ! empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ $this->useragent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This class is all about validating.
+ }
+ }
+
+ /**
+ * This method detects the mobile User Agent name.
+ *
+ * @return string The matched User Agent name, false otherwise.
+ */
+ public function get_mobile_user_agent_name() {
+ if ( static::is_chrome_for_iOS() ) { // Keep this check before the safari rule.
+ return 'chrome-for-ios';
+ } elseif ( static::is_iphone_or_ipod( 'iphone-safari' ) ) {
+ return 'iphone';
+ } elseif ( static::is_ipad( 'ipad-safari' ) ) {
+ return 'ipad';
+ } elseif ( static::is_android_tablet() ) { // Keep this check before the android rule.
+ return 'android_tablet';
+ } elseif ( static::is_android() ) {
+ return 'android';
+ } elseif ( static::is_blackberry_10() ) {
+ return 'blackberry_10';
+ } elseif ( static::is_blackbeberry() ) {
+ return 'blackberry';
+ } elseif ( static::is_WindowsPhone7() ) {
+ return 'win7';
+ } elseif ( static::is_windows_phone_8() ) {
+ return 'winphone8';
+ } elseif ( static::is_opera_mini() ) {
+ return 'opera-mini';
+ } elseif ( static::is_opera_mini_dumb() ) {
+ return 'opera-mini-dumb';
+ } elseif ( static::is_opera_mobile() ) {
+ return 'opera-mobi';
+ } elseif ( static::is_blackberry_tablet() ) {
+ return 'blackberry_tablet';
+ } elseif ( static::is_kindle_fire() ) {
+ return 'kindle-fire';
+ } elseif ( static::is_PalmWebOS() ) {
+ return 'webos';
+ } elseif ( static::is_S60_OSSBrowser() ) {
+ return 'series60';
+ } elseif ( static::is_firefox_os() ) {
+ return 'firefoxOS';
+ } elseif ( static::is_firefox_mobile() ) {
+ return 'firefox_mobile';
+ } elseif ( static::is_MaemoTablet() ) {
+ return 'maemo';
+ } elseif ( static::is_MeeGo() ) {
+ return 'meego';
+ } elseif ( static::is_TouchPad() ) {
+ return 'hp_tablet';
+ } elseif ( static::is_facebook_for_iphone() ) {
+ return 'facebook-for-iphone';
+ } elseif ( static::is_facebook_for_ipad() ) {
+ return 'facebook-for-ipad';
+ } elseif ( static::is_twitter_for_iphone() ) {
+ return 'twitter-for-iphone';
+ } elseif ( static::is_twitter_for_ipad() ) {
+ return 'twitter-for-ipad';
+ } elseif ( static::is_wordpress_for_ios() ) {
+ return 'ios-app';
+ } elseif ( static::is_iphone_or_ipod( 'iphone-not-safari' ) ) {
+ return 'iphone-unknown';
+ } elseif ( static::is_ipad( 'ipad-not-safari' ) ) {
+ return 'ipad-unknown';
+ } elseif ( static::is_Nintendo_3DS() ) {
+ return 'nintendo-3ds';
+ } else {
+ $agent = $this->useragent;
+ $dumb_agents = $this->dumb_agents;
+ foreach ( $dumb_agents as $dumb_agent ) {
+ if ( false !== strpos( $agent, $dumb_agent ) ) {
+ return $dumb_agent;
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * This method detects the mobile device's platform. All return strings are from the class constants.
+ * Note that this function returns the platform name, not the UA name/type. You should use a different function
+ * if you need to test the UA capabilites.
+ *
+ * @return string|bool Name of the platform, false otherwise.
+ */
+ public function get_platform() {
+ if ( isset( $this->platform ) ) {
+ return $this->platform;
+ }
+
+ if ( empty( $this->useragent ) ) {
+ return false;
+ }
+
+ if ( strpos( $this->useragent, 'windows phone' ) !== false ) {
+ $this->platform = self::PLATFORM_WINDOWS;
+ } elseif ( strpos( $this->useragent, 'windows ce' ) !== false ) {
+ $this->platform = self::PLATFORM_WINDOWS;
+ } elseif ( strpos( $this->useragent, 'ipad' ) !== false ) {
+ $this->platform = self::PLATFORM_IPAD;
+ } elseif ( strpos( $this->useragent, 'ipod' ) !== false ) {
+ $this->platform = self::PLATFORM_IPOD;
+ } elseif ( strpos( $this->useragent, 'iphone' ) !== false ) {
+ $this->platform = self::PLATFORM_IPHONE;
+ } elseif ( strpos( $this->useragent, 'android' ) !== false ) {
+ if ( static::is_android_tablet() ) {
+ $this->platform = self::PLATFORM_ANDROID_TABLET;
+ } else {
+ $this->platform = self::PLATFORM_ANDROID;
+ }
+ } elseif ( static::is_kindle_fire() ) {
+ $this->platform = self::PLATFORM_ANDROID_TABLET;
+ } elseif ( static::is_blackberry_10() ) {
+ $this->platform = self::PLATFORM_BLACKBERRY_10;
+ } elseif ( strpos( $this->useragent, 'blackberry' ) !== false ) {
+ $this->platform = self::PLATFORM_BLACKBERRY;
+ } elseif ( static::is_blackberry_tablet() ) {
+ $this->platform = self::PLATFORM_BLACKBERRY;
+ } elseif ( static::is_symbian_platform() ) {
+ $this->platform = self::PLATFORM_SYMBIAN;
+ } elseif ( static::is_symbian_s40_platform() ) {
+ $this->platform = self::PLATFORM_SYMBIAN_S40;
+ } elseif ( static::is_J2ME_platform() ) {
+ $this->platform = self::PLATFORM_J2ME_MIDP;
+ } elseif ( static::is_firefox_os() ) {
+ $this->platform = self::PLATFORM_FIREFOX_OS;
+ } else {
+ $this->platform = false;
+ }
+
+ return $this->platform;
+ }
+
+ /**
+ * Returns the platform for desktops
+ *
+ * @return string
+ */
+ public function get_desktop_platform() {
+ $ua = $this->useragent;
+ if ( empty( $ua ) ) {
+ return false;
+ }
+ $platform = self::OTHER;
+
+ if ( static::is_linux_desktop() ) {
+ $platform = self::PLATFORM_DESKTOP_LINUX;
+ } elseif ( static::is_mac_desktop() ) {
+ $platform = self::PLATFORM_DESKTOP_MAC;
+ } elseif ( static::is_windows_desktop() ) {
+ $platform = self::PLATFORM_DESKTOP_WINDOWS;
+ } elseif ( static::is_chrome_desktop() ) {
+ $platform = self::PLATFORM_DESKTOP_CHROME;
+ }
+ return $platform;
+ }
+
+ /**
+ * A simple pattern matching method for extracting the browser from the user agent.
+ *
+ * @return string
+ */
+ public function get_browser() {
+ $ua = $this->useragent;
+ if ( empty( $ua ) ) {
+ return self::OTHER;
+ }
+
+ if ( static::is_opera_mini() || static::is_opera_mobile() || static::is_opera_desktop() || static::is_opera_mini_dumb() ) {
+ return self::BROWSER_OPERA;
+ } elseif ( static::is_edge_browser() ) {
+ return self::BROWSER_EDGE;
+ } elseif ( static::is_chrome_desktop() || self::is_chrome_for_iOS() ) {
+ return self::BROWSER_CHROME;
+ } elseif ( static::is_safari_browser() ) {
+ return self::BROWSER_SAFARI;
+ } elseif ( static::is_firefox_mobile() || static::is_firefox_desktop() ) {
+ return self::BROWSER_FIREFOX;
+ } elseif ( static::is_ie_browser() ) {
+ return self::BROWSER_IE;
+ }
+ return self::OTHER;
+ }
+
+ /**
+ * This method detects for UA which can display iPhone-optimized web content.
+ * Includes iPhone, iPod Touch, Android, WebOS, Fennec (Firefox mobile), etc.
+ */
+ public function isTierIphone() {
+ if ( isset( $this->isTierIphone ) ) {
+ return $this->isTierIphone;
+ }
+ if ( $this->is_iphoneOrIpod() ) {
+ $this->matched_agent = 'iphone';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_android() ) {
+ $this->matched_agent = 'android';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_windows_phone_8() ) {
+ $this->matched_agent = 'winphone8';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_WindowsPhone7() ) {
+ $this->matched_agent = 'win7';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_blackberry_10() ) {
+ $this->matched_agent = 'blackberry-10';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_blackbeberry() && 'blackberry-webkit' === static::detect_blackberry_browser_version() ) {
+ $this->matched_agent = 'blackberry-webkit';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_blackberry_tablet() ) {
+ $this->matched_agent = 'blackberry_tablet';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_PalmWebOS() ) {
+ $this->matched_agent = 'webos';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_TouchPad() ) {
+ $this->matched_agent = 'hp_tablet';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_firefox_os() ) {
+ $this->matched_agent = 'firefoxOS';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_firefox_mobile() ) {
+ $this->matched_agent = 'fennec';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_opera_mobile() ) {
+ $this->matched_agent = 'opera-mobi';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_MaemoTablet() ) {
+ $this->matched_agent = 'maemo';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_MeeGo() ) {
+ $this->matched_agent = 'meego';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_kindle_touch() ) {
+ $this->matched_agent = 'kindle-touch';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_Nintendo_3DS() ) {
+ $this->matched_agent = 'nintendo-3ds';
+ $this->isTierIphone = true;
+ $this->isTierRichCss = false;
+ $this->isTierGenericMobile = false;
+ } else {
+ $this->isTierIphone = false;
+ }
+ return $this->isTierIphone;
+ }
+
+ /**
+ * This method detects for UA which are likely to be capable
+ * but may not necessarily support JavaScript.
+ * Excludes all iPhone Tier UA.
+ */
+ public function isTierRichCss() {
+ if ( isset( $this->isTierRichCss ) ) {
+ return $this->isTierRichCss;
+ }
+ if ( $this->isTierIphone() ) {
+ return false;
+ }
+
+ // The following devices are explicitly ok.
+ if ( static::is_S60_OSSBrowser() ) {
+ $this->matched_agent = 'series60';
+ $this->isTierIphone = false;
+ $this->isTierRichCss = true;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_opera_mini() ) {
+ $this->matched_agent = 'opera-mini';
+ $this->isTierIphone = false;
+ $this->isTierRichCss = true;
+ $this->isTierGenericMobile = false;
+ } elseif ( static::is_blackbeberry() ) {
+ $detectedDevice = static::detect_blackberry_browser_version();
+ if (
+ 'blackberry-5' === $detectedDevice
+ || 'blackberry-4.7' === $detectedDevice
+ || 'blackberry-4.6' === $detectedDevice
+ ) {
+ $this->matched_agent = $detectedDevice;
+ $this->isTierIphone = false;
+ $this->isTierRichCss = true;
+ $this->isTierGenericMobile = false;
+ }
+ } else {
+ $this->isTierRichCss = false;
+ }
+
+ return $this->isTierRichCss;
+ }
+
+ /**
+ * Detects if the user is using a tablet.
+ * props Corey Gilmore, BGR.com
+ *
+ * @return bool
+ */
+ public function is_tablet() {
+ return ( 0 // Never true, but makes it easier to manage our list of tablet conditions.
+ || self::is_ipad()
+ || self::is_android_tablet()
+ || self::is_blackberry_tablet()
+ || self::is_kindle_fire()
+ || self::is_MaemoTablet()
+ || self::is_TouchPad()
+ );
+ }
+
+ /**
+ * Detects if the current UA is the default iPhone or iPod Touch Browser.
+ *
+ * DEPRECATED: use is_iphone_or_ipod
+ */
+ public function is_iphoneOrIpod() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( ( strpos( $ua, 'iphone' ) !== false ) || ( strpos( $ua, 'ipod' ) !== false ) ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is iPhone Mobile Safari or another iPhone or iPod Touch Browser.
+ *
+ * They type can check for any iPhone, an iPhone using Safari, or an iPhone using something other than Safari.
+ *
+ * Note: If you want to check for Opera mini, Opera mobile or Firefox mobile (or any 3rd party iPhone browser),
+ * you should put the check condition before the check for 'iphone-any' or 'iphone-not-safari'.
+ * Otherwise those browsers will be 'catched' by the iphone string.
+ *
+ * @param string $type Type of iPhone detection.
+ */
+ public static function is_iphone_or_ipod( $type = 'iphone-any' ) {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $is_iphone = ( strpos( $ua, 'iphone' ) !== false ) || ( strpos( $ua, 'ipod' ) !== false );
+ $is_safari = ( false !== strpos( $ua, 'safari' ) );
+
+ if ( 'iphone-safari' === $type ) {
+ return $is_iphone && $is_safari;
+ } elseif ( 'iphone-not-safari' === $type ) {
+ return $is_iphone && ! $is_safari;
+ } else {
+ return $is_iphone;
+ }
+ }
+
+ /**
+ * Detects if the current UA is Chrome for iOS
+ *
+ * The User-Agent string in Chrome for iOS is the same as the Mobile Safari User-Agent, with CriOS/ instead of Version/.
+ * - Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en) AppleWebKit/534.46.0 (KHTML, like Gecko) CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3
+ */
+ public static function is_chrome_for_iOS() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ if ( self::is_iphone_or_ipod( 'iphone-safari' ) === false ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'crios/' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is Twitter for iPhone
+ *
+ * Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_5 like Mac OS X; nb-no) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8L1 Twitter for iPhone
+ * Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 Twitter for iPhone
+ */
+ public static function is_twitter_for_iphone() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'ipad' ) !== false ) {
+ return false;
+ }
+
+ if ( strpos( $ua, 'twitter for iphone' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is Twitter for iPad
+ *
+ * Old version 4.X - Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8L1 Twitter for iPad
+ * Ver 5.0 or Higher - Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 Twitter for iPhone
+ */
+ public static function is_twitter_for_ipad() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'twitter for ipad' ) !== false ) {
+ return true;
+ } elseif ( strpos( $ua, 'ipad' ) !== false && strpos( $ua, 'twitter for iphone' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is Facebook for iPhone
+ * - Facebook 4020.0 (iPhone; iPhone OS 5.0.1; fr_FR)
+ * - Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.2;FBBV/4020.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0;FBSS/2; FBCR/O2;FBID/phone;FBLC/en_US;FBSF/2.0]
+ * - Mozilla/5.0 (iPhone; CPU iPhone OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9B206 [FBAN/FBIOS;FBAV/5.0;FBBV/47423;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.1.1;FBSS/2; FBCR/3ITA;FBID/phone;FBLC/en_US]
+ */
+ public static function is_facebook_for_iphone() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false === strpos( $ua, 'iphone' ) ) {
+ return false;
+ }
+
+ if ( false !== strpos( $ua, 'facebook' ) && false === strpos( $ua, 'ipad' ) ) {
+ return true;
+ } elseif ( false !== strpos( $ua, 'fbforiphone' ) && false === strpos( $ua, 'tablet' ) ) {
+ return true;
+ } elseif ( false !== strpos( $ua, 'fban/fbios;' ) && false === strpos( $ua, 'tablet' ) ) { // FB app v5.0 or higher.
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is Facebook for iPad
+ * - Facebook 4020.0 (iPad; iPhone OS 5.0.1; en_US)
+ * - Mozilla/5.0 (iPad; U; CPU iPhone OS 5_0 like Mac OS X; en_US) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.2;FBBV/4020.0;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/5.0;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US;FBSF/1.0]
+ * - Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10A403 [FBAN/FBIOS;FBAV/5.0;FBBV/47423;FBDV/iPad2,1;FBMD/iPad;FBSN/iPhone OS;FBSV/6.0;FBSS/1; FBCR/;FBID/tablet;FBLC/en_US]
+ */
+ public static function is_facebook_for_ipad() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false === strpos( $ua, 'ipad' ) ) {
+ return false;
+ }
+
+ if ( false !== strpos( $ua, 'facebook' ) || false !== strpos( $ua, 'fbforiphone' ) || false !== strpos( $ua, 'fban/fbios;' ) ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is WordPress for iOS
+ */
+ public static function is_wordpress_for_ios() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( false !== strpos( $ua, 'wp-iphone' ) ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current device is an iPad.
+ * They type can check for any iPad, an iPad using Safari, or an iPad using something other than Safari.
+ *
+ * Note: If you want to check for Opera mini, Opera mobile or Firefox mobile (or any 3rd party iPad browser),
+ * you should put the check condition before the check for 'iphone-any' or 'iphone-not-safari'.
+ * Otherwise those browsers will be 'catched' by the ipad string.
+ *
+ * @param string $type iPad type.
+ */
+ public static function is_ipad( $type = 'ipad-any' ) {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $is_ipad = ( false !== strpos( $ua, 'ipad' ) );
+ $is_safari = ( false !== strpos( $ua, 'safari' ) );
+
+ if ( 'ipad-safari' === $type ) {
+ return $is_ipad && $is_safari;
+ } elseif ( 'ipad-not-safari' === $type ) {
+ return $is_ipad && ! $is_safari;
+ } else {
+ return $is_ipad;
+ }
+ }
+
+ /**
+ * Detects if the current browser is Firefox Mobile (Fennec)
+ *
+ * See http://www.useragentstring.com/pages/Fennec/
+ * Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.1.1) Gecko/20110415 Firefox/4.0.2pre Fennec/4.0.1
+ * Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1b2pre) Gecko/20081015 Fennec/1.0a1
+ */
+ public static function is_firefox_mobile() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'fennec' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is Firefox for desktop
+ *
+ * See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent/Firefox
+ * Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion
+ * The platform section will include 'Mobile' for phones and 'Tablet' for tablets.
+ */
+ public static function is_firefox_desktop() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false !== strpos( $ua, 'firefox' ) && false === strpos( $ua, 'mobile' ) && false === strpos( $ua, 'tablet' ) ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is FirefoxOS Native browser
+ *
+ * Mozilla/5.0 (Mobile; rv:14.0) Gecko/14.0 Firefox/14.0
+ */
+ public static function is_firefox_os() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'mozilla' ) !== false && strpos( $ua, 'mobile' ) !== false && strpos( $ua, 'gecko' ) !== false && strpos( $ua, 'firefox' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detect Safari browser
+ */
+ public static function is_safari_browser() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( false === strpos( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ), 'Safari' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Detect Edge browser
+ */
+ public static function is_edge_browser() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( false === strpos( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ), 'Edge' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Detect Edge browser
+ */
+ public static function is_ie_browser() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ $ua = wp_unslash( $_SERVER['HTTP_USER_AGENT'] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( false === ( strpos( $ua, 'MSIE' ) || strpos( $ua, 'Trident/7' ) ) ) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Detect modern Opera desktop
+ *
+ * Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36 OPR/74.0.3911.203
+ *
+ * Looking for "OPR/" specifically.
+ */
+ public static function is_opera_desktop() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ if ( false === strpos( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ), 'OPR/' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Detects if the current browser is Opera Mobile
+ *
+ * What is the difference between Opera Mobile and Opera Mini?
+ * - Opera Mobile is a full Internet browser for mobile devices.
+ * - Opera Mini always uses a transcoder to convert the page for a small display.
+ * (it uses Opera advanced server compression technology to compress web content before it gets to a device.
+ * The rendering engine is on Opera's server.)
+ *
+ * Opera/9.80 (Windows NT 6.1; Opera Mobi/14316; U; en) Presto/2.7.81 Version/11.00"
+ * Opera/9.50 (Nintendo DSi; Opera/507; U; en-US)
+ */
+ public static function is_opera_mobile() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'opera' ) !== false && strpos( $ua, 'mobi' ) !== false ) {
+ return true;
+ } elseif ( strpos( $ua, 'opera' ) !== false && strpos( $ua, 'nintendo dsi' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is Opera Mini
+ *
+ * Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; en; U; ssr)
+ * Opera/9.80 (Android;Opera Mini/6.0.24212/24.746 U;en) Presto/2.5.25 Version/10.5454
+ * Opera/9.80 (iPhone; Opera Mini/5.0.019802/18.738; U; en) Presto/2.4.15
+ * Opera/9.80 (J2ME/iPhone;Opera Mini/5.0.019802/886; U; ja) Presto/2.4.15
+ * Opera/9.80 (J2ME/iPhone;Opera Mini/5.0.019802/886; U; ja) Presto/2.4.15
+ * Opera/9.80 (Series 60; Opera Mini/5.1.22783/23.334; U; en) Presto/2.5.25 Version/10.54
+ * Opera/9.80 (BlackBerry; Opera Mini/5.1.22303/22.387; U; en) Presto/2.5.25 Version/10.54
+ */
+ public static function is_opera_mini() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $ua, 'opera' ) !== false && strpos( $ua, 'mini' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is Opera Mini, but not on a smart device OS(Android, iOS, etc)
+ * Used to send users on dumb devices to m.wor
+ */
+ public static function is_opera_mini_dumb() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( self::is_opera_mini() ) {
+ if ( strpos( $ua, 'android' ) !== false || strpos( $ua, 'iphone' ) !== false || strpos( $ua, 'ipod' ) !== false
+ || strpos( $ua, 'ipad' ) !== false || strpos( $ua, 'blackberry' ) !== false ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is a Windows Phone 7 device.
+ * ex: Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; LG; GW910)
+ */
+ public static function is_WindowsPhone7() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false === strpos( $ua, 'windows phone os 7' ) ) {
+ return false;
+ } elseif ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Detects if the current browser is a Windows Phone 8 device.
+ * ex: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; ARM; Touch; IEMobile/10.0; ; [;])
+ */
+ public static function is_windows_phone_8() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( strpos( $ua, 'windows phone 8' ) === false ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Detects if the current browser is on a Palm device running the new WebOS. This EXCLUDES TouchPad.
+ *
+ * Ex1: Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pre/1.1
+ * Ex2: Mozilla/5.0 (webOS/1.4.0; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Pixi/1.1
+ */
+ public static function is_PalmWebOS() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false === strpos( $ua, 'webos' ) ) {
+ return false;
+ } elseif ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the HP TouchPad default browser. This excludes phones wt WebOS.
+ *
+ * TouchPad Emulator: Mozilla/5.0 (hp-desktop; Linux; hpwOS/2.0; U; it-IT) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 Desktop/1.0
+ * TouchPad: Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0
+ */
+ public static function is_TouchPad() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $http_user_agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( false !== strpos( $http_user_agent, 'hp-tablet' ) || false !== strpos( $http_user_agent, 'hpwos' ) || false !== strpos( $http_user_agent, 'touchpad' ) ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the Series 60 Open Source Browser.
+ *
+ * OSS Browser 3.2 on E75: Mozilla/5.0 (SymbianOS/9.3; U; Series60/3.2 NokiaE75-1/110.48.125 Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+ *
+ * 7.0 Browser (Nokia 5800 XpressMusic (v21.0.025)) : Mozilla/5.0 (SymbianOS/9.4; U; Series60/5.0 Nokia5800d-1/21.0.025; Profile/MIDP-2.1 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
+ *
+ * Browser 7.1 (Nokia N97 (v12.0.024)) : Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/12.0.024; Profile/MIDP-2.1 Configuration/CLDC-1.1; en-us) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.12344
+ */
+ public static function is_S60_OSSBrowser() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ }
+
+ $pos_webkit = strpos( $agent, 'webkit' );
+ if ( false !== $pos_webkit ) {
+ // First, test for WebKit, then make sure it's either Symbian or S60.
+ if ( strpos( $agent, 'symbian' ) !== false || strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ } elseif ( strpos( $agent, 'symbianos' ) !== false && strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ } elseif ( strpos( $agent, 'nokia' ) !== false && strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Detects if the device platform is the Symbian Series 60.
+ */
+ public static function is_symbian_platform() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_webkit = strpos( $agent, 'webkit' );
+ if ( false !== $pos_webkit ) {
+ // First, test for WebKit, then make sure it's either Symbian or S60.
+ if ( strpos( $agent, 'symbian' ) !== false || strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ } else {
+ return false;
+ }
+ } elseif ( strpos( $agent, 'symbianos' ) !== false && strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ } elseif ( strpos( $agent, 'nokia' ) !== false && strpos( $agent, 'series60' ) !== false ) {
+ return true;
+ } elseif ( strpos( $agent, 'opera mini' ) !== false ) {
+ if ( strpos( $agent, 'symbianos' ) !== false || strpos( $agent, 'symbos' ) !== false || strpos( $agent, 'series 60' ) !== false ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Detects if the device platform is the Symbian Series 40.
+ * Nokia Browser for Series 40 is a proxy based browser, previously known as Ovi Browser.
+ * This browser will report 'NokiaBrowser' in the header, however some older version will also report 'OviBrowser'.
+ */
+ public static function is_symbian_s40_platform() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $agent, 'series40' ) !== false ) {
+ if ( strpos( $agent, 'nokia' ) !== false || strpos( $agent, 'ovibrowser' ) !== false || strpos( $agent, 'nokiabrowser' ) !== false ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns if the device belongs to J2ME capable family.
+ *
+ * @return bool
+ */
+ public static function is_J2ME_platform() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( strpos( $agent, 'j2me/midp' ) !== false ) {
+ return true;
+ } elseif ( strpos( $agent, 'midp' ) !== false && strpos( $agent, 'cldc' ) ) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Detects if the current UA is on one of the Maemo-based Nokia Internet Tablets.
+ */
+ public static function is_MaemoTablet() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_maemo = strpos( $agent, 'maemo' );
+ if ( false === $pos_maemo ) {
+ return false;
+ }
+
+ // Must be Linux + Tablet, or else it could be something else.
+ if ( strpos( $agent, 'tablet' ) !== false && strpos( $agent, 'linux' ) !== false ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current UA is a MeeGo device (Nokia Smartphone).
+ */
+ public static function is_MeeGo() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( false === strpos( $ua, 'meego' ) ) {
+ return false;
+ } elseif ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * The is_webkit() method can be used to check the User Agent for an webkit generic browser.
+ */
+ public static function is_webkit() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_webkit = strpos( $agent, 'webkit' );
+
+ if ( false !== $pos_webkit ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the Native Android browser.
+ *
+ * @return boolean true if the browser is Android otherwise false
+ */
+ public static function is_android() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos_android = strpos( $agent, 'android' );
+ if ( false !== $pos_android ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the Native Android Tablet browser.
+ * Assumes 'Android' should be in the user agent, but not 'mobile'
+ *
+ * @return boolean true if the browser is Android and not 'mobile' otherwise false
+ */
+ public static function is_android_tablet() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_android = strpos( $agent, 'android' );
+ $pos_mobile = strpos( $agent, 'mobile' );
+ $post_android_app = strpos( $agent, 'wp-android' );
+
+ if ( false !== $pos_android && false === $pos_mobile && false === $post_android_app ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the Kindle Fire Native browser.
+ *
+ * Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true
+ * Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-84) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=false
+ *
+ * @return boolean true if the browser is Kindle Fire Native browser otherwise false
+ */
+ public static function is_kindle_fire() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos_silk = strpos( $agent, 'silk/' );
+ $pos_silk_acc = strpos( $agent, 'silk-accelerated=' );
+ if ( false !== $pos_silk && false !== $pos_silk_acc ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detects if the current browser is the Kindle Touch Native browser
+ *
+ * Mozilla/5.0 (X11; U; Linux armv7l like Android; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/533.2+ Kindle/3.0+
+ *
+ * @return boolean true if the browser is Kindle monochrome Native browser otherwise false
+ */
+ public static function is_kindle_touch() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos_kindle_touch = strpos( $agent, 'kindle/3.0+' );
+ if ( false !== $pos_kindle_touch && false === self::is_kindle_fire() ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detect if user agent is the WordPress.com Windows 8 app (used ONLY on the custom oauth stylesheet)
+ */
+ public static function is_windows8_auth() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos = strpos( $agent, 'msauthhost' );
+ if ( false !== $pos ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detect if user agent is the WordPress.com Windows 8 app.
+ */
+ public static function is_wordpress_for_win8() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos = strpos( $agent, 'wp-windows8' );
+ if ( false !== $pos ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Detect if user agent is the WordPress.com Desktop app.
+ */
+ public static function is_wordpress_desktop_app() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos = strpos( $agent, 'WordPressDesktop' );
+ if ( false !== $pos ) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * The is_blackberry_tablet() method can be used to check the User Agent for a RIM blackberry tablet.
+ * The user agent of the BlackBerry® Tablet OS follows a format similar to the following:
+ * Mozilla/5.0 (PlayBook; U; RIM Tablet OS 1.0.0; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/0.0.1 Safari/534.8+
+ */
+ public static function is_blackberry_tablet() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ $pos_playbook = stripos( $agent, 'PlayBook' );
+ $pos_rim_tablet = stripos( $agent, 'RIM Tablet' );
+
+ if ( ( false === $pos_playbook ) || ( false === $pos_rim_tablet ) ) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+
+ /**
+ * The is_blackbeberry() method can be used to check the User Agent for a blackberry device.
+ * Note that opera mini on BB matches this rule.
+ */
+ public static function is_blackbeberry() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_blackberry = strpos( $agent, 'blackberry' );
+ if ( false !== $pos_blackberry ) {
+ if ( self::is_opera_mini() || self::is_opera_mobile() || self::is_firefox_mobile() ) {
+ return false;
+ } else {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * The is_blackberry_10() method can be used to check the User Agent for a BlackBerry 10 device.
+ */
+ public static function is_blackberry_10() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return ( strpos( $agent, 'bb10' ) !== false ) && ( strpos( $agent, 'mobile' ) !== false );
+ }
+
+ /**
+ * Determines whether a desktop platform is Linux OS
+ *
+ * @return bool
+ */
+ public static function is_linux_desktop() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( ! preg_match( '/linux/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Determines whether a desktop platform is Mac OS
+ *
+ * @return bool
+ */
+ public static function is_mac_desktop() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( ! preg_match( '/macintosh|mac os x/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Determines whether a desktop platform is Windows OS
+ *
+ * @return bool
+ */
+ public static function is_windows_desktop() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( ! preg_match( '/windows|win32/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Determines whether a desktop platform is Chrome OS
+ *
+ * @return bool
+ */
+ public static function is_chrome_desktop() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+ if ( ! preg_match( '/chrome/i', wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Retrieve the blackberry OS version.
+ *
+ * Return strings are from the following list:
+ * - blackberry-10
+ * - blackberry-7
+ * - blackberry-6
+ * - blackberry-torch //only the first edition. The 2nd edition has the OS7 onboard and doesn't need any special rule.
+ * - blackberry-5
+ * - blackberry-4.7
+ * - blackberry-4.6
+ * - blackberry-4.5
+ *
+ * @return string Version of the BB OS.
+ * If version is not found, get_blackbeberry_OS_version will return boolean false.
+ */
+ public static function get_blackbeberry_OS_version() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ if ( self::is_blackberry_10() ) {
+ return 'blackberry-10';
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ $pos_blackberry = stripos( $agent, 'blackberry' );
+ if ( false === $pos_blackberry ) {
+ // Not a blackberry device.
+ return false;
+ }
+
+ // Blackberry devices OS 6.0 or higher.
+ // Mozilla/5.0 (BlackBerry; U; BlackBerry 9670; en) AppleWebKit/534.3+ (KHTML, like Gecko) Version/6.0.0.286 Mobile Safari/534.3+.
+ // Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, Like Gecko) Version/6.0.0.141 Mobile Safari/534.1+.
+ // Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0 Mobile Safari/534.11+.
+ $pos_webkit = stripos( $agent, 'webkit' );
+ if ( false !== $pos_webkit ) {
+ // Detected blackberry webkit browser.
+ $pos_torch = stripos( $agent, 'BlackBerry 9800' );
+ if ( false !== $pos_torch ) {
+ return 'blackberry-torch'; // Match the torch first edition. the 2nd edition should use the OS7 and doesn't need any special rule.
+ } elseif ( preg_match( '#Version\/([\d\.]+)#i', $agent, $matches ) ) { // Detecting the BB OS version for devices running OS 6.0 or higher.
+ $version = $matches[1];
+ $version_num = explode( '.', $version );
+ if ( false === is_array( $version_num ) || count( $version_num ) <= 1 ) {
+ return 'blackberry-6'; // not a BB device that match our rule.
+ } else {
+ return 'blackberry-' . $version_num[0];
+ }
+ } else {
+ // if doesn't match returns the minimun version with a webkit browser. we should never fall here.
+ return 'blackberry-6'; // not a BB device that match our rule.
+ }
+ }
+
+ // Blackberry devices <= 5.XX.
+ // BlackBerry9000/5.0.0.93 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/179.
+ if ( preg_match( '#BlackBerry\w+\/([\d\.]+)#i', $agent, $matches ) ) {
+ $version = $matches[1];
+ } else {
+ return false; // not a BB device that match our rule.
+ }
+
+ $version_num = explode( '.', $version );
+
+ if ( is_array( $version_num ) === false || count( $version_num ) <= 1 ) {
+ return false;
+ }
+
+ $version_num_major = (int) $version_num[0];
+ $version_num_minor = (int) $version_num[1];
+
+ if ( 5 === $version_num_major ) {
+ return 'blackberry-5';
+ } elseif ( 4 === $version_num_major && 7 === $version_num_minor ) {
+ return 'blackberry-4.7';
+ } elseif ( 4 === $version_num_major && 6 === $version_num_minor ) {
+ return 'blackberry-4.6';
+ } elseif ( 4 === $version_num_major && 5 === $version_num_minor ) {
+ return 'blackberry-4.5';
+ } else {
+ return false;
+ }
+ }
+
+ /**
+ * Retrieve the blackberry browser version.
+ *
+ * Return string are from the following list:
+ * - blackberry-10
+ * - blackberry-webkit
+ * - blackberry-5
+ * - blackberry-4.7
+ * - blackberry-4.6
+ *
+ * @return string Type of the BB browser.
+ * If browser's version is not found, detect_blackbeberry_browser_version will return boolean false.
+ */
+ public static function detect_blackberry_browser_version() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( self::is_blackberry_10() ) {
+ return 'blackberry-10';
+ }
+
+ $pos_blackberry = strpos( $agent, 'blackberry' );
+ if ( false === $pos_blackberry ) {
+ // Not a blackberry device.
+ return false;
+ }
+
+ $pos_webkit = strpos( $agent, 'webkit' );
+
+ if ( ! ( false === $pos_webkit ) ) {
+ return 'blackberry-webkit';
+ } else {
+ if ( ! preg_match( '#BlackBerry\w+\/([\d\.]+)#i', $agent, $matches ) ) {
+ return false; // not a BB device that match our rule.
+ }
+
+ $version_num = explode( '.', $matches[1] );
+
+ if ( false === is_array( $version_num ) || count( $version_num ) <= 1 ) {
+ return false;
+ }
+
+ $version_num_major = (int) $version_num[0];
+ $version_num_minor = (int) $version_num[1];
+
+ if ( 5 === $version_num_major ) {
+ return 'blackberry-5';
+ } elseif ( 4 === $version_num_major && 7 === $version_num_minor ) {
+ return 'blackberry-4.7';
+ } elseif ( 4 === $version_num_major && 6 === $version_num_minor ) {
+ return 'blackberry-4.6';
+ } else {
+ // A very old BB device is found or this is a BB device that doesn't match our rules.
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Checks if a visitor is coming from one of the WordPress mobile apps.
+ *
+ * @return bool
+ */
+ public static function is_mobile_app() {
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $agent = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+
+ if ( isset( $_SERVER['X_USER_AGENT'] ) && preg_match( '|wp-webos|', $_SERVER['X_USER_AGENT'] ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- This is validating.
+ return true; // Wp4webos 1.1 or higher.
+ }
+
+ $app_agents = array( 'wp-android', 'wp-blackberry', 'wp-iphone', 'wp-nokia', 'wp-webos', 'wp-windowsphone' );
+ // the mobile reader on iOS has an incorrect UA when loading the reader
+ // currently it is the default one provided by the iOS framework which
+ // causes problems with 2-step-auth
+ // User-Agent WordPress/3.1.4 CFNetwork/609 Darwin/13.0.0.
+ $app_agents[] = 'wordpress/3.1';
+
+ foreach ( $app_agents as $app_agent ) {
+ if ( false !== strpos( $agent, $app_agent ) ) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Detects if the current browser is Nintendo 3DS handheld.
+ *
+ * Example: Mozilla/5.0 (Nintendo 3DS; U; ; en) Version/1.7498.US
+ * can differ in language, version and region
+ */
+ public static function is_Nintendo_3DS() {
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ $ua = strtolower( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ if ( strpos( $ua, 'nintendo 3ds' ) !== false ) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Was the current request made by a known bot?
+ *
+ * @return boolean
+ */
+ public static function is_bot() {
+ static $is_bot = null;
+
+ if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) {
+ return false;
+ }
+
+ if ( $is_bot === null ) {
+ $is_bot = self::is_bot_user_agent( wp_unslash( $_SERVER['HTTP_USER_AGENT'] ) ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- This is validating.
+ }
+
+ return $is_bot;
+ }
+
+ /**
+ * Is the given user-agent a known bot?
+ * If you want an is_bot check for the current request's UA, use is_bot() instead of passing a user-agent to this method.
+ *
+ * @param string $ua A user-agent string.
+ *
+ * @return boolean
+ */
+ public static function is_bot_user_agent( $ua = null ) {
+
+ if ( empty( $ua ) ) {
+ return false;
+ }
+
+ $bot_agents = array(
+ 'alexa',
+ 'altavista',
+ 'ask jeeves',
+ 'attentio',
+ 'baiduspider',
+ 'bingbot',
+ 'chtml generic',
+ 'crawler',
+ 'fastmobilecrawl',
+ 'feedfetcher-google',
+ 'firefly',
+ 'froogle',
+ 'gigabot',
+ 'googlebot',
+ 'googlebot-mobile',
+ 'heritrix',
+ 'httrack',
+ 'ia_archiver',
+ 'irlbot',
+ 'iescholar',
+ 'infoseek',
+ 'jumpbot',
+ 'linkcheck',
+ 'lycos',
+ 'mediapartners',
+ 'mediobot',
+ 'motionbot',
+ 'msnbot',
+ 'mshots',
+ 'openbot',
+ 'pss-webkit-request',
+ 'pythumbnail',
+ 'scooter',
+ 'slurp',
+ 'snapbot',
+ 'spider',
+ 'taptubot',
+ 'technoratisnoop',
+ 'teoma',
+ 'twiceler',
+ 'yahooseeker',
+ 'yahooysmcm',
+ 'yammybot',
+ 'ahrefsbot',
+ 'pingdom.com_bot',
+ 'kraken',
+ 'yandexbot',
+ 'twitterbot',
+ 'tweetmemebot',
+ 'openhosebot',
+ 'queryseekerspider',
+ 'linkdexbot',
+ 'grokkit-crawler',
+ 'livelapbot',
+ 'germcrawler',
+ 'domaintunocrawler',
+ 'grapeshotcrawler',
+ 'cloudflare-alwaysonline',
+ 'cookieinformationscanner', // p1699315886066389-slack-C0438NHCLSY
+ 'facebookexternalhit', // https://www.facebook.com/externalhit_uatext.php
+ 'feedburner',
+ 'yacybot', // http://yacy.net/bot.html
+ 'trendictionbot', // http://www.trendiction.de/bot;
+ 'elisabot',
+ 'linkfluence', // http://linkfluence.com/
+ 'semrushbot', // https://www.semrush.com/bot/
+ 'archive.org_bot', // http://archive.org/details/archive.org_bot
+ 'ezlynxbot', // https://www.ezoic.com/bot
+ 'siteauditbot', // https://www.semrush.com/bot/
+ 'snapchat', // https://developers.snap.com/robots
+ 'applebot', // https://support.apple.com/en-ca/HT204683
+ 'bne.es_bot', // https://www.bne.es/es/colecciones/archivo-web-espanola/aviso-webmasters
+ 'google-safety;', // https://www.google.com/bot.html
+ 'mojeekbot', // https://www.mojeek.com/bot.html
+ 'linkwalker', // https://www.linkwalker.com/
+ );
+
+ foreach ( $bot_agents as $bot_agent ) {
+ if ( false !== stripos( $ua, $bot_agent ) ) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/functions.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/functions.php
new file mode 100644
index 00000000..a530e7f9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-device-detection/src/functions.php
@@ -0,0 +1,36 @@
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.asset.php
new file mode 100644
index 00000000..ff8c9609
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.asset.php
@@ -0,0 +1 @@
+ array('react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-polyfill', 'wp-url'), 'version' => '94dc255b5871f56d5cf3');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js
new file mode 100644
index 00000000..b8e20305
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js
@@ -0,0 +1,2 @@
+/*! For license information please see index.js.LICENSE.txt */
+(()=>{"use strict";var e={792:(e,t,n)=>{n.d(t,{A:()=>a});var r=n(790),i=n(609);const o={isEligible:!0};function a(e){const t=(t,n={})=>{const r={...o,...n},[,a]=(0,i.useReducer)((e=>e+1),0),s=(0,i.useRef)(t);if((0,i.useEffect)((()=>{let n=!0;return r.isEligible&&e.loadExperimentAssignment(t).then((()=>{n&&a()})),()=>{n=!1}}),[t,r.isEligible]),t===s.current||s.current.startsWith("explat_test")||e.config.logError({message:"[ExPlat] useExperiment: experimentName should never change between renders!"}),!r.isEligible)return[!1,null];const m=e.dangerouslyGetMaybeLoadedExperimentAssignment(t);return[!m,m]};return{useExperiment:t,Experiment:({defaultExperience:e,treatmentExperience:n,loadingExperience:i,name:o,options:a})=>{const[s,m]=t(o,a);return s?(0,r.jsx)(r.Fragment,{children:i}):m?.variationName?(0,r.jsx)(r.Fragment,{children:n}):(0,r.jsx)(r.Fragment,{children:e})},ProvideExperimentData:({children:e,name:n,options:r})=>{const[i,o]=t(n,r);return e(i,o)}}}},517:(e,t,n)=>{n.d(t,{kU:()=>c,pg:()=>l});var r=n(689),i=n(808),o=n(738),a=n(762),s=n(626);const m=1e4;Error;function c(e){if("undefined"==typeof window)throw new Error("Running outside of a browser context.");const t={},n=(...t)=>{try{e.logError(...t)}catch(e){}};try{(0,r.bZ)()}catch(e){n({message:e.message,source:"removeExpiredExperimentAssignments-error"})}return{loadExperimentAssignment:async c=>{try{if(!s.Eo(c))throw new Error(`Invalid experimentName: "${c}"`);const n=(0,r.B1)(c);if(n&&i.H2(n))return n;void 0===t[c]&&(t[c]=(t=>a.MC((async()=>{const n=await o.FI(e,t);return(0,r.a2)(n),n})))(c));let l=m;Math.random()>.5&&(l=5e3);const p=await a.BK(t[c](),l);if(!p)throw new Error("Could not fetch ExperimentAssignment");return p}catch(e){n({message:e.message,experimentName:c,source:"loadExperimentAssignment-initialError"})}try{const e=(0,r.B1)(c);if(e)return e;const t=(0,i.fj)(c);return(0,r.a2)(t),t}catch(e){return n({message:e.message,experimentName:c,source:"loadExperimentAssignment-fallbackError"}),(0,i.fj)(c)}},dangerouslyGetExperimentAssignment:t=>{try{if(!s.Eo(t))throw new Error(`Invalid experimentName: ${t}`);const i=(0,r.B1)(t);if(!i)throw new Error("Trying to dangerously get an ExperimentAssignment that hasn't loaded.");return e.isDevelopmentMode&&i&&a.XZ()-i.retrievedTimestamp<1e3&&n({message:"Warning: Trying to dangerously get an ExperimentAssignment too soon after loading it.",experimentName:t,source:"dangerouslyGetExperimentAssignment"}),i}catch(r){return e.isDevelopmentMode&&n({message:r.message,experimentName:t,source:"dangerouslyGetExperimentAssignment-error"}),(0,i.fj)(t)}},dangerouslyGetMaybeLoadedExperimentAssignment:t=>{try{if(!s.Eo(t))throw new Error(`Invalid experimentName: ${t}`);const e=(0,r.B1)(t);return e||null}catch(r){return e.isDevelopmentMode&&n({message:r.message,experimentName:t,source:"dangerouslyGetMaybeLoadedExperimentAssignment-error"}),(0,i.fj)(t)}},config:e}}function l(e){return{loadExperimentAssignment:async t=>(e.logError({message:"Attempting to load ExperimentAssignment in SSR context",experimentName:t}),(0,i.fj)(t)),dangerouslyGetExperimentAssignment:t=>(e.logError({message:"Attempting to dangerously get ExperimentAssignment in SSR context",experimentName:t}),(0,i.fj)(t)),dangerouslyGetMaybeLoadedExperimentAssignment:t=>(e.logError({message:"Attempting to dangerously get ExperimentAssignment in SSR context",experimentName:t}),(0,i.fj)(t)),config:e}}},226:(e,t,n)=>{n.d(t,{k:()=>i});var r=n(517);const i="undefined"==typeof window?r.pg:r.kU},689:(e,t,n)=>{n.d(t,{B1:()=>c,a2:()=>m,bZ:()=>d});var r=n(808),i=n(765),o=n(626);const a="explat-experiment-",s=e=>`${a}-${e}`;function m(e){o.zV(e);const t=c(e.experimentName);if(t&&e.retrievedTimestamp[...Array(e).keys()];function p(e){return e.startsWith(a)}function u(e){return e.slice(a.length+1)}function d(){l(i.A.length).map((e=>i.A.key(e))).filter(p).map(u).filter((e=>{try{if(r.H2(c(e)))return!1}catch(e){}return!0})).map(s).map((e=>i.A.removeItem(e)))}},808:(e,t,n)=>{n.d(t,{H2:()=>i,fj:()=>a,fn:()=>o});var r=n(762);function i(e){return r.XZ()({experimentName:e,variationName:null,retrievedTimestamp:r.XZ(),ttl:Math.max(o,t),isFallbackExperimentAssignment:!0})},765:(e,t,n)=>{n.d(t,{A:()=>i});let r={_data:{},setItem:function(e,t){this._data[e]=t},getItem:function(e){return this._data.hasOwnProperty(e)?this._data[e]:null},removeItem:function(e){delete this._data[e]},clear:function(){this._data={}},get length(){return Object.keys(this._data).length},key:function(e){const t=Object.keys(this._data);return e in t?t[e]:null}};try{window.localStorage&&(r=window.localStorage)}catch(e){}const i=r},738:(e,t,n)=>{n.d(t,{FI:()=>p});var r=n(808),i=n(765),o=n(762),a=n(626);function s(e){if(function(e){return(0,a.Gv)(e)&&(0,a.Gv)(e.variations)&&"number"==typeof e.ttl&&0{const t=await e();if(t)return i.A.setItem(m,t),i.A.setItem(c,String((0,o.XZ)())),t;const n=i.A.getItem(m),r=i.A.getItem(c);return n&&r&&(0,o.XZ)()-parseInt(r,10)<864e5?n:null};async function p(e,t){const n=(0,o.XZ)(),{variations:i,ttl:m}=s(await e.fetchExperimentAssignment({anonId:await l(e.getAnonId),experimentName:t})),c=Math.max(r.fn,m),p=Object.entries(i).map((([e,t])=>({experimentName:e,variationName:t,retrievedTimestamp:n,ttl:c}))).map(a.zV);if(p.length>1)throw new Error("Received multiple experiment assignments while trying to fetch exactly one.");if(0===p.length)return r.fj(t,c);const u=p[0];if(u.experimentName!==t)throw new Error("Newly fetched ExperimentAssignment's experiment name does not match request.");if(!r.H2(u))throw new Error("Newly fetched experiment isn't alive.");return u}},762:(e,t,n)=>{n.d(t,{BK:()=>a,If:()=>r,MC:()=>s,XZ:()=>o});const r=1e3;let i=Date.now();function o(){const e=Date.now();return i=isetTimeout((()=>n(new Error(`Promise has timed-out after ${t}ms.`))),t)))])}function s(e){let t=null;return()=>(t||(t=e().finally((()=>{t=null}))),t)}},626:(e,t,n)=>{function r(e){return"object"==typeof e&&null!==e}function i(e){return"string"==typeof e&&""!==e&&/^[a-z0-9_]*$/.test(e)}function o(e){if(!function(e){return r(e)&&i(e.experimentName)&&(i(e.variationName)||null===e.variationName)&&"number"==typeof e.retrievedTimestamp&&"number"==typeof e.ttl&&0!==e.ttl}(e))throw new Error("Invalid ExperimentAssignment");return e}n.d(t,{Eo:()=>i,Gv:()=>r,zV:()=>o})},767:(e,t)=>{t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var r={},o=t||{},s=e.split(i),m=o.decode||n,c=0;c{n.d(t,{Ck:()=>a,wf:()=>o});var r=n(767);let i=null;const o=async()=>{let e=0;return i=new Promise((t=>{const n=()=>{const i=r.parse(document.cookie).tk_ai||null;"string"!=typeof i||""===i?99<=e?t(null):(e+=1,setTimeout(n,50)):t(i)};n()})),i},a=async()=>await i},222:(e,t,n)=>{n.d(t,{V:()=>m,z:()=>s});var r=n(455),i=n.n(r),o=n(832);const a=(e=!1)=>async({experimentName:t,anonId:n})=>{if(!n)throw new Error("Tracking is disabled, can't fetch experimentAssignment");const r={experiment_name:t,anon_id:n??void 0,as_connected_user:e},a=(0,o.addQueryArgs)("jetpack/v4/explat/assignments",r);return await i()({path:a})},s=a(!1),m=a(!0)},69:(e,t,n)=>{n.d(t,{v:()=>i});var r=n(382);const i=e=>{const t=e=>{r.D&&console.error("[ExPlat] Unable to send error to server:",e)};try{const{message:n,...i}=e,o={message:n,properties:{...i,context:"explat",explat_client:"jetpack"}};if(r.D)console.error("[ExPlat] ",e.message,e);else{const e=new window.FormData;e.append("error",JSON.stringify(o)),window.fetch("https://public-api.wordpress.com/rest/v1.1/js-error",{method:"POST",body:e}).catch(t)}}catch(e){t(e)}}},382:(e,t,n)=>{n.d(t,{D:()=>r});const r=!1},609:e=>{e.exports=window.React},790:e=>{e.exports=window.ReactJSXRuntime},455:e=>{e.exports=window.wp.apiFetch},832:e=>{e.exports=window.wp.url}},t={};function n(r){var i=t[r];if(void 0!==i)return i.exports;var o=t[r]={exports:{}};return e[r](o,o.exports,n),o.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r=n(226),i=n(792),o=n(889),a=n(222),s=n(69),m=n(382);(0,o.wf)().catch((e=>(0,s.v)({message:e.message})));const c=(0,r.k)({fetchExperimentAssignment:a.z,getAnonId:o.Ck,logError:s.v,isDevelopmentMode:m.D}),{loadExperimentAssignment:l,dangerouslyGetExperimentAssignment:p}=c,{useExperiment:u,Experiment:d,ProvideExperimentData:g}=(0,i.A)(c),f=(0,r.k)({fetchExperimentAssignment:a.V,getAnonId:o.Ck,logError:s.v,isDevelopmentMode:m.D}),{loadExperimentAssignment:x,dangerouslyGetExperimentAssignment:h}=f,{useExperiment:w,Experiment:E,ProvideExperimentData:y}=(0,i.A)(f)})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js.LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..8d392d0d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/build/index.js.LICENSE.txt
@@ -0,0 +1,6 @@
+/*!
+ * cookie
+ * Copyright(c) 2012-2014 Roman Shtylman
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ */
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/composer.json
new file mode 100644
index 00000000..7b769e12
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/composer.json
@@ -0,0 +1,63 @@
+{
+ "name": "automattic/jetpack-explat",
+ "description": "A package for running A/B tests on the Experimentation Platform (ExPlat) in the plugin.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-connection": "^4.0.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "test-js": [
+ "echo 'Run `pnpm run test` when ready'"
+ ],
+ "test-js-watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run test --watch"
+ ],
+ "build-development": [
+ "pnpm run build"
+ ],
+ "build-production": [
+ "NODE_ENV=production pnpm run build"
+ ],
+ "watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run watch"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "autotagger": true,
+ "branch-alias": {
+ "dev-trunk": "0.1.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-explat/compare/v${old}...v${new}"
+ },
+ "mirror-repo": "Automattic/jetpack-explat",
+ "textdomain": "jetpack-explat",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-explat.php"
+ }
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/global.d.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/global.d.ts
new file mode 100644
index 00000000..9eed072d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/global.d.ts
@@ -0,0 +1,9 @@
+export declare global {
+ namespace NodeJS {
+ interface ProcessEnv {
+ NODE_ENV: 'development' | 'production' | 'test';
+ }
+ }
+}
+
+export {};
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/class-explat.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/class-explat.php
new file mode 100644
index 00000000..39ee3f9b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/class-explat.php
@@ -0,0 +1,44 @@
+ WP_REST_Server::READABLE,
+ 'callback' => array( $this, 'get_assignments' ),
+ 'permission_callback' => '__return_true',
+ 'args' => array(
+ 'experiment_name' => array(
+ 'type' => 'string',
+ ),
+ 'anon_id' => array(
+ 'type' => 'string',
+ ),
+ 'as_connected_user' => array(
+ 'type' => 'boolean',
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Get the assignments for a given experiment and anon_id
+ *
+ * @param WP_REST_Request $request The REST request object.
+ * @return WP_REST_Response
+ */
+ public function get_assignments( $request ) {
+ $response = null;
+ $is_user_connected = ( new Jetpack_Connection() )->is_user_connected();
+ $request_path = '/experiments/' . self::EXPLAT_API_VERSION . '/assignments/jetpack';
+ $args = array(
+ 'experiment_name' => $request['experiment_name'],
+ 'anon_id' => $request['anon_id'],
+ );
+
+ if ( $request['as_connected_user'] && $is_user_connected ) {
+ $response = Client::wpcom_json_api_request_as_user(
+ add_query_arg( $args, $request_path ),
+ 'v2'
+ );
+ } else {
+ $response = wp_remote_get(
+ add_query_arg( $args, self::WPCOM_API_BASE_URL . $request_path )
+ );
+ }
+
+ if ( is_wp_error( $response ) ) {
+ return new WP_Error(
+ 'wp_error_fetching_assignment',
+ $response->get_error_message(),
+ array( 'status' => 500 )
+ );
+ }
+
+ $response_code = wp_remote_retrieve_response_code( $response );
+
+ if ( 200 !== $response_code ) {
+ return new WP_Error(
+ 'http_error_fetching_assignment',
+ wp_remote_retrieve_response_message( $response ),
+ array( 'status' => $response_code )
+ );
+ }
+
+ return rest_ensure_response(
+ json_decode( wp_remote_retrieve_body( $response ), true )
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/anon.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/anon.ts
new file mode 100644
index 00000000..5afc6b90
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/anon.ts
@@ -0,0 +1,61 @@
+/**
+ * External dependencies
+ */
+import cookie from 'cookie';
+
+let initializeAnonIdPromise: Promise< string | null > | null = null;
+const anonIdPollingIntervalMilliseconds = 50;
+const anonIdPollingIntervalMaxAttempts = 100; // 50 * 100 = 5000 = 5 seconds
+
+/**
+ * Gather w.js anonymous cookie, tk_ai
+ *
+ * @return {?string} The anonymous cookie value, or null if it doesn't exist
+ */
+export const readAnonCookie = (): string | null => {
+ return cookie.parse( document.cookie ).tk_ai || null;
+};
+
+/**
+ * Initializes the anonId:
+ * - Polls for AnonId receival
+ * - Should only be called once at startup
+ * - Happens to be safe to call multiple times if it is necessary to reset the anonId - something like this was necessary for testing.
+ *
+ * This purely for boot-time initialization, in usual circumstances it will be retrieved within 100-300ms, it happens in parallel booting
+ * so should only delay experiment loading that much for boot-time experiments. In some circumstances such as a very slow connection this
+ * can take a lot longer.
+ *
+ * The state of initializeAnonIdPromise should be used rather than the return of this function.
+ * The return is only avaliable to make this easier to test.
+ *
+ * Throws on error.
+ *
+ * @return {Promise} The anonymous cookie value, or null if it doesn't exist
+ */
+export const initializeAnonId = async (): Promise< string | null > => {
+ let attempt = 0;
+ initializeAnonIdPromise = new Promise( res => {
+ const poll = () => {
+ const anonId = readAnonCookie();
+ if ( typeof anonId === 'string' && anonId !== '' ) {
+ res( anonId );
+ return;
+ }
+
+ if ( anonIdPollingIntervalMaxAttempts - 1 <= attempt ) {
+ res( null );
+ return;
+ }
+ attempt += 1;
+ setTimeout( poll, anonIdPollingIntervalMilliseconds );
+ };
+ poll();
+ } );
+
+ return initializeAnonIdPromise;
+};
+
+export const getAnonId = async (): Promise< string | null > => {
+ return await initializeAnonIdPromise;
+};
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/assignment.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/assignment.ts
new file mode 100644
index 00000000..80bd7d8f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/assignment.ts
@@ -0,0 +1,29 @@
+import apiFetch from '@wordpress/api-fetch';
+import { addQueryArgs } from '@wordpress/url';
+
+const fetchExperimentAssignment =
+ ( asConnectedUser = false ) =>
+ async ( {
+ experimentName,
+ anonId,
+ }: {
+ experimentName: string;
+ anonId: string | null;
+ } ): Promise< unknown > => {
+ if ( ! anonId ) {
+ throw new Error( `Tracking is disabled, can't fetch experimentAssignment` );
+ }
+
+ const params = {
+ experiment_name: experimentName,
+ anon_id: anonId ?? undefined,
+ as_connected_user: asConnectedUser,
+ };
+
+ const assignmentsRequestUrl = addQueryArgs( 'jetpack/v4/explat/assignments', params );
+
+ return await apiFetch( { path: assignmentsRequestUrl } );
+ };
+
+export const fetchExperimentAssignmentAnonymously = fetchExperimentAssignment( false );
+export const fetchExperimentAssignmentWithAuth = fetchExperimentAssignment( true );
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/error.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/error.ts
new file mode 100644
index 00000000..84c19118
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/error.ts
@@ -0,0 +1,39 @@
+/**
+ * Internal dependencies
+ */
+import { isDevelopmentMode } from './utils';
+
+export const logError = ( error: Record< string, string > & { message: string } ): void => {
+ const onLoggingError = ( e: unknown ) => {
+ if ( isDevelopmentMode ) {
+ console.error( '[ExPlat] Unable to send error to server:', e ); // eslint-disable-line no-console
+ }
+ };
+
+ try {
+ const { message, ...properties } = error;
+ const logStashError = {
+ message,
+ properties: {
+ ...properties,
+ context: 'explat',
+ explat_client: 'jetpack',
+ },
+ };
+
+ if ( isDevelopmentMode ) {
+ console.error( '[ExPlat] ', error.message, error ); // eslint-disable-line no-console
+ } else {
+ const body = new window.FormData();
+ body.append( 'error', JSON.stringify( logStashError ) );
+ window
+ .fetch( 'https://public-api.wordpress.com/rest/v1.1/js-error', {
+ method: 'POST',
+ body,
+ } )
+ .catch( onLoggingError );
+ }
+ } catch ( e ) {
+ onLoggingError( e );
+ }
+};
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/index.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/index.ts
new file mode 100644
index 00000000..b21c993f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/index.ts
@@ -0,0 +1,51 @@
+/**
+ * External dependencies
+ */
+import { createExPlatClient } from '@automattic/explat-client';
+import createExPlatClientReactHelpers from '@automattic/explat-client-react-helpers';
+/**
+ * Internal dependencies
+ */
+import { getAnonId, initializeAnonId } from './anon';
+import {
+ fetchExperimentAssignmentAnonymously,
+ fetchExperimentAssignmentWithAuth,
+} from './assignment';
+import { logError } from './error';
+import { isDevelopmentMode } from './utils';
+
+export const initializeExPlat = (): void => {
+ initializeAnonId().catch( e => logError( { message: e.message } ) );
+};
+
+initializeExPlat();
+
+const exPlatClient = createExPlatClient( {
+ fetchExperimentAssignment: fetchExperimentAssignmentAnonymously,
+ getAnonId,
+ logError,
+ isDevelopmentMode,
+} );
+
+export const { loadExperimentAssignment, dangerouslyGetExperimentAssignment } = exPlatClient;
+
+export const { useExperiment, Experiment, ProvideExperimentData } =
+ createExPlatClientReactHelpers( exPlatClient );
+
+const exPlatClientWithAuth = createExPlatClient( {
+ fetchExperimentAssignment: fetchExperimentAssignmentWithAuth,
+ getAnonId,
+ logError,
+ isDevelopmentMode,
+} );
+
+export const {
+ loadExperimentAssignment: loadExperimentAssignmentWithAuth,
+ dangerouslyGetExperimentAssignment: dangerouslyGetExperimentAssignmentWithAuth,
+} = exPlatClientWithAuth;
+
+export const {
+ useExperiment: useExperimentWithAuth,
+ Experiment: ExperimentWithAuth,
+ ProvideExperimentData: ProvideExperimentDataWithAuth,
+} = createExPlatClientReactHelpers( exPlatClientWithAuth );
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/utils.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/utils.ts
new file mode 100644
index 00000000..75694463
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-explat/src/client/utils.ts
@@ -0,0 +1,4 @@
+/**
+ * Boolean determining if environment is development.
+ */
+export const isDevelopmentMode = process.env.NODE_ENV === 'development';
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/CHANGELOG.md
new file mode 100644
index 00000000..808b30b8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/CHANGELOG.md
@@ -0,0 +1,63 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.2.3] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.2.2] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [0.2.1] - 2023-11-21
+### Changed
+- Added a note of non-usage of PHP8+ functions yet. [#34137]
+
+## [0.2.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [0.1.6] - 2023-09-19
+
+- Minor internal updates.
+
+## [0.1.5] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [0.1.4] - 2023-05-29
+### Changed
+- Internal updates.
+
+## [0.1.3] - 2023-05-11
+
+- Updated package dependencies
+
+## [0.1.2] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [0.1.1] - 2023-03-28
+### Changed
+- Update README.md [#28401]
+
+## 0.1.0 - 2023-02-28
+### Added
+- Added a utility function to extract an array of IP addresses from a given string. [#29131]
+- Add jetpack-ip package functionality [#28846]
+- Initialized the package. [#28765]
+
+[0.2.3]: https://github.com/automattic/jetpack-ip/compare/v0.2.2...v0.2.3
+[0.2.2]: https://github.com/automattic/jetpack-ip/compare/v0.2.1...v0.2.2
+[0.2.1]: https://github.com/automattic/jetpack-ip/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/automattic/jetpack-ip/compare/v0.1.6...v0.2.0
+[0.1.6]: https://github.com/automattic/jetpack-ip/compare/v0.1.5...v0.1.6
+[0.1.5]: https://github.com/automattic/jetpack-ip/compare/v0.1.4...v0.1.5
+[0.1.4]: https://github.com/automattic/jetpack-ip/compare/v0.1.3...v0.1.4
+[0.1.3]: https://github.com/automattic/jetpack-ip/compare/v0.1.2...v0.1.3
+[0.1.2]: https://github.com/automattic/jetpack-ip/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/automattic/jetpack-ip/compare/v0.1.0...v0.1.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/composer.json
new file mode 100644
index 00000000..38282789
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/composer.json
@@ -0,0 +1,46 @@
+{
+ "name": "automattic/jetpack-ip",
+ "description": "Utilities for working with IP addresses.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "autotagger": true,
+ "mirror-repo": "Automattic/jetpack-ip",
+ "changelogger": {
+ "link-template": "https://github.com/automattic/jetpack-ip/compare/v${old}...v${new}"
+ },
+ "branch-alias": {
+ "dev-trunk": "0.2.x-dev"
+ },
+ "textdomain": "jetpack-ip",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-utils.php"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/src/class-utils.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/src/class-utils.php
new file mode 100644
index 00000000..a062d775
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-ip/src/class-utils.php
@@ -0,0 +1,209 @@
+trusted_header ) && isset( $_SERVER[ $trusted_header_data->trusted_header ] ) ) {
+ $ip = wp_unslash( $_SERVER[ $trusted_header_data->trusted_header ] ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- clean_ip does it below.
+ $segments = $trusted_header_data->segments;
+ $reverse_order = $trusted_header_data->reverse;
+ } else {
+ $ip = isset( $_SERVER['REMOTE_ADDR'] ) ? wp_unslash( $_SERVER['REMOTE_ADDR'] ) : null; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- clean_ip does it below.
+ }
+
+ if ( ! $ip ) {
+ return false;
+ }
+
+ $ips = explode( ',', $ip );
+ if ( ! isset( $segments ) || ! $segments ) {
+ $segments = 1;
+ }
+ if ( isset( $reverse_order ) && $reverse_order ) {
+ $ips = array_reverse( $ips );
+ }
+ $ip_count = count( $ips );
+ if ( 1 === $ip_count ) {
+ return self::clean_ip( $ips[0] );
+ } elseif ( $ip_count >= $segments ) {
+ $the_one = $ip_count - $segments;
+ return self::clean_ip( $ips[ $the_one ] );
+ } else {
+ return self::clean_ip( isset( $_SERVER['REMOTE_ADDR'] ) ? wp_unslash( $_SERVER['REMOTE_ADDR'] ) : null ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- clean_ip does it.
+ }
+ }
+
+ /**
+ * Clean IP address.
+ *
+ * @param string $ip The IP address to clean.
+ * @return string|false The cleaned IP address.
+ */
+ public static function clean_ip( $ip ) {
+
+ // Some misconfigured servers give back extra info, which comes after "unless".
+ $ips = explode( ' unless ', $ip );
+ $ip = $ips[0];
+
+ $ip = strtolower( trim( $ip ) );
+
+ // Check for IPv4 with port.
+ if ( preg_match( '/^(\d+\.\d+\.\d+\.\d+):\d+$/', $ip, $matches ) ) {
+ $ip = $matches[1];
+ }
+
+ // Check for IPv6 (or IPvFuture) with brackets and optional port.
+ if ( preg_match( '/^\[([a-z0-9\-._~!$&\'()*+,;=:]+)\](?::\d+)?$/', $ip, $matches ) ) {
+ $ip = $matches[1];
+ }
+
+ // Check for IPv4 IP cast as IPv6.
+ if ( preg_match( '/^::ffff:(\d+\.\d+\.\d+\.\d+)$/', $ip, $matches ) ) {
+ $ip = $matches[1];
+ }
+
+ // Validate and return.
+ return filter_var( $ip, FILTER_VALIDATE_IP ) ? $ip : false;
+ }
+
+ /**
+ * Checks an IP to see if it is within a private range.
+ *
+ * @param int $ip IP address.
+ * @return bool True if IP address is private, false otherwise.
+ */
+ public static function ip_is_private( $ip ) {
+ // We are dealing with ipv6, so we can simply rely on filter_var.
+ // Note: str_contains() is not used here, as wp-includes/compat.php may not be loaded in this file.
+ if ( false === strpos( $ip, '.' ) ) {
+ return ! filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE );
+ }
+ // We are dealing with ipv4.
+ $private_ip4_addresses = array(
+ '10.0.0.0|10.255.255.255', // Single class A network.
+ '172.16.0.0|172.31.255.255', // 16 contiguous class B network.
+ '192.168.0.0|192.168.255.255', // 256 contiguous class C network.
+ '169.254.0.0|169.254.255.255', // Link-local address also referred to as Automatic Private IP Addressing.
+ '127.0.0.0|127.255.255.255', // localhost.
+ );
+ $long_ip = ip2long( $ip );
+ if ( -1 !== $long_ip ) {
+ foreach ( $private_ip4_addresses as $pri_addr ) {
+ list ( $start, $end ) = explode( '|', $pri_addr );
+ if ( $long_ip >= ip2long( $start ) && $long_ip <= ip2long( $end ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Uses inet_pton if available to convert an IP address to a binary string.
+ * Returns false if an invalid IP address is given.
+ *
+ * @param mixed $ip IP address.
+ * @return int|string|bool
+ */
+ public static function convert_ip_address( $ip ) {
+ return inet_pton( $ip );
+ }
+
+ /**
+ * Checks that a given IP address is within a given low - high range.
+ *
+ * @param mixed $ip IP.
+ * @param mixed $range_low Range Low.
+ * @param mixed $range_high Range High.
+ * @return Bool
+ */
+ public static function ip_address_is_in_range( $ip, $range_low, $range_high ) {
+ $ip_num = inet_pton( $ip );
+ $ip_low = inet_pton( $range_low );
+ $ip_high = inet_pton( $range_high );
+ if ( $ip_num && $ip_low && $ip_high && strcmp( $ip_num, $ip_low ) >= 0 && strcmp( $ip_num, $ip_high ) <= 0 ) {
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Extracts IP addresses from a given string.
+ *
+ * We allow for both, one IP per line or comma-; semicolon; or whitespace-separated lists. This also validates the IP addresses
+ * and only returns the ones that look valid. IP ranges using the "-" character are also supported.
+ *
+ * @param string $ips List of ips - example: "8.8.8.8\n4.4.4.4,2.2.2.2;1.1.1.1 9.9.9.9,5555.5555.5555.5555,1.1.1.10-1.1.1.20".
+ * @return array List of valid IP addresses. - example based on input example: array('8.8.8.8', '4.4.4.4', '2.2.2.2', '1.1.1.1', '9.9.9.9', '1.1.1.10-1.1.1.20')
+ */
+ public static function get_ip_addresses_from_string( $ips ) {
+ $ips = (string) $ips;
+ $ips = preg_split( '/[\s,;]/', $ips );
+
+ $result = array();
+
+ foreach ( $ips as $ip ) {
+ // Validate both IP values from the range.
+ $range = explode( '-', $ip );
+ if ( count( $range ) === 2 ) {
+ if ( self::validate_ip_range( $range[0], $range[1] ) ) {
+ $result[] = $ip;
+ }
+ continue;
+ }
+
+ // Validate the single IP value.
+ if ( filter_var( $ip, FILTER_VALIDATE_IP ) !== false ) {
+ $result[] = $ip;
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Validates the low and high IP addresses of a range.
+ *
+ * @param string $range_low Low IP address.
+ * @param string $range_high High IP address.
+ * @return bool True if the range is valid, false otherwise.
+ */
+ public static function validate_ip_range( $range_low, $range_high ) {
+ // Validate that both IP addresses are valid.
+ if ( ! filter_var( $range_low, FILTER_VALIDATE_IP ) || ! filter_var( $range_high, FILTER_VALIDATE_IP ) ) {
+ return false;
+ }
+
+ // Validate that the $range_low is lower or equal to $range_high.
+ // The inet_pton will give us binary string of an ipv4 or ipv6.
+ // We can then use strcmp to see if the address is in range.
+ $ip_low = inet_pton( $range_low );
+ $ip_high = inet_pton( $range_high );
+ if ( false === $ip_low || false === $ip_high ) {
+ return false;
+ }
+ if ( strcmp( $ip_low, $ip_high ) > 0 ) {
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md
new file mode 100644
index 00000000..d8c3bdc2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/CHANGELOG.md
@@ -0,0 +1,928 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [3.1.21] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [3.1.20] - 2024-09-05
+### Changed
+- Updated package dependencies. [#39176]
+
+## [3.1.19] - 2024-08-29
+### Changed
+- Updated package dependencies. [#39111]
+
+## [3.1.18] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [3.1.17] - 2024-08-19
+### Fixed
+- Lossless image optimization for images (should improve performance with no visible changes). [#38750]
+
+## [3.1.16] - 2024-08-15
+### Changed
+- Updated package dependencies. [#38662]
+
+## [3.1.15] - 2024-08-08
+### Fixed
+- JITM: Fix background for RTL languages. [#38706]
+
+## [3.1.14] - 2024-07-18
+### Changed
+- Update margins on jitms in my jetpack [#38283]
+
+## [3.1.13] - 2024-07-03
+### Changed
+- Updated package dependencies. [#38132]
+
+## [3.1.12] - 2024-06-05
+### Changed
+- Updated package dependencies. [#37669]
+
+## [3.1.11] - 2024-05-16
+### Changed
+- Updated package dependencies. [#37379]
+
+## [3.1.10] - 2024-05-06
+### Changed
+- Updated package dependencies. [#37147]
+
+## [3.1.9] - 2024-04-26
+### Changed
+- Internal updates.
+
+## [3.1.8] - 2024-04-25
+### Changed
+- Internal updates.
+
+## [3.1.7] - 2024-04-22
+### Changed
+- Internal updates.
+
+## [3.1.6] - 2024-04-15
+### Changed
+- Internal updates.
+
+## [3.1.5] - 2024-04-11
+### Changed
+- Internal updates.
+
+## [3.1.4] - 2024-04-08
+### Changed
+- Updated package dependencies. [#36760]
+
+## [3.1.3] - 2024-03-27
+### Changed
+- Updated package dependencies. [#36585]
+
+## [3.1.2] - 2024-03-25
+### Changed
+- Update Phan baselines [#36441]
+
+## [3.1.1] - 2024-03-14
+### Changed
+- Internal updates.
+
+## [3.1.0] - 2024-03-12
+### Changed
+- Performance: only enqueue the JITM JavaScript on pages where it will be used. [#35997]
+- Updated package dependencies. [#36325]
+
+## [3.0.5] - 2024-03-04
+### Changed
+- Updated package dependencies. [#36095]
+
+## [3.0.4] - 2024-02-13
+### Changed
+- Updated package dependencies. [#35608]
+
+## [3.0.3] - 2024-02-05
+### Changed
+- Updated package dependencies. [#35384]
+
+## [3.0.2] - 2024-01-04
+### Changed
+- Updated package dependencies. [#34815]
+
+## [3.0.1] - 2023-12-03
+### Changed
+- Updated package dependencies. [#34411]
+
+## [3.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+### Removed
+- Removed the Partner package requirement. Relying on the Connection package instead. [#33832]
+
+## [2.5.3] - 2023-11-14
+### Changed
+- Updated package dependencies. [#34093]
+
+## [2.5.2] - 2023-11-03
+
+## [2.5.1] - 2023-10-19
+### Changed
+- Updated package dependencies. [#33687]
+
+## [2.5.0] - 2023-10-10
+### Added
+- JITMs can now redirect to a specific Jetpack settings page. [#32826]
+
+### Changed
+- Update color of WooCommerce logo. [#33491]
+- Updated package dependencies. [#33428]
+
+## [2.4.0] - 2023-09-28
+### Changed
+- Moved tracking for JITM buttons into JITM script, added message_path property [#33252]
+
+## [2.3.19] - 2023-09-19
+
+- Minor internal updates.
+
+## [2.3.18] - 2023-09-04
+### Changed
+- Updated package dependencies. [#32803]
+
+## [2.3.17] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [2.3.16] - 2023-08-21
+### Fixed
+- Update secondary button styling [#32503]
+
+## [2.3.15] - 2023-08-09
+### Changed
+- Updated package dependencies. [#32166]
+
+## [2.3.14] - 2023-07-25
+### Changed
+- Updated package dependencies. [#32040]
+
+## [2.3.13] - 2023-07-17
+### Changed
+- Generate query string when using the WPCOM API to fetch JITMs [#31809]
+
+## [2.3.12] - 2023-07-11
+### Changed
+- Updated package dependencies. [#31785]
+
+## [2.3.11] - 2023-07-05
+### Changed
+- Updated package dependencies. [#31659]
+
+## [2.3.10] - 2023-06-23
+### Changed
+- Updated package dependencies. [#31468]
+
+## [2.3.9] - 2023-06-06
+### Changed
+- Updated package dependencies. [#31129]
+
+## [2.3.8] - 2023-05-08
+### Added
+- JITM: Add jetpack-videopress to JITM refetch on hashchange list [#30465]
+
+## [2.3.7] - 2023-05-02
+### Changed
+- Updated package dependencies. [#30375]
+
+## [2.3.6] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [2.3.5] - 2023-04-04
+### Added
+- Add external link icons in JITM [#29654]
+
+### Changed
+- Updated package dependencies. [#29854]
+
+## [2.3.4] - 2023-03-28
+### Fixed
+- JITM: Fix button overflow when text length is too big [#29749]
+
+## [2.3.3] - 2023-03-27
+### Changed
+- JITM: Update styles [#29709]
+
+## [2.3.2] - 2023-03-20
+### Changed
+- Updated package dependencies. [#29471]
+
+## [2.3.1] - 2023-03-08
+### Changed
+- Updated package dependencies. [#29216]
+
+## [2.3.0] - 2023-02-20
+### Changed
+- Moving deleting connection owner notice from JITM to Connection package. [#28516]
+
+## [2.2.42] - 2023-02-15
+### Changed
+- Update to React 18. [#28710]
+
+## [2.2.41] - 2023-02-06
+### Fixed
+- JITM: minor fix for styles on Safari browser.
+
+## [2.2.40] - 2023-01-30
+### Changed
+- Updated styles for Just in Time Messages (notices) [#27515]
+
+## [2.2.39] - 2023-01-25
+### Changed
+- Minor internal updates.
+
+## [2.2.38] - 2023-01-23
+### Fixed
+- Prevent the activation page from displaying the JP License Activation JITM. [#27959]
+
+## [2.2.37] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [2.2.36] - 2022-12-27
+### Removed
+- Remove src/js files from final bundle [#27930]
+
+## [2.2.35] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27696]
+
+## [2.2.34] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [2.2.33] - 2022-11-08
+### Changed
+- Updated package dependencies. [#27289]
+
+## [2.2.32] - 2022-11-07
+### Changed
+- Updated package dependencies. [#27278]
+
+## [2.2.31] - 2022-11-01
+### Changed
+- Updated package dependencies. [#27196]
+
+## [2.2.30] - 2022-10-25
+### Changed
+- Updated package dependencies. [#26705]
+
+## [2.2.29] - 2022-10-13
+### Changed
+- Updated package dependencies. [#26791]
+
+## [2.2.28] - 2022-10-05
+### Changed
+- Updated package dependencies. [#26568]
+
+## [2.2.27] - 2022-09-08
+### Changed
+- Updated package dependencies.
+
+## [2.2.26] - 2022-08-29
+### Changed
+- Updated package dependencies.
+
+## [2.2.25] - 2022-08-25
+### Changed
+- Updated package dependencies. [#25814]
+
+## [2.2.24] - 2022-08-23
+### Added
+- Add custom styling rules for the JITMs displayed in My Jetpack. [#22452]
+- Updated JITM readme. [#25739]
+
+### Changed
+- Updated package dependencies. [#25628]
+
+## [2.2.23] - 2022-08-03
+### Changed
+- Updated package dependencies. [#25300, #25315]
+
+## [2.2.22] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [2.2.21] - 2022-07-12
+### Changed
+- Updated package dependencies.
+
+## [2.2.20] - 2022-06-21
+### Changed
+- Renaming master to trunk. [#24661]
+
+## [2.2.19] - 2022-06-14
+### Changed
+- Updated package dependencies. [#24529]
+
+## [2.2.18] - 2022-06-08
+### Changed
+- Reorder JS imports for `import/order` eslint rule. [#24601]
+
+## [2.2.17] - 2022-05-18
+### Changed
+- Updated package dependencies [#24372]
+
+## [2.2.16] - 2022-05-10
+### Changed
+- Updated package dependencies. [#24302]
+
+## [2.2.15] - 2022-05-04
+### Changed
+- Remove use of `pnpx` in preparation for pnpm 7.0. [#24210]
+- Updated package dependencies. [#24095]
+
+### Deprecated
+- Moved the options class into Connection. [#24095]
+
+## [2.2.14] - 2022-04-26
+### Changed
+- Updated package dependencies.
+- Update package.json metadata.
+
+## [2.2.13] - 2022-04-19
+### Changed
+- PHPCS: Fix `WordPress.Security.ValidatedSanitizedInput`
+
+## [2.2.12] - 2022-04-12
+### Changed
+- Updated package dependencies.
+
+## [2.2.11] - 2022-04-06
+### Changed
+- Updated package dependencies
+
+### Removed
+- Removed tracking dependency.
+
+## [2.2.10] - 2022-03-29
+### Changed
+- Updated package dependencies.
+
+## [2.2.9] - 2022-03-23
+### Changed
+- Updated package dependencies.
+
+## [2.2.8] - 2022-03-02
+### Changed
+- Updated package dependencies
+
+## [2.2.7] - 2022-02-22
+### Changed
+- Updated package dependencies.
+
+## [2.2.6] - 2022-02-16
+### Changed
+- Updated package dependencies.
+
+## [2.2.5] - 2022-02-09
+### Changed
+- Updated package dependencies.
+
+## [2.2.4] - 2022-02-02
+### Changed
+- Build: remove unneeded files from production build.
+- Update use of old jQuery interfaces
+
+## [2.2.3] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [2.2.2] - 2022-01-18
+### Changed
+- General: update required node version to v16.13.2
+
+## [2.2.1] - 2022-01-11
+### Changed
+- Updated package dependencies.
+
+## [2.2.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+- Updated package textdomain from `jetpack` to `jetpack-jitm`.
+
+## [2.1.1] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [2.1.0] - 2021-11-30
+### Added
+- Add proper JS and CSS builder.
+- Adds filters to allow sideloading of the Jetpack Backup plugin through JITMs.
+- JITM: Added ability to sideload Jetpack Boost plugin.
+
+### Changed
+- Add `output.filename` in Webpack config to override changed default.
+- Colors: update Jetpack Primary color to match latest brand book.
+
+### Fixed
+- JITM: wrap CTA below text on small viewports
+
+## [2.0.8] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [2.0.7] - 2021-11-16
+### Added
+- Use monorepo `validate-es` script to validate Webpack builds.
+
+### Changed
+- Updated package dependencies.
+
+## [2.0.6] - 2021-11-09
+### Changed
+- Update webpack build config.
+
+## [2.0.5] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [2.0.4] - 2021-10-26
+### Changed
+- Updated package dependencies.
+
+## [2.0.3] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [2.0.2] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [2.0.1] - 2021-09-28
+### Changed
+- Allow Node ^14.17.6 to be used in this project. This shouldn't change the behavior of the code itself.
+- Updated package dependencies.
+
+## [2.0.0] - 2021-08-31
+### Changed
+- Run composer update on test-php command instead of phpunit.
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- Update annotations versions.
+- Updated package dependencies.
+- Update to latest webpack, webpack-cli and calypso-build.
+- Upgrade to Webpack 5.
+- Use Node 16.7.0 in tooling.
+
+### Removed
+- Removed IE11 support.
+
+## [1.16.2] - 2021-07-27
+### Changed
+- Updated package dependencies.
+
+## [1.16.1] - 2021-06-29
+### Changed
+- Update package dependencies.
+- Update node version requirement to 14.16.1
+- Update the usage of Redirect lib and passes the unlinked param as a query argument.
+
+## [1.16.0] - 2021-05-25
+### Added
+- JITM: allow the plugin to set the icon for pre-connection JITMs.
+- JITM: move sync updated option hook to the JITM package.
+
+### Changed
+- JITM: prevent JITMs from being registered more than once.
+- JITM: remove jetpack-constants dependency from composer.json
+- JITM: set the default values of the jetpack_just_in_time_msgs and jetpack_just_in_time_msg_cache filters to true.
+- JITM: Use an action instead of a property to prevent JITMs from being registered multiple times
+- JITM: Use the Device_Detection package to determine if the device is mobile.
+- Updated package dependencies
+- update jetpack-redirect dependency
+
+## [1.15.1] - 2021-05-03
+### Changed
+- JITM: Use manager::get_authorization_url to obtain the authorization url in the user deletion notice.
+
+## [1.15.0] - 2021-04-27
+### Added
+- Move JITM's REST API endpoints into the package
+
+### Changed
+- Always display pre-connection JITMs, without the need to set a filter.
+- Avoid wrapping text in the main CTA button.
+- Bump JITM package version requirement.
+- JITM: Update CTA redirect url with unlinked query arg to indicate current user is not connected.
+- Update package dependencies.
+- Use the a8c-mc-stats package to generate stats.
+
+## [1.14.1] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Use is_connected instead of is_active to instantiate Pre/Post_Connection_JITM
+- Add a jetpack_pre_connection_jitms filter.
+- Update colors to match upcoming WP 5.7 color changes
+- Update Node to match latest LTS 12
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.14.0] - 2021-02-23
+
+- Recommendations: Hide JITMs when banner is displaying
+- Setup Wizard: Remove setup wizard
+- JITM: move jetpack-jitm.js to the JITM package
+- CI: Make tests more generic
+
+## [1.13.5] - 2021-02-08
+
+- Update dependencies to latest stable
+
+## [1.13.4] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.13.3] - 2021-01-26
+
+- Update dependencies to latest stable
+
+## [1.13.2] - 2021-01-26
+
+- Update dependencies to latest stable
+
+## [1.13.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.13.0] - 2021-01-05
+
+- Update dependency brain/monkey to v2.6.0
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.12.2] - 2020-12-09
+
+- Update dependencies to latest stable
+
+## [1.12.1] - 2020-11-24
+
+- Version packages for release
+
+## [1.12.0] - 2020-11-24
+
+- Status: Introduce get_site_suffix method
+- General: update minimum required version to WordPress 5.5
+- Updated PHPCS: Packages and Debugger
+
+## [1.11.2] - 2020-11-05
+
+- Update dependencies to latest stable
+
+## [1.11.1] - 2020-10-29
+
+- Update dependencies to latest stable
+
+## [1.11.0] - 2020-10-27
+
+- JITM: add a Pre_Connection_JITM::generate_admin_url method
+- JITM: use is_active from the connection package
+- JITM: regenerate assets
+
+## [1.10.4] - 2020-10-14
+
+- Update dependencies to latest stable
+
+## [1.10.3] - 2020-10-09
+
+- Update dependencies to latest stable
+
+## [1.10.2] - 2020-10-06
+
+- Update dependencies to latest stable
+
+## [1.10.1] - 2020-10-01
+
+- Update dependencies to latest stable
+
+## [1.10.0] - 2020-09-29
+
+- Update dependencies to latest stable
+
+## [1.9.1] - 2020-09-09
+
+- Update dependencies to latest stable
+
+## [1.9.0] - 2020-08-26
+
+- Compat: add new Creative Mail compat file
+- Packages: Update filenames after #16810
+- CI: Try collect js coverage
+- Docker: Add package testing shortcut
+
+## [1.8.2] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.8.1] - 2020-08-10
+
+- Update dependencies to latest stable
+
+## [1.8.0] - 2020-07-28
+
+- Core Compat: Site Environment
+- Core REST API: Add permission callback to delete_jitm_message endpoint
+
+## [1.7.2] - 2020-07-06
+
+- Update dependencies to latest stable
+
+## [1.7.1] - 2020-07-01
+
+- Update dependencies to latest stable
+
+## [1.7.0] - 2020-06-30
+
+- PHPCS: Clean up the packages
+- Hide pre-connection JITM on the posts page when few posts are published
+- Jetpack Setup Wizard: Do not show pre-connection JITMs to non admins
+- JITM: change 'setup' to 'set up' in pre-connection JITMs
+- Pre-connection JITMS: Link to connect-in-place flow
+- JITM: add Redirect use statement
+
+## [1.6.5] - 2020-06-01
+
+- Hide pre-connection JITM on the posts page when few posts are published
+
+## [1.6.4] - 2020-06-01
+
+- Update dependencies to latest stable
+
+## [1.6.3] - 2020-05-29
+
+- Jetpack Setup Wizard: Do not show pre-connection JITMs to non admins
+
+## [1.6.2] - 2020-05-29
+
+- JITM: change 'setup' to 'set up' in pre-connection JITMs
+- Pre-connection JITMS: Link to connect-in-place flow
+
+## [1.6.1] - 2020-05-28
+
+- JITM: add Redirect use statement
+
+## [1.6.0] - 2020-05-26
+
+- JITM: expand docs and tests to account for pre-connection messages
+- Improve responsiveness of JITMs
+- JITM: fix the use statements
+- Implement pre-connection JITMs
+- JITM: Allow JITM on stats pages
+
+## [1.5.1] - 2020-04-30
+
+- JITM: Allow JITM on stats pages
+
+## [1.5.0] - 2020-04-28
+
+- Use jp.com redirect in all links
+
+## [1.4.0] - 2020-03-31
+
+- Update dependencies to latest stable
+
+## [1.3.0] - 2020-03-31
+
+- Use dynamic Jetpack logos on JITMs
+
+## [1.2.0] - 2020-02-25
+
+- JITM: Show ToS update notice
+
+## [1.1.2] - 2020-02-14
+
+- SSO: do not display JITM when not in wp-admin
+
+## [1.1.1] - 2020-01-23
+
+- Moved JITM initialization to plugins_loaded.
+
+## [1.1.0] - 2020-01-07
+
+- Add partner subsidiary id to upgrade URLs.
+
+## [1.0.10] - 2019-11-25
+
+- Connection Owner Deletion Notice: Fix display bug and sanitize…
+
+## [1.0.9] - 2019-11-19
+
+- Don't show JITMs on Gutenberg editor pages (for now)
+
+## [1.0.8] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.0.7] - 2019-11-08
+
+- Remove unused get_emblem method
+
+## [1.0.6] - 2019-10-31
+
+- Inherit 400 weight for button fonts
+
+## [1.0.5] - 2019-10-28
+
+- PHPCS: JITM and Assets packages
+
+## [1.0.4] - 2019-10-24
+
+- Update Jetpack button and card styles to match WordPress 5.3
+
+## [1.0.3] - 2019-10-23
+
+- Use spread operator instead of func_get_args
+
+## [1.0.2] - 2019-10-17
+
+- Change the class in the add_filter() calls to $this. Also fix some
+
+## [1.0.1] - 2019-09-27
+
+- Initial trial of prefer-dist
+- JITM: Send the user's role in the request for JITM messages
+
+## 1.0.0 - 2019-09-14
+
+- Update Jetpack to use new JITM package
+
+[3.1.21]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.20...v3.1.21
+[3.1.20]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.19...v3.1.20
+[3.1.19]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.18...v3.1.19
+[3.1.18]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.17...v3.1.18
+[3.1.17]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.16...v3.1.17
+[3.1.16]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.15...v3.1.16
+[3.1.15]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.14...v3.1.15
+[3.1.14]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.13...v3.1.14
+[3.1.13]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.12...v3.1.13
+[3.1.12]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.11...v3.1.12
+[3.1.11]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.10...v3.1.11
+[3.1.10]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.9...v3.1.10
+[3.1.9]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.8...v3.1.9
+[3.1.8]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.7...v3.1.8
+[3.1.7]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.6...v3.1.7
+[3.1.6]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.5...v3.1.6
+[3.1.5]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.4...v3.1.5
+[3.1.4]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.3...v3.1.4
+[3.1.3]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.2...v3.1.3
+[3.1.2]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.1...v3.1.2
+[3.1.1]: https://github.com/Automattic/jetpack-jitm/compare/v3.1.0...v3.1.1
+[3.1.0]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.5...v3.1.0
+[3.0.5]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.4...v3.0.5
+[3.0.4]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.3...v3.0.4
+[3.0.3]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.2...v3.0.3
+[3.0.2]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.1...v3.0.2
+[3.0.1]: https://github.com/Automattic/jetpack-jitm/compare/v3.0.0...v3.0.1
+[3.0.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.5.3...v3.0.0
+[2.5.3]: https://github.com/Automattic/jetpack-jitm/compare/v2.5.2...v2.5.3
+[2.5.2]: https://github.com/Automattic/jetpack-jitm/compare/v2.5.1...v2.5.2
+[2.5.1]: https://github.com/Automattic/jetpack-jitm/compare/v2.5.0...v2.5.1
+[2.5.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.4.0...v2.5.0
+[2.4.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.19...v2.4.0
+[2.3.19]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.18...v2.3.19
+[2.3.18]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.17...v2.3.18
+[2.3.17]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.16...v2.3.17
+[2.3.16]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.15...v2.3.16
+[2.3.15]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.14...v2.3.15
+[2.3.14]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.13...v2.3.14
+[2.3.13]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.12...v2.3.13
+[2.3.12]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.11...v2.3.12
+[2.3.11]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.10...v2.3.11
+[2.3.10]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.9...v2.3.10
+[2.3.9]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.8...v2.3.9
+[2.3.8]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.7...v2.3.8
+[2.3.7]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.6...v2.3.7
+[2.3.6]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.5...v2.3.6
+[2.3.5]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.4...v2.3.5
+[2.3.4]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.3...v2.3.4
+[2.3.3]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.2...v2.3.3
+[2.3.2]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.1...v2.3.2
+[2.3.1]: https://github.com/Automattic/jetpack-jitm/compare/v2.3.0...v2.3.1
+[2.3.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.42...v2.3.0
+[2.2.42]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.41...v2.2.42
+[2.2.41]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.40...v2.2.41
+[2.2.40]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.39...v2.2.40
+[2.2.39]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.38...v2.2.39
+[2.2.38]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.37...v2.2.38
+[2.2.37]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.36...v2.2.37
+[2.2.36]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.35...v2.2.36
+[2.2.35]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.34...v2.2.35
+[2.2.34]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.33...v2.2.34
+[2.2.33]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.32...v2.2.33
+[2.2.32]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.31...v2.2.32
+[2.2.31]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.30...v2.2.31
+[2.2.30]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.29...v2.2.30
+[2.2.29]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.28...v2.2.29
+[2.2.28]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.27...v2.2.28
+[2.2.27]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.26...v2.2.27
+[2.2.26]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.25...v2.2.26
+[2.2.25]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.24...v2.2.25
+[2.2.24]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.23...v2.2.24
+[2.2.23]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.22...v2.2.23
+[2.2.22]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.21...v2.2.22
+[2.2.21]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.20...v2.2.21
+[2.2.20]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.19...v2.2.20
+[2.2.19]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.18...v2.2.19
+[2.2.18]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.17...v2.2.18
+[2.2.17]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.16...v2.2.17
+[2.2.16]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.15...v2.2.16
+[2.2.15]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.14...v2.2.15
+[2.2.14]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.13...v2.2.14
+[2.2.13]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.12...v2.2.13
+[2.2.12]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.11...v2.2.12
+[2.2.11]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.10...v2.2.11
+[2.2.10]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.9...v2.2.10
+[2.2.9]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.8...v2.2.9
+[2.2.8]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.7...v2.2.8
+[2.2.7]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.6...v2.2.7
+[2.2.6]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.5...v2.2.6
+[2.2.5]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.4...v2.2.5
+[2.2.4]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.3...v2.2.4
+[2.2.3]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.2...v2.2.3
+[2.2.2]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.1...v2.2.2
+[2.2.1]: https://github.com/Automattic/jetpack-jitm/compare/v2.2.0...v2.2.1
+[2.2.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.1.1...v2.2.0
+[2.1.1]: https://github.com/Automattic/jetpack-jitm/compare/v2.1.0...v2.1.1
+[2.1.0]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.8...v2.1.0
+[2.0.8]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.7...v2.0.8
+[2.0.7]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.6...v2.0.7
+[2.0.6]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.5...v2.0.6
+[2.0.5]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.4...v2.0.5
+[2.0.4]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-jitm/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.16.2...v2.0.0
+[1.16.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.16.1...v1.16.2
+[1.16.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.16.0...v1.16.1
+[1.16.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.15.1...v1.16.0
+[1.15.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.15.0...v1.15.1
+[1.15.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.14.1...v1.15.0
+[1.14.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.14.0...v1.14.1
+[1.14.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.5...v1.14.0
+[1.13.5]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.4...v1.13.5
+[1.13.4]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.3...v1.13.4
+[1.13.3]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.2...v1.13.3
+[1.13.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.1...v1.13.2
+[1.13.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.13.0...v1.13.1
+[1.13.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.12.2...v1.13.0
+[1.12.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.12.1...v1.12.2
+[1.12.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.12.0...v1.12.1
+[1.12.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.11.2...v1.12.0
+[1.11.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.11.1...v1.11.2
+[1.11.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.11.0...v1.11.1
+[1.11.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.10.4...v1.11.0
+[1.10.4]: https://github.com/Automattic/jetpack-jitm/compare/v1.10.3...v1.10.4
+[1.10.3]: https://github.com/Automattic/jetpack-jitm/compare/v1.10.2...v1.10.3
+[1.10.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.10.1...v1.10.2
+[1.10.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.10.0...v1.10.1
+[1.10.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.9.1...v1.10.0
+[1.9.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.9.0...v1.9.1
+[1.9.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.8.2...v1.9.0
+[1.8.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.7.2...v1.8.0
+[1.7.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.5...v1.7.0
+[1.6.5]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.4...v1.6.5
+[1.6.4]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.3...v1.6.4
+[1.6.3]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.5.1...v1.6.0
+[1.5.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.1.2...v1.2.0
+[1.1.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.10...v1.1.0
+[1.0.10]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.9...v1.0.10
+[1.0.9]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.8...v1.0.9
+[1.0.8]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.7...v1.0.8
+[1.0.7]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.6...v1.0.7
+[1.0.6]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.5...v1.0.6
+[1.0.5]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.4...v1.0.5
+[1.0.4]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.3...v1.0.4
+[1.0.3]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.2...v1.0.3
+[1.0.2]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.1...v1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-jitm/compare/v1.0.0...v1.0.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/images/background-f9c9ff650c08ee46f153.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/images/background-f9c9ff650c08ee46f153.png
new file mode 100644
index 00000000..07ae0ef4
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/images/background-f9c9ff650c08ee46f153.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php
new file mode 100644
index 00000000..20c214ea
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.asset.php
@@ -0,0 +1 @@
+ array('jquery', 'wp-polyfill'), 'version' => 'a41583033504a4ed0b13');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.css
new file mode 100644
index 00000000..f8d6f089
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.css
@@ -0,0 +1 @@
+.jitm-button{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #000;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;margin:0;min-width:90px;outline:0;overflow:hidden;padding:7px 14px 9px;text-align:center;text-decoration:none;text-overflow:ellipsis;vertical-align:top;width:100%}.jitm-button.is-primary{background:#000;color:#fff}.jitm-button.is-primary .gridicons-external-link{fill:#fff}.jitm-button.is-secondary .gridicons-external-link{fill:#000}.jitm-button.is-secondary:hover{background:#f6f7f7;color:#000}.jitm-button.is-secondary:hover .gridicons-external-link{fill:#000}.jitm-button:focus,.jitm-button:hover{background:#414141;border-color:#414141;color:#fff}.jitm-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.jitm-button:disabled,.jitm-button[disabled]{background:#dcdcde;border-color:#dcdcde;color:#a7aaad;cursor:default}.jitm-button.is-compact{font-size:14px;height:32px;line-height:1;white-space:nowrap}.jitm-button.is-compact .gridicon{margin-top:-8px;top:4px}.jitm-button.is-compact .gridicons-plus-small{margin-left:-4px}.jitm-button.is-compact .gridicons-plus-small:last-of-type{margin-left:0}.jitm-button.is-compact .gridicons-plus-small+.gridicon{margin-left:-4px}.jitm-button.is-compact .gridicons-external-link{margin:-3px 0 -3px 2px}.jitm-button.hidden{display:none}.jitm-card{background-color:#fff;border:1px solid #fff;border-radius:2px;box-shadow:0 1px 4px #00000029;box-sizing:border-box;clear:both;display:block;margin:3rem 1.25rem 0 auto;padding:1rem 1rem 1rem 1.25rem;position:relative}.jitm-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}.jitm-card.is-compact{margin-bottom:.0625rem}@media(min-width:481px){.jitm-card.is-compact{margin-bottom:1px;padding:1rem 1.5rem}}.jitm-card.is-card-link{padding-right:3rem}.my-jetpack-jitm-card .jitm-card{margin-bottom:1.5rem;margin-right:0;margin-top:1.5rem}#screen-meta-links+.jitm-card{margin:2.5rem 1.5385em 0 auto}.post-php .jitm-card{margin-right:0}.jp-lower .jitm-card{margin:0 0 1.5rem}.jitm-banner.jitm-card{display:flex;position:relative;z-index:2}.jitm-banner.jitm-card:before{border-bottom-left-radius:1px;border-top-left-radius:1px;content:"";height:100%;left:0;position:absolute;top:0;width:4px}@media(max-width:480px){.jitm-banner.jitm-card{display:flex;flex-direction:column}}.jitm-banner.jitm-card.is-card-link{padding:.75rem 3rem .75rem 1rem}.jitm-banner.jitm-card.is-dismissible{padding-right:3rem}.jitm-banner.jitm-card:before{background-color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-personal:before{background-color:#f0b849}.jitm-banner.jitm-card.is-upgrade-personal .jitm-banner__icon{color:#f0b849}.jitm-banner.jitm-card.is-upgrade-personal .jitm-banner__icon-circle{background-color:#f0b849}.jitm-banner.jitm-card.is-upgrade-premium:before{background-color:#069e08}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon{color:#069e08}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon-circle{background-color:#069e08}.jitm-banner.jitm-card.is-upgrade-business:before,.jitm-banner.jitm-card.woo-jitm:before{background-color:#855da6}.jitm-banner.jitm-card.is-upgrade-business .jitm-banner__icon,.jitm-banner.jitm-card.woo-jitm .jitm-banner__icon{color:#855da6}.jitm-banner.jitm-card.is-upgrade-business .jitm-banner__icon-circle,.jitm-banner.jitm-card.woo-jitm .jitm-banner__icon-circle{background-color:#855da6}.jitm-banner.jitm-card .jitm-card__link-indicator{align-items:center;color:#0087be;display:flex}.jitm-banner.jitm-card:hover{transition:all .1s ease-in-out}.jitm-banner.jitm-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.jitm-banner.jitm-card:hover .jitm-card__link-indicator{color:#005082}@media(min-width:481px){.jitm-banner.jitm-card{padding:1rem 1rem 1rem 1.25rem}.jitm-banner.jitm-card.is-dismissible{padding-right:1rem}}.jitm-banner__buttons_container{display:flex;gap:1rem;height:50%;margin:auto 1rem auto 0;overflow:hidden}@media(min-width:481px){.jitm-banner__buttons_container{margin-left:1rem}}.jitm-banner__icons{display:flex}.jitm-banner__icons .jitm-banner__icon,.jitm-banner__icons .jitm-banner__icon-circle{border-radius:50%;flex-shrink:0;height:1.5rem;margin-right:1rem;margin-top:-.125rem;text-align:center;top:.25rem;width:1.5rem}.jitm-banner__icons .jitm-banner__icon{align-self:center;color:#fff;display:block}.jitm-banner__icons .jitm-banner__icon-circle{color:#fff;display:none;padding:.1875rem .25rem .25rem .1875rem}@media(min-width:481px){.jitm-banner__icons{align-items:center}.jitm-banner__icons .jitm-banner__icon{display:none}.jitm-banner__icons .jitm-banner__icon-circle{display:block}}.jitm-banner__icon-plan{display:flex;margin-right:1rem}.jitm-banner__icon-plan .dops-plan-icon{height:2rem;width:2rem}.jitm-banner__icon-plan .jp-emblem{position:relative;top:.125rem}@media(max-width:480px){.jitm-banner__icon-plan .jp-emblem{margin-bottom:1rem}}.jitm-banner__icon-plan .jp-emblem svg{height:2rem;width:2rem;fill:#069e08}.jitm-banner__icon-plan .jp-emblem .jitm-jp-logo{height:inherit;width:2.5rem;fill:inherit}@media(min-width:481px){.jitm-banner__icon-plan{align-items:center}}.jitm-banner__background{background-image:url(images/background-f9c9ff650c08ee46f153.png);background-position:100%;background-repeat:no-repeat;height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.rtl .jitm-banner__background{background-position:0;transform:scaleX(-1)}.jitm-banner__content{align-items:center;display:flex;flex-grow:1;flex-shrink:100000;flex-wrap:wrap}@media(max-width:480px){.jitm-banner__content{margin-right:0}}@media(min-width:481px){.jitm-banner__content{flex-wrap:nowrap}}@media(max-width:960px){.jitm-banner__content{margin-right:5px}}.jitm-banner__info{flex-grow:1;line-height:1.4}@media(min-width:481px){.jitm-banner__info{flex-basis:50%}}@media(min-width:961px){.jitm-banner__info{flex-basis:70%}}.jitm-banner__info .jitm-banner__description,.jitm-banner__info .jitm-banner__description a,.jitm-banner__info .jitm-banner__title{color:#000}.jitm-banner__info .jitm-banner__title{font-size:.9375rem;font-weight:700;line-height:136%}.jitm-banner__info .jitm-banner__description{font-size:.8125rem;line-height:150%;margin-top:.125rem}.jitm-banner__info .banner__list{font-size:12px;list-style:none;margin:10px 0}.jitm-banner__info .banner__list li{margin:6px 0}.jitm-banner__info .banner__list li .gridicon{fill:#a2a2a2;display:inline;margin-right:12px;vertical-align:bottom}.jitm-banner__action{align-self:center;font-size:.75rem;overflow:hidden;text-align:left}.jitm-banner__action .jitm-banner__prices{display:flex;justify-content:flex-start}.jitm-banner__action .jitm-banner__prices .dops-plan-price{margin-bottom:0}.jitm-banner__action .jitm-banner__prices .dops-plan-price.is-discounted,.jitm-banner__action .jitm-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .jitm-banner__action .jitm-banner__prices .dops-plan-price{margin-bottom:.5rem}@media(max-width:480px){.jitm-banner__action{margin-top:1rem}}@media(min-width:481px){.jitm-banner__action{text-align:center;width:auto}.jitm-banner__action .is-dismissible{margin-top:2.5rem}.jitm-banner__action .jitm-banner__prices{justify-content:flex-end;text-align:right}}.jitm-banner__dismiss{display:block;line-height:.5;margin-bottom:auto;margin-top:auto;text-decoration:none}.jitm-banner__dismiss:before{color:#6f6f6f;content:"";font:400 20px/1 dashicons}@media(min-width:661px){.jitm-banner__dismiss{margin-right:-.5rem}}@media(max-width:480px){.jitm-banner__dismiss{align-items:center;display:flex;height:48px;justify-content:center;margin:0;position:absolute;right:0;top:0;width:48px}}.jitm-banner__action+.jitm-banner__dismiss{margin-left:.625rem}#dolly+.jitm-card{margin:3rem 1rem 0 auto}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.js
new file mode 100644
index 00000000..a58f31a9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.js
@@ -0,0 +1 @@
+(()=>{"use strict";var t={428:t=>{t.exports=window.jQuery}},a={};function e(n){var i=a[n];if(void 0!==i)return i.exports;var c=a[n]={exports:{}};return t[n](c,c.exports,e),c.exports}e.n=t=>{var a=t&&t.__esModule?()=>t.default:()=>t;return e.d(a,{a:a}),a},e.d=(t,a)=>{for(var n in a)e.o(a,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:a[n]})},e.o=(t,a)=>Object.prototype.hasOwnProperty.call(t,a);var n=e(428);e.n(n)()(document).ready((function(t){var a={default:function(a){const e='\n\t\t\t\t\n\t\t\t\t';var n='
")}},e=function(){t(".jetpack-jitm-message").each((function(){var e=t(this),n=e.data("message-path"),i=e.data("query"),c=e.data("redirect"),o=location.hash;o=o.replace(/#\//,"_"),n.includes("jetpack_page_my-jetpack")?n=n.replace("jetpack_page_my-jetpack","jetpack_page_my-jetpack"+o):"_dashboard"!==o&&(n=n.replace("toplevel_page_jetpack","toplevel_page_jetpack"+o));var r=!!t(".jetpack-logo__masthead").length;t.get(window.jitm_config.api_root+"jetpack/v4/jitm",{message_path:n,query:i,full_jp_logo_exists:r,_wpnonce:e.data("nonce")}).then((function(n){"object"==typeof n&&n[1]&&(n=[n[1]]),0!==n.length&&n[0].content&&function(e,n,i){var c;(c=n.template)&&a[c]||(c="default"),n.url=n.url+"&redirect="+i;var o,r=a[c](n);r.find(".jitm-banner__dismiss").on("click",(o=r,function(a){a.preventDefault(),o.hide(),t.ajax({url:window.jitm_config.api_root+"jetpack/v4/jitm",method:"POST",beforeSend:function(t){t.setRequestHeader("X-WP-Nonce",window.jitm_config.nonce)},data:{id:n.id,feature_class:n.feature_class}})})),t("#jp-admin-notices").length>0?(e.innerHTML=r,t("#jp-admin-notices").find(".jitm-card")&&t(".jitm-card").replaceWith(r),r.prependTo(t("#jp-admin-notices"))):e.replaceWith(r),r.find("#jitm-banner__activate a").on("click",(function(){var a=t(this);if(a.attr("disabled"))return!1;t.ajax({url:window.jitm_config.api_root+"jetpack/v4/module/"+a.data("module")+"/active",method:"POST",beforeSend:function(a){a.setRequestHeader("X-WP-Nonce",e.data("nonce")),t("#jitm-banner__activate a").text(window.jitm_config.activating_module_text),t("#jitm-banner__activate a").attr("disabled",!0)}}).done((function(){if(t("#jitm-banner__activate a").text(window.jitm_config.activated_module_text),t("#jitm-banner__activate a").attr("disabled",!0),a.data("settings_link"))return t("#jitm-banner__settings").show(),void t("#jitm-banner__activate").hide();setTimeout((function(){r.fadeOut("slow")}),2e3)}))})),r.find(".jitm-button[data-ajax-action]").on("click",(function(a){a.preventDefault();var n=t(this);return n.attr("disabled",!0),t.post(window.ajaxurl,{action:n.data("ajax-action"),_nonce:e.data("ajax-nonce")}).done((function(){r.fadeOut("slow")})).fail((function(){n.attr("disabled",!1)})),!1})),r.find(".jitm-button").on("click",(function(a){var e=t(this),n=e.attr("data-jptracks-name");if(void 0!==n){var i={clicked:e.attr("data-jptracks-prop")||!1,jitm_message_path:e.attr("data-jitm-path")||!1};window.jpTracksAJAX&&window.jpTracksAJAX.record_ajax_event(n,"click",i)}}))}(e,n[0],c)}))}))};e(),t(window).on("hashchange",(function(t){const a=t.originalEvent.newURL;if(["jetpack","my-jetpack","jetpack-backup","jetpack-boost","jetpack-protect","jetpack-search","jetpack-social","jetpack-videopress"].some((t=>a.includes(`admin.php?page=${t}`)))){var n=document.querySelector(".jitm-card");n&&n.remove(),e()}}))}))})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css
new file mode 100644
index 00000000..b87e4632
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/build/index.rtl.css
@@ -0,0 +1 @@
+.jitm-button{-webkit-appearance:none;appearance:none;background:#fff;border:1px solid #000;border-radius:4px;box-sizing:border-box;color:#000;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;margin:0;min-width:90px;outline:0;overflow:hidden;padding:7px 14px 9px;text-align:center;text-decoration:none;text-overflow:ellipsis;vertical-align:top;width:100%}.jitm-button.is-primary{background:#000;color:#fff}.jitm-button.is-primary .gridicons-external-link{fill:#fff}.jitm-button.is-secondary .gridicons-external-link{fill:#000}.jitm-button.is-secondary:hover{background:#f6f7f7;color:#000}.jitm-button.is-secondary:hover .gridicons-external-link{fill:#000}.jitm-button:focus,.jitm-button:hover{background:#414141;border-color:#414141;color:#fff}.jitm-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px #2271b1}.jitm-button:disabled,.jitm-button[disabled]{background:#dcdcde;border-color:#dcdcde;color:#a7aaad;cursor:default}.jitm-button.is-compact{font-size:14px;height:32px;line-height:1;white-space:nowrap}.jitm-button.is-compact .gridicon{margin-top:-8px;top:4px}.jitm-button.is-compact .gridicons-plus-small{margin-right:-4px}.jitm-button.is-compact .gridicons-plus-small:last-of-type{margin-right:0}.jitm-button.is-compact .gridicons-plus-small+.gridicon{margin-right:-4px}.jitm-button.is-compact .gridicons-external-link{margin:-3px 2px -3px 0}.jitm-button.hidden{display:none}.jitm-card{background-color:#fff;border:1px solid #fff;border-radius:2px;box-shadow:0 1px 4px #00000029;box-sizing:border-box;clear:both;display:block;margin:3rem auto 0 1.25rem;padding:1rem 1.25rem 1rem 1rem;position:relative}.jitm-card:after{clear:both;content:".";display:block;height:0;visibility:hidden}.jitm-card.is-compact{margin-bottom:.0625rem}@media(min-width:481px){.jitm-card.is-compact{margin-bottom:1px;padding:1rem 1.5rem}}.jitm-card.is-card-link{padding-left:3rem}.my-jetpack-jitm-card .jitm-card{margin-bottom:1.5rem;margin-left:0;margin-top:1.5rem}#screen-meta-links+.jitm-card{margin:2.5rem auto 0 1.5385em}.post-php .jitm-card{margin-left:0}.jp-lower .jitm-card{margin:0 0 1.5rem}.jitm-banner.jitm-card{display:flex;position:relative;z-index:2}.jitm-banner.jitm-card:before{border-bottom-right-radius:1px;border-top-right-radius:1px;content:"";height:100%;position:absolute;right:0;top:0;width:4px}@media(max-width:480px){.jitm-banner.jitm-card{display:flex;flex-direction:column}}.jitm-banner.jitm-card.is-card-link{padding:.75rem 1rem .75rem 3rem}.jitm-banner.jitm-card.is-dismissible{padding-left:3rem}.jitm-banner.jitm-card:before{background-color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon{color:#4ab866}.jitm-banner.jitm-card .jitm-banner__icon-circle{background-color:#4ab866}.jitm-banner.jitm-card.is-upgrade-personal:before{background-color:#f0b849}.jitm-banner.jitm-card.is-upgrade-personal .jitm-banner__icon{color:#f0b849}.jitm-banner.jitm-card.is-upgrade-personal .jitm-banner__icon-circle{background-color:#f0b849}.jitm-banner.jitm-card.is-upgrade-premium:before{background-color:#069e08}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon{color:#069e08}.jitm-banner.jitm-card.is-upgrade-premium .jitm-banner__icon-circle{background-color:#069e08}.jitm-banner.jitm-card.is-upgrade-business:before,.jitm-banner.jitm-card.woo-jitm:before{background-color:#855da6}.jitm-banner.jitm-card.is-upgrade-business .jitm-banner__icon,.jitm-banner.jitm-card.woo-jitm .jitm-banner__icon{color:#855da6}.jitm-banner.jitm-card.is-upgrade-business .jitm-banner__icon-circle,.jitm-banner.jitm-card.woo-jitm .jitm-banner__icon-circle{background-color:#855da6}.jitm-banner.jitm-card .jitm-card__link-indicator{align-items:center;color:#0087be;display:flex}.jitm-banner.jitm-card:hover{transition:all .1s ease-in-out}.jitm-banner.jitm-card:hover.is-card-link{box-shadow:0 0 0 1px #a2a2a2,0 2px 4px #d5d5d5}.jitm-banner.jitm-card:hover .jitm-card__link-indicator{color:#005082}@media(min-width:481px){.jitm-banner.jitm-card{padding:1rem 1.25rem 1rem 1rem}.jitm-banner.jitm-card.is-dismissible{padding-left:1rem}}.jitm-banner__buttons_container{display:flex;gap:1rem;height:50%;margin:auto 0 auto 1rem;overflow:hidden}@media(min-width:481px){.jitm-banner__buttons_container{margin-right:1rem}}.jitm-banner__icons{display:flex}.jitm-banner__icons .jitm-banner__icon,.jitm-banner__icons .jitm-banner__icon-circle{border-radius:50%;flex-shrink:0;height:1.5rem;margin-left:1rem;margin-top:-.125rem;text-align:center;top:.25rem;width:1.5rem}.jitm-banner__icons .jitm-banner__icon{align-self:center;color:#fff;display:block}.jitm-banner__icons .jitm-banner__icon-circle{color:#fff;display:none;padding:.1875rem .1875rem .25rem .25rem}@media(min-width:481px){.jitm-banner__icons{align-items:center}.jitm-banner__icons .jitm-banner__icon{display:none}.jitm-banner__icons .jitm-banner__icon-circle{display:block}}.jitm-banner__icon-plan{display:flex;margin-left:1rem}.jitm-banner__icon-plan .dops-plan-icon{height:2rem;width:2rem}.jitm-banner__icon-plan .jp-emblem{position:relative;top:.125rem}@media(max-width:480px){.jitm-banner__icon-plan .jp-emblem{margin-bottom:1rem}}.jitm-banner__icon-plan .jp-emblem svg{height:2rem;width:2rem;fill:#069e08}.jitm-banner__icon-plan .jp-emblem .jitm-jp-logo{height:inherit;width:2.5rem;fill:inherit}@media(min-width:481px){.jitm-banner__icon-plan{align-items:center}}.jitm-banner__background{background-image:url(images/background-f9c9ff650c08ee46f153.png);background-position:0;background-repeat:no-repeat;height:100%;position:absolute;right:0;top:0;width:100%;z-index:-1}.rtl .jitm-banner__background{background-position:100%;transform:scaleX(-1)}.jitm-banner__content{align-items:center;display:flex;flex-grow:1;flex-shrink:100000;flex-wrap:wrap}@media(max-width:480px){.jitm-banner__content{margin-left:0}}@media(min-width:481px){.jitm-banner__content{flex-wrap:nowrap}}@media(max-width:960px){.jitm-banner__content{margin-left:5px}}.jitm-banner__info{flex-grow:1;line-height:1.4}@media(min-width:481px){.jitm-banner__info{flex-basis:50%}}@media(min-width:961px){.jitm-banner__info{flex-basis:70%}}.jitm-banner__info .jitm-banner__description,.jitm-banner__info .jitm-banner__description a,.jitm-banner__info .jitm-banner__title{color:#000}.jitm-banner__info .jitm-banner__title{font-size:.9375rem;font-weight:700;line-height:136%}.jitm-banner__info .jitm-banner__description{font-size:.8125rem;line-height:150%;margin-top:.125rem}.jitm-banner__info .banner__list{font-size:12px;list-style:none;margin:10px 0}.jitm-banner__info .banner__list li{margin:6px 0}.jitm-banner__info .banner__list li .gridicon{fill:#a2a2a2;display:inline;margin-left:12px;vertical-align:bottom}.jitm-banner__action{align-self:center;font-size:.75rem;overflow:hidden;text-align:right}.jitm-banner__action .jitm-banner__prices{display:flex;justify-content:flex-start}.jitm-banner__action .jitm-banner__prices .dops-plan-price{margin-bottom:0}.jitm-banner__action .jitm-banner__prices .dops-plan-price.is-discounted,.jitm-banner__action .jitm-banner__prices .dops-plan-price.is-discounted .dops-plan-price__currency-symbol{color:#414141}.has-call-to-action .jitm-banner__action .jitm-banner__prices .dops-plan-price{margin-bottom:.5rem}@media(max-width:480px){.jitm-banner__action{margin-top:1rem}}@media(min-width:481px){.jitm-banner__action{text-align:center;width:auto}.jitm-banner__action .is-dismissible{margin-top:2.5rem}.jitm-banner__action .jitm-banner__prices{justify-content:flex-end;text-align:left}}.jitm-banner__dismiss{display:block;line-height:.5;margin-bottom:auto;margin-top:auto;text-decoration:none}.jitm-banner__dismiss:before{color:#6f6f6f;content:"";font:400 20px/1 dashicons}@media(min-width:661px){.jitm-banner__dismiss{margin-left:-.5rem}}@media(max-width:480px){.jitm-banner__dismiss{align-items:center;display:flex;height:48px;justify-content:center;left:0;margin:0;position:absolute;top:0;width:48px}}.jitm-banner__action+.jitm-banner__dismiss{margin-right:.625rem}#dolly+.jitm-card{margin:3rem auto 0 1rem}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/composer.json
new file mode 100644
index 00000000..975f3341
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/composer.json
@@ -0,0 +1,63 @@
+{
+ "name": "automattic/jetpack-jitm",
+ "description": "Just in time messages for Jetpack",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-a8c-mc-stats": "^2.0.2",
+ "automattic/jetpack-assets": "^2.3.7",
+ "automattic/jetpack-connection": "^4.0.0",
+ "automattic/jetpack-device-detection": "^2.1.4",
+ "automattic/jetpack-logo": "^2.0.4",
+ "automattic/jetpack-redirect": "^2.0.4",
+ "automattic/jetpack-status": "^4.0.0"
+ },
+ "require-dev": {
+ "brain/monkey": "2.6.1",
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "build-production": [
+ "pnpm run build-production"
+ ],
+ "build-development": [
+ "pnpm run build"
+ ],
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run watch"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "3.1.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php
new file mode 100644
index 00000000..802cce7d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-jitm.php
@@ -0,0 +1,347 @@
+register();
+ }
+
+ /**
+ * Pre/Post Connection JITM factory metod
+ *
+ * @return Post_Connection_JITM|Pre_Connection_JITM JITM instance.
+ */
+ public static function get_instance() {
+ if ( ( new Connection_Manager() )->is_connected() ) {
+ $jitm = new Post_Connection_JITM();
+ } else {
+ $jitm = new Pre_Connection_JITM();
+ }
+ return $jitm;
+ }
+
+ /**
+ * Sets up JITM action callbacks if needed.
+ */
+ public function register() {
+ if ( did_action( 'jetpack_registered_jitms' ) ) {
+ // JITMs have already been registered.
+ return;
+ }
+
+ if ( ! $this->jitms_enabled() ) {
+ // Do nothing.
+ return;
+ }
+
+ add_action( 'rest_api_init', array( __NAMESPACE__ . '\\Rest_Api_Endpoints', 'register_endpoints' ) );
+
+ add_action( 'current_screen', array( $this, 'prepare_jitms' ) );
+
+ /**
+ * These are sync actions that we need to keep track of for jitms.
+ */
+ add_filter( 'jetpack_sync_before_send_updated_option', array( $this, 'jetpack_track_last_sync_callback' ), 99 );
+
+ /**
+ * Fires when the JITMs are registered. This action is used to ensure that
+ * JITMs are registered only once.
+ *
+ * @since 1.16.0
+ */
+ do_action( 'jetpack_registered_jitms' );
+ }
+
+ /**
+ * Checks the jetpack_just_in_time_msgs filters and whether the site
+ * is offline to determine whether JITMs are enabled.
+ *
+ * @return bool True if JITMs are enabled, else false.
+ */
+ public function jitms_enabled() {
+ /**
+ * Filter to turn off all just in time messages
+ *
+ * @since 1.1.0
+ * @since-jetpack 3.7.0
+ * @since-jetpack 5.4.0 Correct docblock to reflect default arg value
+ *
+ * @param bool true Whether to show just in time messages.
+ */
+ if ( ! apply_filters( 'jetpack_just_in_time_msgs', true ) ) {
+ return false;
+ }
+
+ // Folks cannot connect to WordPress.com and won't really be able to act on the pre-connection messages. So bail.
+ if ( ( new Status() )->is_offline_mode() ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Prepare actions according to screen and post type.
+ *
+ * @since 1.1.0
+ * @since-jetpack 3.8.2
+ *
+ * @uses Jetpack_Autoupdate::get_possible_failures()
+ *
+ * @param \WP_Screen $screen WP Core's screen object.
+ */
+ public function prepare_jitms( $screen ) {
+ /**
+ * Filter to hide JITMs on certain screens.
+ *
+ * @since 1.14.0
+ *
+ * @param bool true Whether to show just in time messages.
+ * @param string $string->id The ID of the current screen.
+ */
+ if ( apply_filters( 'jetpack_display_jitms_on_screen', true, $screen->id ) ) {
+ add_action( 'admin_enqueue_scripts', array( $this, 'jitm_enqueue_files' ) );
+ add_action( 'admin_notices', array( $this, 'ajax_message' ) );
+ add_action( 'edit_form_top', array( $this, 'ajax_message' ) );
+ }
+ }
+
+ /**
+ * Check if the current page is a Jetpack or WooCommerce admin page.
+ * Noting that this is a very basic check, and pages from other plugins may also match.
+ *
+ * @since 3.1.0
+ *
+ * @return bool True if the current page is a Jetpack or WooCommerce admin page, else false.
+ */
+ public function is_a8c_admin_page() {
+ if ( ! function_exists( 'get_current_screen' ) ) {
+ return false;
+ }
+
+ $current_screen = get_current_screen();
+
+ // We never want to show JITMs on the block editor.
+ if (
+ method_exists( $current_screen, 'is_block_editor' )
+ && $current_screen->is_block_editor()
+ ) {
+ return false;
+ }
+
+ return (
+ $current_screen
+ && $current_screen->id
+ && (bool) preg_match( '/jetpack|woo|shop|product/', $current_screen->id )
+ );
+ }
+
+ /**
+ * Function to enqueue jitm css and js
+ */
+ public function jitm_enqueue_files() {
+ // Only load those files on the Jetpack or Woo admin pages.
+ if ( ! $this->is_a8c_admin_page() ) {
+ return;
+ }
+
+ Assets::register_script(
+ 'jetpack-jitm',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'in_footer' => true,
+ 'dependencies' => array( 'jquery' ),
+ 'enqueue' => true,
+ )
+ );
+ wp_localize_script(
+ 'jetpack-jitm',
+ 'jitm_config',
+ array(
+ 'api_root' => esc_url_raw( rest_url() ),
+ 'activate_module_text' => esc_html__( 'Activate', 'jetpack-jitm' ),
+ 'activated_module_text' => esc_html__( 'Activated', 'jetpack-jitm' ),
+ 'activating_module_text' => esc_html__( 'Activating', 'jetpack-jitm' ),
+ 'settings_module_text' => esc_html__( 'Settings', 'jetpack-jitm' ),
+ 'nonce' => wp_create_nonce( 'wp_rest' ),
+ )
+ );
+ }
+
+ /**
+ * Is the current page a block editor page?
+ *
+ * @since 1.1.0
+ * @since-jetpack 8.0.0
+ *
+ * @deprecated 3.1.0
+ */
+ public function is_gutenberg_page() {
+ _deprecated_function( __METHOD__, '3.1.0' );
+ $current_screen = get_current_screen();
+ return ( method_exists( $current_screen, 'is_block_editor' ) && $current_screen->is_block_editor() );
+ }
+
+ /**
+ * Get's the current message path for display of a JITM
+ *
+ * @return string The message path
+ */
+ public function get_message_path() {
+ $screen = get_current_screen();
+
+ return 'wp:' . $screen->id . ':' . current_filter();
+ }
+
+ /**
+ * Injects the dom to show a JITM inside of wp-admin.
+ */
+ public function ajax_message() {
+ if ( ! is_admin() ) {
+ return;
+ }
+
+ // Only add this to Jetpack or Woo admin pages.
+ if ( ! $this->is_a8c_admin_page() ) {
+ return;
+ }
+
+ $message_path = $this->get_message_path();
+ $query_string = _http_build_query( $_GET, '', ',' ); // phpcs:ignore WordPress.Security.NonceVerification.Recommended
+ $current_screen = isset( $_SERVER['REQUEST_URI'] ) ? wp_unslash( $_SERVER['REQUEST_URI'] ) : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput -- Escaped below
+ ?>
+
+ ' . ( ( $full_jp_logo_exists ) ? $jetpack_logo->get_jp_emblem() : $jetpack_logo->get_jp_emblem_larger() ) . '';
+ break;
+ case 'woocommerce':
+ $content_icon = '';
+ break;
+ default:
+ $content_icon = '';
+ break;
+ }
+ return $content_icon;
+ }
+
+ /**
+ * Returns an array containing the supported icons for JITMs.
+ *
+ * The list includes an empty string, which is used when no icon should be displayed.
+ *
+ * @return array The list of supported icons.
+ */
+ public function get_supported_icons() {
+ return array(
+ 'jetpack',
+ 'woocommerce',
+ '',
+ );
+ }
+
+ /**
+ * Stores dismiss data into an option
+ *
+ * @param string $key Dismiss key.
+ */
+ public function save_dismiss( $key ) {
+ $hide_jitm = \Jetpack_Options::get_option( 'hide_jitm' );
+ if ( ! is_array( $hide_jitm ) ) {
+ $hide_jitm = array();
+ }
+
+ if ( ! isset( $hide_jitm[ $key ] ) || ! is_array( $hide_jitm[ $key ] ) ) {
+ $hide_jitm[ $key ] = array(
+ 'last_dismissal' => 0,
+ 'number' => 0,
+ );
+ }
+
+ $hide_jitm[ $key ] = array(
+ 'last_dismissal' => time(),
+ 'number' => $hide_jitm[ $key ]['number'] + 1,
+ );
+
+ \Jetpack_Options::update_option( 'hide_jitm', $hide_jitm );
+ }
+
+ /**
+ * Sets the 'jetpack_last_plugin_sync' transient when the active_plugins option is synced.
+ *
+ * @param array $params The action parameters.
+ *
+ * @return array Returns the action parameters unchanged.
+ */
+ public function jetpack_track_last_sync_callback( $params ) {
+ /**
+ * This filter is documented in the Automattic\Jetpack\JITMS\Post_Connection_JITM class.
+ */
+ if ( ! apply_filters( 'jetpack_just_in_time_msg_cache', true ) ) {
+ return $params;
+ }
+
+ if ( is_array( $params ) && isset( $params[0] ) ) {
+ $option = $params[0];
+ if ( 'active_plugins' === $option ) {
+ // Use the cache if we can, but not terribly important if it gets evicted.
+ set_transient( 'jetpack_last_plugin_sync', time(), HOUR_IN_SECONDS );
+ }
+ }
+
+ return $params;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php
new file mode 100644
index 00000000..8ab43298
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-post-connection-jitm.php
@@ -0,0 +1,417 @@
+tracking = new Tracking();
+ }
+
+ /**
+ * A special filter for WooCommerce, to set a message based on local state.
+ *
+ * @param object $content The current message.
+ *
+ * @return object The new message.
+ */
+ public static function jitm_woocommerce_services_msg( $content ) {
+ if ( ! function_exists( 'wc_get_base_location' ) ) {
+ return $content;
+ }
+
+ $base_location = wc_get_base_location();
+
+ switch ( $base_location['country'] ) {
+ case 'US':
+ $content->message = esc_html__( 'New free service: Show USPS shipping rates on your store! Added bonus: print shipping labels without leaving WooCommerce.', 'jetpack-jitm' );
+ break;
+ case 'CA':
+ $content->message = esc_html__( 'New free service: Show Canada Post shipping rates on your store!', 'jetpack-jitm' );
+ break;
+ default:
+ $content->message = '';
+ }
+
+ return $content;
+ }
+
+ /**
+ * A special filter for WooCommerce Call To Action button
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_woo_services_install() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'wc-services-action' => 'install',
+ ),
+ admin_url( 'admin.php?page=wc-settings' )
+ ),
+ 'wc-services-install'
+ );
+ }
+
+ /**
+ * A special filter for WooCommerce Call To Action button.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_woo_services_activate() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'wc-services-action' => 'activate',
+ ),
+ admin_url( 'admin.php?page=wc-settings' )
+ ),
+ 'wc-services-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to install the Creative Mail plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_creative_mail_install() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'creative-mail-action' => 'install',
+ ),
+ admin_url( 'edit.php?post_type=feedback' )
+ ),
+ 'creative-mail-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to activate the Creative Mail plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_creative_mail_activate() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'creative-mail-action' => 'activate',
+ ),
+ admin_url( 'edit.php?post_type=feedback' )
+ ),
+ 'creative-mail-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to install the Jetpack Backup plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_backup_install() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'jetpack-backup-action' => 'install',
+ ),
+ admin_url( 'admin.php?page=jetpack' )
+ ),
+ 'jetpack-backup-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to activate the Jetpack Backup plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_backup_activate() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'jetpack-backup-action' => 'activate',
+ ),
+ admin_url( 'admin.php?page=jetpack' )
+ ),
+ 'jetpack-backup-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to install the Jetpack Boost plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_boost_install() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'jetpack-boost-action' => 'install',
+ ),
+ admin_url( 'admin.php?page=jetpack' )
+ ),
+ 'jetpack-boost-install'
+ );
+ }
+
+ /**
+ * A special filter used in the CTA of a JITM offering to activate the Jetpack Boost plugin.
+ *
+ * @return string The new CTA
+ */
+ public static function jitm_jetpack_boost_activate() {
+ return wp_nonce_url(
+ add_query_arg(
+ array(
+ 'jetpack-boost-action' => 'activate',
+ ),
+ admin_url( 'admin.php?page=jetpack' )
+ ),
+ 'jetpack-boost-install'
+ );
+ }
+
+ /**
+ * Dismisses a JITM feature class so that it will no longer be shown.
+ *
+ * @param string $id The id of the JITM that was dismissed.
+ * @param string $feature_class The feature class of the JITM that was dismissed.
+ *
+ * @return bool Always true.
+ */
+ public function dismiss( $id, $feature_class ) {
+ $this->tracking->record_user_event(
+ 'jitm_dismiss_client',
+ array(
+ 'jitm_id' => $id,
+ 'feature_class' => $feature_class,
+ )
+ );
+ $this->save_dismiss( $feature_class );
+ return true;
+ }
+
+ /**
+ * Asks the wpcom API for the current message to display keyed on query string and message path
+ *
+ * @param string $message_path The message path to ask for.
+ * @param string $query The query string originally from the front end.
+ * @param bool $full_jp_logo_exists If there is a full Jetpack logo already on the page.
+ *
+ * @return array The JITM's to show, or an empty array if there is nothing to show
+ */
+ public function get_messages( $message_path, $query, $full_jp_logo_exists ) {
+ // WooCommerce Services.
+ add_filter( 'jitm_woocommerce_services_msg', array( $this, 'jitm_woocommerce_services_msg' ) );
+ add_filter( 'jitm_jetpack_woo_services_install', array( $this, 'jitm_jetpack_woo_services_install' ) );
+ add_filter( 'jitm_jetpack_woo_services_activate', array( $this, 'jitm_jetpack_woo_services_activate' ) );
+
+ // Creative Mail.
+ add_filter( 'jitm_jetpack_creative_mail_install', array( $this, 'jitm_jetpack_creative_mail_install' ) );
+ add_filter( 'jitm_jetpack_creative_mail_activate', array( $this, 'jitm_jetpack_creative_mail_activate' ) );
+
+ // Jetpack Backup.
+ add_filter( 'jitm_jetpack_backup_install', array( $this, 'jitm_jetpack_backup_install' ) );
+ add_filter( 'jitm_jetpack_backup_activate', array( $this, 'jitm_jetpack_backup_activate' ) );
+
+ // Jetpack Boost.
+ add_filter( 'jitm_jetpack_boost_install', array( $this, 'jitm_jetpack_boost_install' ) );
+ add_filter( 'jitm_jetpack_boost_activate', array( $this, 'jitm_jetpack_boost_activate' ) );
+
+ $user = wp_get_current_user();
+
+ // Unauthenticated or invalid requests just bail.
+ if ( ! $user ) {
+ return array();
+ }
+
+ $user_roles = implode( ',', $user->roles );
+ $site_id = \Jetpack_Options::get_option( 'id' );
+
+ // Build our jitm request.
+ $path = add_query_arg(
+ array(
+ 'external_user_id' => urlencode_deep( $user->ID ),
+ 'user_roles' => urlencode_deep( $user_roles ),
+ 'query_string' => urlencode_deep( build_query( $query ) ),
+ 'mobile_browser' => Device_Detection::is_smartphone() ? 1 : 0,
+ '_locale' => get_user_locale(),
+ ),
+ sprintf( '/sites/%d/jitm/%s', $site_id, $message_path )
+ );
+
+ // Attempt to get from cache.
+ $envelopes = get_transient( 'jetpack_jitm_' . substr( md5( $path ), 0, 31 ) );
+
+ // If something is in the cache and it was put in the cache after the last sync we care about, use it.
+ $use_cache = false;
+
+ /**
+ * Filter to turn off jitm caching
+ *
+ * @since 1.1.0
+ * @since-jetpack 5.4.0
+ *
+ * @param bool true Whether to cache just in time messages
+ */
+ if ( apply_filters( 'jetpack_just_in_time_msg_cache', true ) ) {
+ $use_cache = true;
+ }
+
+ if ( $use_cache ) {
+ $last_sync = (int) get_transient( 'jetpack_last_plugin_sync' );
+ $from_cache = $envelopes && $last_sync > 0 && $last_sync < $envelopes['last_response_time'];
+ } else {
+ $from_cache = false;
+ }
+
+ // Otherwise, ask again.
+ if ( ! $from_cache ) {
+ $wpcom_response = Client::wpcom_json_api_request_as_blog(
+ $path,
+ '2',
+ array(
+ 'user_id' => $user->ID,
+ 'user_roles' => implode( ',', $user->roles ),
+ ),
+ null,
+ 'wpcom'
+ );
+
+ // silently fail...might be helpful to track it?
+ if ( is_wp_error( $wpcom_response ) ) {
+ return array();
+ }
+
+ $envelopes = json_decode( $wpcom_response['body'] );
+
+ if ( ! is_array( $envelopes ) ) {
+ return array();
+ }
+
+ $expiration = isset( $envelopes[0] ) ? $envelopes[0]->ttl : 300;
+
+ // Do not cache if expiration is 0 or we're not using the cache.
+ if ( 0 !== $expiration && $use_cache ) {
+ $envelopes['last_response_time'] = time();
+
+ set_transient( 'jetpack_jitm_' . substr( md5( $path ), 0, 31 ), $envelopes, $expiration );
+ }
+ }
+
+ $hidden_jitms = \Jetpack_Options::get_option( 'hide_jitm' );
+ unset( $envelopes['last_response_time'] );
+
+ /**
+ * Allow adding your own custom JITMs after a set of JITMs has been received.
+ *
+ * @since 1.1.0
+ * @since-jetpack 6.9.0
+ * @since-jetpack 8.3.0 - Added Message path.
+ *
+ * @param array $envelopes array of existing JITMs.
+ * @param string $message_path The message path to ask for.
+ */
+ $envelopes = apply_filters( 'jetpack_jitm_received_envelopes', $envelopes, $message_path );
+
+ foreach ( $envelopes as $idx => &$envelope ) {
+
+ $dismissed_feature = isset( $hidden_jitms[ $envelope->feature_class ] ) && is_array( $hidden_jitms[ $envelope->feature_class ] ) ? $hidden_jitms[ $envelope->feature_class ] : null;
+
+ // If the this feature class has been dismissed and the request has not passed the ttl, skip it as it's been dismissed.
+ if ( is_array( $dismissed_feature ) && ( time() - $dismissed_feature['last_dismissal'] < $envelope->expires || $dismissed_feature['number'] >= $envelope->max_dismissal ) ) {
+ unset( $envelopes[ $idx ] );
+ continue;
+ }
+
+ $this->tracking->record_user_event(
+ 'jitm_view_client',
+ array(
+ 'jitm_id' => $envelope->id,
+ 'jitm_message_path' => $message_path,
+ )
+ );
+
+ $url_params = array(
+ 'u' => $user->ID,
+ );
+
+ // Get affiliate code and add it to the array of URL parameters.
+ $aff = Partner::init()->get_partner_code( Partner::AFFILIATE_CODE );
+ if ( '' !== $aff ) {
+ $url_params['aff'] = $aff;
+ }
+
+ // Check if the current user has connected their WP.com account
+ // and if not add this information to the the array of URL parameters.
+ if ( ! ( new Manager() )->is_user_connected( $user->ID ) ) {
+ $url_params['query'] = 'unlinked=1';
+ }
+ $envelope->url = esc_url( Redirect::get_url( "jitm-$envelope->id", $url_params ) );
+
+ $stats = new A8c_Mc_Stats();
+
+ $envelope->jitm_stats_url = $stats->build_stats_url( array( 'x_jetpack-jitm' => $envelope->id ) );
+
+ // phpcs:disable WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ // $CTA is not valid per PHPCS, but it is part of the return from WordPress.com, so allowing.
+ if ( $envelope->CTA->hook ) {
+ $envelope->url = apply_filters( 'jitm_' . $envelope->CTA->hook, $envelope->url );
+ unset( $envelope->CTA->hook );
+ }
+ // phpcs:enable
+
+ if ( isset( $envelope->content->hook ) ) {
+ $envelope->content = apply_filters( 'jitm_' . $envelope->content->hook, $envelope->content );
+ unset( $envelope->content->hook );
+ }
+
+ // No point in showing an empty message.
+ if ( empty( $envelope->content->message ) ) {
+ unset( $envelopes[ $idx ] );
+ continue;
+ }
+
+ $envelope->content->icon = $this->generate_icon( $envelope->content->icon, $full_jp_logo_exists );
+ $envelope->message_path = esc_attr( $message_path );
+
+ $stats->add( 'jitm', $envelope->id . '-viewed' );
+ $stats->do_server_side_stats();
+ }
+
+ return $envelopes;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php
new file mode 100644
index 00000000..6a779873
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-pre-connection-jitm.php
@@ -0,0 +1,171 @@
+validate_messages( $messages );
+
+ $formatted_messages = array();
+
+ foreach ( $messages as $message ) {
+ if ( ! preg_match( $message['message_path'], $message_path ) ) {
+ continue;
+ }
+
+ $obj = new \stdClass();
+ $obj->CTA = array( // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase
+ 'message' => $message['button_caption'],
+ 'newWindow' => false,
+ );
+ $obj->url = $message['button_link'];
+ $obj->id = $message['id'];
+ $obj->is_dismissible = true;
+ $obj->content = array(
+ 'message' => $message['message'],
+ 'description' => $message['description'],
+ 'list' => array(),
+ 'icon' => $this->get_message_icon( $message ),
+ );
+
+ $formatted_messages[] = $obj;
+ }
+
+ return $formatted_messages;
+ }
+
+ /**
+ * Validates that each of the messages contains all of the required keys:
+ * - id
+ * - message_path
+ * - message
+ * - description
+ * - button_link
+ * - button_caption
+ *
+ * @param array $messages An array of JITM messages.
+ *
+ * @return array An array of JITM messages that contain all of the required keys.
+ */
+ private function validate_messages( $messages ) {
+ if ( ! is_array( $messages ) ) {
+ return array();
+ }
+
+ $expected_keys = array_flip( array( 'id', 'message_path', 'message', 'description', 'button_link', 'button_caption' ) );
+
+ foreach ( $messages as $index => $message ) {
+ if ( count( array_intersect_key( $expected_keys, $message ) ) !== count( $expected_keys ) ) {
+ // Remove any messages that are missing expected keys.
+ unset( $messages[ $index ] );
+ }
+ }
+
+ return $messages;
+ }
+
+ /**
+ * Get the icon for the message.
+ *
+ * The message may contain an 'icon' key. If the value of the 'icon' key matches a supported icon (or empty string), the value is used.
+ * If the message does not contain an icon key or if the value does not match a supported icon, the Jetpack icon is used by default.
+ *
+ * @param array $message A pre-connection JITM.
+ *
+ * @return string The icon to use in the JITM.
+ */
+ private function get_message_icon( $message ) {
+ // Default to the Jetpack icon.
+ $icon = 'jetpack';
+
+ if ( ! isset( $message['icon'] ) ) {
+ return $icon;
+ }
+
+ $supported_icons = $this->get_supported_icons();
+
+ if ( in_array( $message['icon'], $supported_icons, true ) ) {
+ // Only use the message icon if it's a supported icon or an empty string (for no icon).
+ $icon = $message['icon'];
+ }
+
+ return $icon;
+ }
+
+ /**
+ * Retrieve the current message to display keyed on query string and message path
+ *
+ * @param string $message_path The message path to ask for.
+ * @param string $query The query string originally from the front end. Unused in this subclass.
+ * @param bool $full_jp_logo_exists If there is a full Jetpack logo already on the page.
+ *
+ * @return array The JITMs to show, or an empty array if there is nothing to show
+ */
+ public function get_messages( $message_path, $query, $full_jp_logo_exists ) {
+ if ( ! current_user_can( 'install_plugins' ) ) {
+ return array();
+ }
+
+ $messages = $this->filter_messages( $message_path );
+
+ if ( empty( $messages ) ) {
+ return array();
+ }
+
+ $hidden_jitms = \Jetpack_Options::get_option( 'hide_jitm' );
+
+ foreach ( $messages as $idx => &$envelope ) {
+ $dismissed_feature = isset( $hidden_jitms[ 'pre-connection-' . $envelope->id ] ) &&
+ is_array( $hidden_jitms[ 'pre-connection-' . $envelope->id ] ) ? $hidden_jitms[ 'pre-connection-' . $envelope->id ] : null;
+
+ if ( is_array( $dismissed_feature ) ) {
+ unset( $messages[ $idx ] );
+ continue;
+ }
+
+ $envelope->content['icon'] = $this->generate_icon( $envelope->content['icon'], $full_jp_logo_exists );
+ }
+
+ return $messages;
+ }
+
+ /**
+ * Dismisses a JITM ID so that it will no longer be shown.
+ *
+ * @param string $id The id of the JITM that was dismissed.
+ *
+ * @return bool Always true
+ */
+ public function dismiss( $id ) {
+ $this->save_dismiss( 'pre-connection-' . $id );
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php
new file mode 100644
index 00000000..8e0a127e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/class-rest-api-endpoints.php
@@ -0,0 +1,98 @@
+ WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_jitm_message',
+ 'permission_callback' => '__return_true',
+ )
+ );
+
+ register_rest_route(
+ 'jetpack/v4',
+ '/jitm',
+ array(
+ 'methods' => WP_REST_Server::CREATABLE,
+ 'callback' => __CLASS__ . '::delete_jitm_message',
+ 'permission_callback' => __CLASS__ . '::delete_jitm_message_permission_callback',
+ )
+ );
+ }
+
+ /**
+ * Asks for a jitm, unless they've been disabled, in which case it returns an empty array
+ *
+ * @param WP_REST_Request $request The request object.
+ *
+ * @return array An array of jitms
+ */
+ public static function get_jitm_message( $request ) {
+ $jitm = JITM::get_instance();
+
+ if ( ! $jitm->jitms_enabled() ) {
+ return array();
+ }
+
+ // add the search term to the query params if it exists
+ $query = $request['query'];
+ if ( ! empty( $request['s'] ) ) {
+ $query['s'] = $request['s'];
+ }
+
+ return $jitm->get_messages( $request['message_path'], urldecode_deep( $query ), 'true' === $request['full_jp_logo_exists'] );
+ }
+
+ /**
+ * Dismisses a jitm.
+ *
+ * @param WP_REST_Request $request The request object.
+ *
+ * @return bool Always True
+ */
+ public static function delete_jitm_message( $request ) {
+ $jitm = JITM::get_instance();
+
+ if ( ! $jitm->jitms_enabled() ) {
+ return true;
+ }
+
+ return $jitm->dismiss( $request['id'], $request['feature_class'] );
+ }
+
+ /**
+ * Verify that the user can dismiss JITM messages.
+ *
+ * @return bool|WP_Error True if user is able to dismiss JITM messages.
+ */
+ public static function delete_jitm_message_permission_callback() {
+ if ( current_user_can( 'read' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_jetpack_delete_jitm_message', REST_Connector::get_user_permissions_error_msg(), array( 'status' => rest_authorization_required_code() ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/css/jetpack-admin-jitm.scss b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/css/jetpack-admin-jitm.scss
new file mode 100644
index 00000000..e054d763
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/css/jetpack-admin-jitm.scss
@@ -0,0 +1,516 @@
+// Just in Time Messaging - message prompts
+
+// TODO: Switch to using the `@automattic/jetpack-base-styles` package when its ready.
+@import '../../plugins/jetpack/_inc/client/scss/functions/rem';
+@import '../../plugins/jetpack/_inc/client/scss/variables/colors';
+@import '../../plugins/jetpack/_inc/client/scss/mixins/breakpoints';
+@import '../../plugins/jetpack/_inc/client/scss/calypso-colors';
+
+@mixin clear-fix {
+ &::after {
+ content: ".";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+}
+
+@mixin jitm-banner-color( $color ) {
+ &::before {
+ background-color: $color;
+ }
+
+ .jitm-banner__icon {
+ color: $color;
+ }
+
+ .jitm-banner__icon-circle {
+ background-color: $color;
+ }
+}
+
+// New JITMS - modified calypso banner styles
+$blue-medium-dark: #2271b1;
+$jp-gray: #dcdcde;
+$jp-gray-0: #f6f7f7;
+$jp-gray-20: #a7aaad;
+
+.jitm-button {
+ border-style: solid;
+ border-width: 1px;
+ cursor: pointer;
+ display: inline-block;
+ margin: 0;
+ outline: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ text-decoration: none;
+ vertical-align: top;
+ box-sizing: border-box;
+ font-size: 14px;
+ border-radius: 4px;
+ padding: 7px 14px 9px;
+ -webkit-appearance: none;
+ appearance: none;
+ text-align: center;
+ min-width: 90px;
+ font-weight: 600;
+ border-color: black;
+ background: $white;
+ color: black;
+ width: 100%;
+
+ // Primary buttons
+ &.is-primary {
+ background: black;
+ color: $white;
+ .gridicons-external-link {
+ fill: $white;
+ }
+ }
+
+ // Secondary buttons
+ &.is-secondary {
+ .gridicons-external-link {
+ fill: black;
+ }
+ &:hover{
+ color: black;
+ background: $jp-gray-0;
+ .gridicons-external-link {
+ fill: black;
+ }
+ }
+ }
+
+ &:hover,
+ &:focus {
+ border-color: $gray-dark;
+ background: $gray-dark;
+ color: $white;
+ }
+ &:focus {
+ box-shadow:
+ 0 0 0 1px $white,
+ 0 0 0 3px $blue-medium-dark;
+ }
+
+ &[disabled],
+ &:disabled {
+ color: $jp-gray-20;
+ background: $jp-gray;
+ border-color: $jp-gray;
+ cursor: default;
+ }
+ &.is-compact {
+ height: 32px;
+ font-size: 14px;
+ line-height: 1;
+ white-space: nowrap;
+
+ .gridicon {
+ top: 4px;
+ margin-top: -8px;
+ }
+ // Make the left margin of the small plus icon visually less huge
+ .gridicons-plus-small {
+ margin-left: -4px;
+ }
+ // Reset the left margin if the button contains only the plus icon
+ .gridicons-plus-small:last-of-type {
+ margin-left: 0;
+ }
+ // Make plus icon nudged closer to adjacent icons for add-people and add-plugin type buttons
+ .gridicons-plus-small + .gridicon {
+ margin-left: -4px;
+ }
+
+ // Properly align icon with the button text
+ .gridicons-external-link {
+ margin: -3px 0 -3px 2px;
+ }
+ }
+ &.hidden {
+ display: none;
+ }
+}
+
+.jitm-card {
+ display: block;
+ clear: both;
+ position: relative;
+ margin: rem( 48px ) rem( 20px ) 0 auto;
+ padding: rem( 16px );
+ padding-left: rem( 20px );
+ box-sizing: border-box;
+ background-color: $white;
+ border: 1px solid $white;
+ border-radius: 2px;
+ box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.16);
+
+ @include clear-fix;
+
+ // Compact Card
+ &.is-compact {
+ margin-bottom: rem( 1px );
+
+ @include breakpoint( ">480px" ) {
+ margin-bottom: 1px;
+ padding: rem( 16px ) rem( 24px );
+ }
+ }
+
+ &.is-card-link {
+ padding-right: rem( 48px );
+ }
+}
+
+// Minor adjustments for the display in My Jetpack.
+.my-jetpack-jitm-card {
+ .jitm-card {
+ margin-right: 0;
+ margin-bottom: 1.5rem;
+ margin-top: 1.5rem;
+ }
+}
+
+// if JITM appears directly below WordPress "help" menu adjust margins
+#screen-meta-links+.jitm-card {
+ margin: rem( 40px ) 1.5385em 0 auto;
+}
+
+// if JITM appears directly below WordPress hello dolly adjust margins
+#dolly+.jitm-card {
+ margin: 3rem 1rem 0 auto;
+}
+
+// remove right margin for jitms in the editor
+.post-php .jitm-card {
+ margin-right: 0;
+}
+
+ // if JITM appears inside of the jetpack dashboard adjust margins
+ .jp-lower .jitm-card {
+ margin: 0 0 rem( 24px );
+ }
+
+.jitm-banner.jitm-card {
+ display: flex;
+ position: relative;
+ z-index: 2;
+
+ &::before {
+ content: '';
+ width: 4px;
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ border-top-left-radius: 1px;
+ border-bottom-left-radius: 1px;
+ }
+
+ @include breakpoint( "<480px" ) {
+ display: flex;
+ flex-direction: column;
+ }
+
+ &.is-card-link {
+ padding: rem( 12px ) rem( 48px ) rem( 12px ) rem( 16px );
+ }
+ &.is-dismissible {
+ padding-right: rem( 48px );
+ }
+
+ @include jitm-banner-color( $alert-green );
+
+ &.is-upgrade-personal {
+ @include jitm-banner-color( $alert-yellow );
+ }
+ &.is-upgrade-premium {
+ @include jitm-banner-color( #069e08 );
+ }
+ &.is-upgrade-business,
+ &.woo-jitm {
+ @include jitm-banner-color( $alert-purple );
+ }
+
+ .jitm-card__link-indicator {
+ align-items: center;
+ color: $blue-wordpress;
+ display: flex;
+ }
+
+ &:hover {
+ transition: all 100ms ease-in-out;
+ &.is-card-link {
+ box-shadow: 0 0 0 1px $gray, 0 2px 4px lighten( $gray, 20% );
+ }
+ .jitm-card__link-indicator {
+ color: $blue-dark;
+ }
+ }
+
+ @include breakpoint( ">480px" ) {
+ padding: rem( 16px );
+ padding-left: rem( 20px );
+
+ &.is-dismissible {
+ padding-right: rem( 16px );
+ }
+ }
+}
+
+.jitm-banner__buttons_container {
+ display: flex;
+ height: 50%;
+ margin: auto rem( 16px ) auto 0;
+ gap: rem( 16px );
+ overflow: hidden;
+
+ @include breakpoint( ">480px" ) {
+ margin-left: rem( 16px );
+ }
+}
+
+.jitm-banner__icons {
+ display: flex;
+
+ .jitm-banner__icon,
+ .jitm-banner__icon-circle {
+ border-radius: 50%;
+ flex-shrink: 0;
+ height: rem( 24px );
+ width: rem( 24px );
+ margin-right: rem( 16px );
+ margin-top: rem( -2px );
+ text-align: center;
+ top: rem( 4px );
+ }
+
+ .jitm-banner__icon {
+ align-self: center;
+ color: $white;
+ display: block;
+ }
+
+ .jitm-banner__icon-circle {
+ color: white;
+ display: none;
+ padding: rem( 3px ) rem( 4px ) rem( 4px ) rem( 3px );
+ }
+
+ @include breakpoint( ">480px" ) {
+ align-items: center;
+
+ .jitm-banner__icon {
+ display: none;
+ }
+ .jitm-banner__icon-circle {
+ display: block;
+ }
+ }
+}
+
+.jitm-banner__icon-plan {
+ display: flex;
+ margin-right: rem( 16px );
+
+ .dops-plan-icon {
+ height: rem( 32px );
+ width: rem( 32px );
+ }
+
+ .jp-emblem {
+ position: relative;
+ top: rem( 2px );
+
+ @include breakpoint( "<480px" ) {
+ margin-bottom: rem( 16px );
+ }
+
+ svg {
+ height: rem( 32px );
+ width: rem( 32px );
+ fill: $green-primary;
+ }
+
+ .jitm-jp-logo {
+ height: inherit;
+ width: rem( 40px );
+ fill: inherit;
+ }
+ }
+
+ @include breakpoint( ">480px" ) {
+ align-items: center;
+ }
+}
+
+.jitm-banner__background {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-image: url( "../images/background.png" );
+ background-repeat: no-repeat;
+ background-position: right center;
+ z-index: -1;
+
+ .rtl & {
+ background-position: left center;
+ transform: scaleX(-1);
+ }
+}
+
+.jitm-banner__content {
+ align-items: center;
+ display: flex;
+ flex-grow: 1;
+ flex-wrap: wrap;
+ flex-shrink: 100000;
+
+ @include breakpoint( "<480px" ) {
+ margin-right: 0;
+ }
+
+ @include breakpoint( ">480px" ) {
+ flex-wrap: nowrap;
+ }
+
+ @include breakpoint( "<960px" ) {
+ margin-right: 5px;
+ }
+}
+
+.jitm-banner__info {
+ flex-grow: 1;
+ line-height: 1.4;
+
+ @include breakpoint( ">480px" ) {
+ flex-basis: 50%;
+ }
+
+ @include breakpoint( ">960px" ) {
+ flex-basis: 70%;
+ }
+
+ .jitm-banner__title,
+ .jitm-banner__description,
+ .jitm-banner__description a {
+ color: black;
+ }
+
+ .jitm-banner__title {
+ font-size: rem( 15px );
+ font-weight: 700;
+ line-height: 136%;
+ }
+
+ .jitm-banner__description {
+ font-size: rem( 13px );
+ line-height: 150%;
+ margin-top: rem( 2px );
+ }
+
+ .banner__list {
+ font-size: 12px;
+ list-style: none;
+ margin: 10px 0;
+ li {
+ margin: 6px 0;
+ .gridicon {
+ fill: $gray;
+ display: inline;
+ margin-right: 12px;
+ vertical-align: bottom;
+ }
+ }
+ }
+}
+
+.jitm-banner__action {
+ align-self: center;
+ font-size: rem( 12px );
+ text-align: left;
+ overflow: hidden;
+
+ .jitm-banner__prices {
+ display: flex;
+ justify-content: flex-start;
+
+ .dops-plan-price {
+ margin-bottom: 0;
+ }
+
+ .dops-plan-price.is-discounted,
+ .dops-plan-price.is-discounted .dops-plan-price__currency-symbol {
+ color: $gray-dark;
+ }
+
+ .has-call-to-action & .dops-plan-price {
+ margin-bottom: rem( 8px );
+ }
+ }
+
+ @include breakpoint( "<480px" ) {
+ margin-top: 1rem;
+ }
+
+ @include breakpoint( ">480px" ) {
+ text-align: center;
+ width: auto;
+
+ .is-dismissible {
+ margin-top: rem( 40px );
+ }
+
+ .jitm-banner__prices {
+ justify-content: flex-end;
+ text-align: right;
+ }
+ }
+}
+
+.jitm-banner__dismiss {
+ display: block;
+ text-decoration: none;
+ line-height: .5;
+ margin-top: auto;
+ margin-bottom: auto;
+
+ &::before {
+ color: darken($gray, 20%);
+ font: 400 20px/1 dashicons;
+ content: '\f335';
+ }
+
+ @include breakpoint( ">660px" ) {
+ margin-right: rem( -8px );
+ }
+
+ @include breakpoint( "<480px" ) {
+ position: absolute;
+ top: 0;
+ right: 0;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin: 0;
+
+ // Minimum touch area
+ width: 48px;
+ height: 48px;
+ }
+}
+
+.jitm-banner__action + .jitm-banner__dismiss {
+ margin-left: rem( 10px );
+}
+
+#dolly + .jitm-card {
+ margin: 3rem 1rem 0 auto;
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/images/background.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/images/background.png
new file mode 100644
index 00000000..07ae0ef4
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-jitm/src/images/background.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md
new file mode 100644
index 00000000..9722b347
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/CHANGELOG.md
@@ -0,0 +1,355 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [2.0.9] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [2.0.8] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [2.0.7] - 2024-08-26
+### Changed
+- Updated package dependencies. [#39004]
+
+## [2.0.6] - 2024-08-19
+### Changed
+- Internal updates.
+
+## [2.0.5] - 2024-04-22
+### Changed
+- Internal updates.
+
+## [2.0.4] - 2024-04-08
+### Changed
+- Internal updates.
+
+## [2.0.3] - 2024-03-25
+### Changed
+- Internal updates.
+
+## [2.0.2] - 2024-03-14
+### Changed
+- Internal updates.
+
+## [2.0.1] - 2023-11-21
+
+## [2.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [1.8.4] - 2023-09-19
+
+- Minor internal updates.
+
+## [1.8.3] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.8.2] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.8.1] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.8.0] - 2023-02-08
+### Added
+- After connection flow, load unattached licenses. If any of them match the product that's being connected, redirect users to the license activation page. [#28509]
+
+## [1.7.14] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [1.7.13] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [1.7.12] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.7.11] - 2022-10-25
+### Changed
+- Updated package dependencies. [#26705]
+
+## [1.7.10] - 2022-09-20
+### Changed
+- Updated package dependencies.
+
+## [1.7.9] - 2022-09-08
+### Changed
+- Updated package dependencies.
+
+## [1.7.8] - 2022-08-29
+### Changed
+- Updated package dependencies.
+
+## [1.7.7] - 2022-08-23
+### Changed
+- Updated package dependencies. [#25628]
+
+## [1.7.6] - 2022-08-03
+### Changed
+- Updated package dependencies. [#25300, #25315]
+
+## [1.7.5] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.7.4] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [1.7.3] - 2022-06-14
+### Changed
+- Updated package dependencies. [#24529]
+
+## [1.7.2] - 2022-05-04
+### Changed
+- Updated package dependencies. [#24095]
+
+### Deprecated
+- Moved the options class into Connection. [#24095]
+
+## [1.7.1] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.7.0] - 2022-04-19
+### Changed
+- Moved licensing endpoints from the Jetpack plugin to the Licensing package
+
+## [1.6.4] - 2022-04-12
+### Changed
+- Updated package dependencies.
+
+## [1.6.3] - 2022-03-02
+### Changed
+- Updated package dependencies.
+
+## [1.6.2] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [1.6.1] - 2022-01-18
+### Changed
+- Updated package dependencies.
+
+## [1.6.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-licensing`.
+
+## [1.5.4] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.5.3] - 2021-12-03
+### Changed
+- Increases the timeout of the license activation request from 10 to 30 seconds.
+
+## [1.5.2] - 2021-11-30
+### Changed
+- Updated package dependencies.
+
+## [1.5.1] - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## [1.5.0] - 2021-11-16
+### Added
+- Add a test for update to WPCOM return change.
+- Added get_license_activation_notice_dismiss() function.
+
+## [1.4.9] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.4.8] - 2021-10-19
+### Changed
+- Updated package dependencies.
+
+## [1.4.7] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [1.4.6] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.4.5] - 2021-08-31
+### Changed
+- Run composer update on test-php command instead of phpunit.
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- Updated versions in annotations.
+
+## [1.4.4] - 2021-07-27
+### Changed
+- Updated package dependencies.
+
+## [1.4.3] - 2021-06-29
+### Changed
+- Updated package dependencies.
+
+## [1.4.2] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.4.1] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.4.0] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+- Dashboard: add new option to input license key.
+
+### Changed
+- Replace usage of deprecated is_active method
+- Update package dependencies.
+
+### Fixed
+- Fix stored licenses not being attached on option creation
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.3.4] - 2021-02-23
+
+- CI: Make tests more generic
+- codesniffer: Hack around mediawiki-codesniffer bug
+
+## [1.3.3] - 2021-02-08
+
+- Update dependencies to latest stable
+
+## [1.3.2] - 2021-01-28
+
+- Update dependencies to latest stable
+
+## [1.3.1] - 2021-01-26
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.3.0] - 2021-01-05
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.2.4] - 2020-11-24
+
+- Version packages for release
+
+## [1.2.3] - 2020-11-24
+
+- Updated PHPCS: Packages and Debugger
+
+## [1.2.2] - 2020-11-05
+
+- Update dependencies to latest stable
+
+## [1.2.1] - 2020-10-29
+
+- Update dependencies to latest stable
+
+## [1.2.0] - 2020-10-27
+
+- Licensing: use Oxford comma in error message
+
+## [1.1.4] - 2020-10-14
+
+- Update dependencies to latest stable
+
+## [1.1.3] - 2020-10-09
+
+- Update dependencies to latest stable
+
+## [1.1.2] - 2020-10-06
+
+- Update dependencies to latest stable
+
+## [1.1.1] - 2020-10-01
+
+- Update dependencies to latest stable
+
+## [1.1.0] - 2020-09-29
+
+- Update dependencies to latest stable
+
+## 1.0.0 - 2020-09-24
+
+- Licensing: Add support for Jetpack licenses
+
+[2.0.9]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.8...v2.0.9
+[2.0.8]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.7...v2.0.8
+[2.0.7]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.6...v2.0.7
+[2.0.6]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.5...v2.0.6
+[2.0.5]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.4...v2.0.5
+[2.0.4]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-licensing/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.8.4...v2.0.0
+[1.8.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.8.3...v1.8.4
+[1.8.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.8.2...v1.8.3
+[1.8.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.8.1...v1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.8.0...v1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.14...v1.8.0
+[1.7.14]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.13...v1.7.14
+[1.7.13]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.12...v1.7.13
+[1.7.12]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.11...v1.7.12
+[1.7.11]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.10...v1.7.11
+[1.7.10]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.9...v1.7.10
+[1.7.9]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.8...v1.7.9
+[1.7.8]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.7...v1.7.8
+[1.7.7]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.6...v1.7.7
+[1.7.6]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.5...v1.7.6
+[1.7.5]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.4...v1.7.5
+[1.7.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.3...v1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.2...v1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.1...v1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.6.4...v1.7.0
+[1.6.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.6.3...v1.6.4
+[1.6.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.5.4...v1.6.0
+[1.5.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.5.3...v1.5.4
+[1.5.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.9...v1.5.0
+[1.4.9]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.8...v1.4.9
+[1.4.8]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.7...v1.4.8
+[1.4.7]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.6...v1.4.7
+[1.4.6]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.5...v1.4.6
+[1.4.5]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.4...v1.4.5
+[1.4.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.3...v1.4.4
+[1.4.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.2...v1.4.3
+[1.4.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.1...v1.4.2
+[1.4.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.3.4...v1.4.0
+[1.3.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.3.3...v1.3.4
+[1.3.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.3.2...v1.3.3
+[1.3.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.3.1...v1.3.2
+[1.3.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.2.4...v1.3.0
+[1.2.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.2.3...v1.2.4
+[1.2.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.2.2...v1.2.3
+[1.2.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.2.1...v1.2.2
+[1.2.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.2.0...v1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.1.4...v1.2.0
+[1.1.4]: https://github.com/Automattic/jetpack-licensing/compare/v1.1.3...v1.1.4
+[1.1.3]: https://github.com/Automattic/jetpack-licensing/compare/v1.1.2...v1.1.3
+[1.1.2]: https://github.com/Automattic/jetpack-licensing/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-licensing/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-licensing/compare/v1.0.0...v1.1.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/composer.json
new file mode 100644
index 00000000..2b08026c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/composer.json
@@ -0,0 +1,51 @@
+{
+ "name": "automattic/jetpack-licensing",
+ "description": "Everything needed to manage Jetpack licenses client-side.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-connection": "^4.0.0"
+ },
+ "require-dev": {
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.0.x-dev"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-endpoints.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-endpoints.php
new file mode 100644
index 00000000..0972505a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-endpoints.php
@@ -0,0 +1,449 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_licensing_error',
+ 'permission_callback' => __CLASS__ . '::can_manage_options_check',
+ ),
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_licensing_error',
+ 'permission_callback' => __CLASS__ . '::can_manage_options_check',
+ 'args' => array(
+ 'error' => array(
+ 'required' => true,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ ),
+ )
+ );
+
+ /**
+ * Sets a license. This is still used as part of the first pass at licensing done for partners.
+ *
+ * See https://github.com/Automattic/jetpack/pull/23687 for more details.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ '/licensing/set-license',
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::set_jetpack_license',
+ 'permission_callback' => __CLASS__ . '::set_jetpack_license_key_permission_check',
+ 'args' => array(
+ 'license' => array(
+ 'required' => true,
+ 'type' => 'string',
+ 'validate_callback' => __CLASS__ . '::validate_string',
+ 'sanitize_callback' => 'sanitize_text_field',
+ ),
+ ),
+ )
+ );
+
+ /**
+ * Get Jetpack user licenses.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'licensing/user/licenses',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_user_licenses',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ )
+ );
+
+ /**
+ * Get Jetpack user license counts.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'licensing/user/counts',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_user_license_counts',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ )
+ );
+
+ /**
+ * Update user-licensing activation notice dismiss info.
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ 'licensing/user/activation-notice-dismiss',
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::update_licensing_activation_notice_dismiss',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ 'args' => array(
+ 'last_detached_count' => array(
+ 'required' => true,
+ 'type' => 'integer',
+ 'validate_callback' => __CLASS__ . '::validate_non_neg_int',
+ ),
+ ),
+ )
+ );
+
+ /**
+ * Attach licenses to user account
+ */
+ register_rest_route(
+ 'jetpack/v4',
+ '/licensing/attach-licenses',
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::attach_jetpack_licenses',
+ 'permission_callback' => __CLASS__ . '::user_licensing_permission_check',
+ 'args' => array(
+ 'licenses' => array(
+ 'required' => true,
+ 'type' => 'array',
+ 'items' => array(
+ 'type' => 'string',
+ ),
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Verify that the user can set a Jetpack license key
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 9.5.0
+ *
+ * @return bool|WP_Error True if user is able to set a Jetpack license key
+ */
+ public static function set_jetpack_license_key_permission_check() {
+ if ( Licensing::instance()->is_licensing_input_enabled() ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_set_jetpack_license_key', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Verify that user can view and update user-licensing data.
+ *
+ * @since 1.7.0
+ *
+ * @return bool Whether the user is currently connected and they are the connection owner.
+ */
+ public static function user_licensing_permission_check() {
+ $connection_manager = new Connection_Manager( 'jetpack' );
+
+ if ( $connection_manager->is_user_connected() && $connection_manager->is_connection_owner() ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_permission_manage_user_licenses', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Verify that user can manage_options
+ *
+ * @since 1.7.0
+ *
+ * @return bool Whether user has the capability 'manage_options'.
+ */
+ public static function can_manage_options_check() {
+ if ( current_user_can( 'manage_options' ) ) {
+ return true;
+ }
+
+ return new WP_Error( 'invalid_user_permission_view_admin', self::$user_permissions_error_msg, array( 'status' => rest_authorization_required_code() ) );
+ }
+
+ /**
+ * Validates that the parameter is a string.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 4.3.0
+ *
+ * @param string $value Value to check.
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
+ *
+ * @return bool|WP_Error
+ */
+ public static function validate_string( $value, $request, $param ) {
+ if ( ! is_string( $value ) ) {
+ /* translators: %s: The literal parameter name. Should not be translated. */
+ return new WP_Error( 'invalid_param', sprintf( esc_html__( '%s must be a string.', 'jetpack-licensing' ), $param ) );
+ }
+ return true;
+ }
+
+ /**
+ * Validates that the parameter is a non-negative integer (includes 0).
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 10.4.0
+ *
+ * @param int $value Value to check.
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ * @param string $param Name of the parameter passed to endpoint holding $value.
+ *
+ * @return bool|WP_Error
+ */
+ public static function validate_non_neg_int( $value, $request, $param ) {
+ if ( ! is_numeric( $value ) || $value < 0 ) {
+ return new WP_Error(
+ 'invalid_param',
+ /* translators: %s: The literal parameter name. Should not be translated. */
+ sprintf( esc_html__( '%s must be a non-negative integer.', 'jetpack-licensing' ), $param )
+ );
+ }
+ return true;
+ }
+
+ /**
+ * Update the last licensing error message.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 9.0.0
+ *
+ * @param WP_REST_Request $request The request.
+ *
+ * @return bool true.
+ */
+ public static function update_licensing_error( $request ) {
+ Licensing::instance()->log_error( $request['error'] );
+
+ return true;
+ }
+
+ /**
+ * Get the last licensing error message, if any.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 9.0.0
+ *
+ * @return string Licensing error message or empty string.
+ */
+ public static function get_licensing_error() {
+ return Licensing::instance()->last_error();
+ }
+
+ /**
+ * Set a Jetpack license
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 9.6.0
+ *
+ * @param WP_REST_Request $request The request.
+ *
+ * @return WP_REST_Response|WP_Error A response object if the option was successfully updated, or a WP_Error if it failed.
+ */
+ public static function set_jetpack_license( $request ) {
+ $license = trim( sanitize_text_field( $request['license'] ) );
+
+ if ( Licensing::instance()->append_license( $license ) ) {
+ return rest_ensure_response( array( 'code' => 'success' ) );
+ }
+
+ return new WP_Error(
+ 'setting_license_key_failed',
+ esc_html__( 'Could not set this license key. Please try again.', 'jetpack-licensing' ),
+ array( 'status' => 500 )
+ );
+ }
+
+ /**
+ * Gets the users licenses.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 10.4.0
+ *
+ * @return string|WP_Error A JSON object of user licenses if the request was successful, or a WP_Error otherwise.
+ */
+ public static function get_user_licenses() {
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ '/jetpack-licensing/user/licenses',
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'Content-Type' => 'application/json',
+ 'X-Forwarded-For' => ( new Visitor() )->get_ip( true ),
+ ),
+ )
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+ if ( 200 === $response_code ) {
+ $licenses = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ return $licenses;
+ } else {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack-licensing' ),
+ array( 'status' => $response_code )
+ );
+ }
+ }
+
+ /**
+ * Gets the users licenses counts.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 10.4.0
+ *
+ * @return string|WP_Error A JSON object of user license counts if the request was successful, or a WP_Error otherwise.
+ */
+ public static function get_user_license_counts() {
+ $wpcom_request = Client::wpcom_json_api_request_as_user(
+ '/jetpack-licensing/user/licenses/counts',
+ '2',
+ array(
+ 'method' => 'GET',
+ 'headers' => array(
+ 'Content-Type' => 'application/json',
+ 'X-Forwarded-For' => ( new Visitor() )->get_ip( true ),
+ ),
+ )
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+ if ( 200 === $response_code ) {
+ $license_counts = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ return $license_counts;
+ } else {
+ return new WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack-licensing' ),
+ array( 'status' => $response_code )
+ );
+ }
+ }
+
+ /**
+ * Update the user-licenses activation notice dismissal data.
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 10.4.0
+ *
+ * @param WP_REST_Request $request The request sent to the WP REST API.
+ *
+ * @return array|WP_Error
+ */
+ public static function update_licensing_activation_notice_dismiss( $request ) {
+
+ if ( ! isset( $request['last_detached_count'] ) ) {
+ return new WP_Error( 'invalid_param', esc_html__( 'Missing parameter "last_detached_count".', 'jetpack-licensing' ), array( 'status' => 404 ) );
+ }
+
+ $default = array(
+ 'last_detached_count' => null,
+ 'last_dismissed_time' => null,
+ );
+ $last_detached_count = ( '' === $request['last_detached_count'] )
+ ? $default['last_detached_count']
+ : $request['last_detached_count'];
+ $last_dismissed_time = ( '' === $request['last_detached_count'] )
+ ? $default['last_dismissed_time']
+ // Use UTC timezone and convert to ISO8601 format(DateTime::W3C) for best compatibility with JavaScript Date in all browsers.
+ : ( new \DateTime( 'NOW', new \DateTimeZone( 'UTC' ) ) )->format( \DateTime::W3C );
+
+ $notice_data = array(
+ 'last_detached_count' => $last_detached_count,
+ 'last_dismissed_time' => $last_dismissed_time,
+ );
+
+ Jetpack_Options::update_option( 'licensing_activation_notice_dismiss', $notice_data, true );
+ return rest_ensure_response( $notice_data );
+ }
+
+ /**
+ * Attach Jetpack licenses
+ *
+ * @since 1.7.0
+ *
+ * @since-jetpack 10.4.0
+ *
+ * @param WP_REST_Request $request The request.
+ *
+ * @return WP_REST_Response|WP_Error A response object
+ */
+ public static function attach_jetpack_licenses( $request ) {
+ $licenses = array_map(
+ function ( $license ) {
+ return trim( sanitize_text_field( $license ) );
+ },
+ $request['licenses']
+ );
+ return rest_ensure_response( Licensing::instance()->attach_licenses( $licenses ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php
new file mode 100644
index 00000000..13982d71
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-licensing/src/class-licensing.php
@@ -0,0 +1,359 @@
+register_endpoints();
+ }
+
+ /**
+ * Get Jetpack connection manager instance.
+ *
+ * @return Connection_Manager
+ */
+ protected function connection() {
+ static $connection;
+
+ if ( null === $connection ) {
+ $connection = new Connection_Manager();
+ }
+
+ return $connection;
+ }
+
+ /**
+ * Get the last license attach request error that has occurred, if any.
+ *
+ * @return string Human-readable error message or an empty string.
+ */
+ public function last_error() {
+ return Jetpack_Options::get_option( 'licensing_error', '' );
+ }
+
+ /**
+ * Log an error to be surfaced to the user at a later time.
+ *
+ * @param string $error Human-readable error message.
+ * @return void
+ */
+ public function log_error( $error ) {
+ $substr = function_exists( 'mb_substr' ) ? 'mb_substr' : 'substr';
+ Jetpack_Options::update_option( 'licensing_error', $substr( $error, 0, 1024 ) );
+ }
+
+ /**
+ * Get all stored licenses.
+ *
+ * @return string[] License keys.
+ */
+ public function stored_licenses() {
+ $licenses = (array) get_option( self::LICENSES_OPTION_NAME, array() );
+ $licenses = array_filter( $licenses, 'is_scalar' );
+ $licenses = array_map( 'strval', $licenses );
+ $licenses = array_filter( $licenses );
+
+ return $licenses;
+ }
+
+ /**
+ * Append a license
+ *
+ * @param string $license A jetpack license key.
+ * @return bool True if the option was updated with the new license, false otherwise.
+ */
+ public function append_license( $license ) {
+ $licenses = $this->stored_licenses();
+
+ array_push( $licenses, $license );
+
+ return update_option( self::LICENSES_OPTION_NAME, $licenses );
+ }
+
+ /**
+ * Make an authenticated WP.com XMLRPC multicall request to attach the provided license keys.
+ *
+ * @param string[] $licenses License keys to attach.
+ * @return Jetpack_IXR_ClientMulticall
+ */
+ protected function attach_licenses_request( array $licenses ) {
+ $xml = new Jetpack_IXR_ClientMulticall( array( 'timeout' => 30 ) );
+
+ foreach ( $licenses as $license ) {
+ $xml->addCall( 'jetpack.attachLicense', $license );
+ }
+
+ $xml->query();
+
+ return $xml;
+ }
+
+ /**
+ * Attach the given licenses.
+ *
+ * @param string[] $licenses Licenses to attach.
+ * @return array|WP_Error Results for each license (which may include WP_Error instances) or a WP_Error instance.
+ */
+ public function attach_licenses( array $licenses ) {
+ if ( ! $this->connection()->has_connected_owner() ) {
+ return new WP_Error( 'not_connected', __( 'Jetpack doesn\'t have a connected owner.', 'jetpack-licensing' ) );
+ }
+
+ if ( empty( $licenses ) ) {
+ return array();
+ }
+
+ $xml = $this->attach_licenses_request( $licenses );
+
+ if ( $xml->isError() ) {
+ $error = new WP_Error( 'request_failed', __( 'License attach request failed.', 'jetpack-licensing' ) );
+ $error->add( $xml->getErrorCode(), $xml->getErrorMessage() );
+ return $error;
+ }
+
+ $results = array_map(
+ function ( $response ) {
+ if ( isset( $response['faultCode'] ) || isset( $response['faultString'] ) ) {
+ return new WP_Error( $response['faultCode'], $response['faultString'] );
+ }
+
+ return $response;
+ },
+ (array) $xml->getResponse()
+ );
+
+ return $results;
+ }
+
+ /**
+ * Attach all stored licenses.
+ *
+ * @return array|WP_Error Results for each license (which may include WP_Error instances) or a WP_Error instance.
+ */
+ public function attach_stored_licenses() {
+ $licenses = $this->stored_licenses();
+ $results = $this->attach_licenses( $licenses );
+
+ if ( is_wp_error( $results ) ) {
+ if ( 'request_failed' === $results->get_error_code() ) {
+ $this->log_error(
+ __( 'Failed to attach your Jetpack license(s). Please try reconnecting Jetpack.', 'jetpack-licensing' )
+ );
+ }
+
+ return $results;
+ }
+
+ $failed = array();
+
+ foreach ( $results as $index => $result ) {
+ if ( isset( $licenses[ $index ] ) && is_wp_error( $result ) ) {
+ $failed[] = $licenses[ $index ];
+ }
+ }
+
+ if ( ! empty( $failed ) ) {
+ $this->log_error(
+ sprintf(
+ /* translators: %s is a comma-separated list of license keys. */
+ __( 'The following Jetpack licenses are invalid, already in use, or revoked: %s', 'jetpack-licensing' ),
+ implode( ', ', $failed )
+ )
+ );
+ }
+
+ return $results;
+ }
+
+ /**
+ * Attach all stored licenses during connection flow for the connection owner.
+ *
+ * @return void
+ */
+ public function attach_stored_licenses_on_connection() {
+ if ( $this->connection()->is_connection_owner() ) {
+ $this->attach_stored_licenses();
+ }
+ }
+
+ /**
+ * Is the current user allowed to use the Licensing Input UI?
+ *
+ * @since 1.4.0
+ * @return bool
+ */
+ public static function is_licensing_input_enabled() {
+ /**
+ * Filter that checks if the user is allowed to see the Licensing UI. `true` enables it.
+ *
+ * @since 1.4.0
+ *
+ * @param bool False by default.
+ */
+ return apply_filters( 'jetpack_licensing_ui_enabled', false ) && current_user_can( 'jetpack_connect_user' );
+ }
+
+ /**
+ * Gets the user-licensing activation notice dismissal info.
+ *
+ * @since 10.4.0
+ * @return array
+ */
+ public function get_license_activation_notice_dismiss() {
+
+ $default = array(
+ 'last_detached_count' => null,
+ 'last_dismissed_time' => null,
+ );
+
+ if ( $this->connection()->is_user_connected() && $this->connection()->is_connection_owner() ) {
+ return Jetpack_Options::get_option( 'licensing_activation_notice_dismiss', $default );
+ }
+
+ return $default;
+ }
+
+ /**
+ * Load current user's licenses.
+ *
+ * @param bool $unattached_only Only return unattached licenses.
+ *
+ * @return array
+ */
+ public function get_user_licenses( $unattached_only = false ) {
+ $licenses = Endpoints::get_user_licenses();
+
+ if ( empty( $licenses->items ) ) {
+ return array();
+ }
+
+ $items = $licenses->items;
+
+ if ( $unattached_only ) {
+ $items = array_filter(
+ $items,
+ static function ( $item ) {
+ return $item->attached_at === null;
+ }
+ );
+ }
+
+ return $items;
+ }
+
+ /**
+ * If the destination URL is checkout page,
+ * see if there are unattached licenses they could use instead of getting a new one.
+ * If found, redirect the user to license activation.
+ *
+ * @param string $dest_url User's destination URL.
+ *
+ * @return void
+ */
+ public function handle_user_connected_redirect( $dest_url ) {
+ if ( ! preg_match( '#^https://[^/]+/checkout/#i', $dest_url ) ) {
+ return;
+ }
+
+ $licenses = $this->get_user_licenses( true );
+ $plugin_slug = null;
+
+ $query_string = wp_parse_url( $dest_url, PHP_URL_QUERY );
+ if ( $query_string ) {
+ parse_str( $query_string, $query_args );
+
+ if ( $query_args['redirect_to']
+ && preg_match( '/^admin\.php\?page=(jetpack-\w+)/i', $query_args['redirect_to'], $matches )
+ ) {
+ $plugin_slug = $matches[1];
+ }
+ }
+
+ /**
+ * Check for the user's unattached licenses.
+ *
+ * @since 3.8.2
+ *
+ * @param bool $has_license Whether a license was already found.
+ * @param array $licenses Unattached licenses belonging to the user.
+ * @param string $plugin_slug Slug of the plugin that initiated the flow.
+ */
+ if ( $plugin_slug && count( $licenses )
+ && apply_filters( 'jetpack_connection_user_has_license', false, $licenses, $plugin_slug )
+ ) {
+ wp_safe_redirect( '/wp-admin/admin.php?page=my-jetpack#/add-license' );
+ exit;
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md
new file mode 100644
index 00000000..79a55848
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/CHANGELOG.md
@@ -0,0 +1,223 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [2.0.4] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [2.0.3] - 2024-05-20
+### Changed
+- Replaced heredoc syntax with strings. [#37396]
+
+## [2.0.2] - 2024-03-18
+### Changed
+- Internal updates.
+
+## [2.0.1] - 2024-03-12
+### Changed
+- Internal updates.
+
+## [2.0.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [1.6.3] - 2023-09-19
+
+- Minor internal updates.
+
+## [1.6.2] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [1.6.1] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [1.6.0] - 2023-04-04
+### Added
+- Add new method to get a base64 encoded SVG of the Jetpack logo. [#29418]
+
+## [1.5.22] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [1.5.21] - 2023-01-30
+### Changed
+- Updated styles for Just in Time Messages (notices) [#27515]
+
+## [1.5.20] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [1.5.19] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [1.5.18] - 2022-11-07
+### Changed
+- Updated package dependencies.
+
+## [1.5.17] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [1.5.16] - 2022-06-21
+### Changed
+- Renaming master to trunk. [#24661]
+
+## [1.5.15] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [1.5.14] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [1.5.13] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+
+## [1.5.12] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [1.5.11] - 2021-11-30
+### Changed
+- Colors: update Jetpack Primary color to match latest brand book.
+
+## [1.5.10] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [1.5.9] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [1.5.8] - 2021-10-07
+### Changed
+- Updated package dependencies
+
+## [1.5.7] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [1.5.6] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+- update annotations versions
+
+## [1.5.5] - 2021-05-25
+### Changed
+- Updated package dependencies.
+
+## [1.5.4] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## [1.5.3] - 2021-03-30
+### Added
+- Composer alias for dev-master, to improve dependencies
+
+### Changed
+- Update package dependencies.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+## [1.5.2] - 2021-02-05
+
+- CI: Make tests more generic
+
+## [1.5.1] - 2021-01-19
+
+- Add mirror-repo information to all current composer packages
+- Monorepo: Reorganize all projects
+
+## [1.5.0] - 2020-12-07
+
+- Pin dependencies
+- Packages: Update for PHP 8 testing
+
+## [1.4.0] - 2020-08-13
+
+- CI: Try collect js coverage
+
+## [1.3.0] - 2020-06-22
+
+- PHPCS: Clean up the packages
+- PHPCS Updates after WPCS 2.3
+
+## [1.2.0] - 2020-03-27
+
+- Use dynamic Jetpack logos on JITMs
+
+## [1.1.4] - 2019-11-08
+
+- Packages: Use classmap instead of PSR-4
+
+## [1.1.2] - 2019-10-28
+
+- Packages: Add gitattributes files to all packages that need th…
+
+## [1.1.1] - 2019-09-20
+
+- Docs: Unify usage of @package phpdoc tags
+
+## [1.1.0] - 2019-06-11
+
+- Feature/jetpack packages pt 1. (May 31 - June 6)
+- Update/package logo add gray
+- Packages: Move JITM tests to package and fix deps
+- Update Jetpack to use new JITM package
+- Packages: Make logo package tests independent
+
+## 1.0.0 - 2019-05-29
+
+- Packages: Add a basic Jetpack Logo package
+
+[2.0.4]: https://github.com/Automattic/jetpack-logo/compare/v2.0.3...v2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-logo/compare/v2.0.2...v2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-logo/compare/v2.0.1...v2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-logo/compare/v2.0.0...v2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-logo/compare/v1.6.3...v2.0.0
+[1.6.3]: https://github.com/Automattic/jetpack-logo/compare/v1.6.2...v1.6.3
+[1.6.2]: https://github.com/Automattic/jetpack-logo/compare/v1.6.1...v1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-logo/compare/v1.6.0...v1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-logo/compare/v1.5.22...v1.6.0
+[1.5.22]: https://github.com/Automattic/jetpack-logo/compare/v1.5.21...v1.5.22
+[1.5.21]: https://github.com/Automattic/jetpack-logo/compare/v1.5.20...v1.5.21
+[1.5.20]: https://github.com/Automattic/jetpack-logo/compare/v1.5.19...v1.5.20
+[1.5.19]: https://github.com/Automattic/jetpack-logo/compare/v1.5.18...v1.5.19
+[1.5.18]: https://github.com/Automattic/jetpack-logo/compare/v1.5.17...v1.5.18
+[1.5.17]: https://github.com/Automattic/jetpack-logo/compare/v1.5.16...v1.5.17
+[1.5.16]: https://github.com/Automattic/jetpack-logo/compare/v1.5.15...v1.5.16
+[1.5.15]: https://github.com/Automattic/jetpack-logo/compare/v1.5.14...v1.5.15
+[1.5.14]: https://github.com/Automattic/jetpack-logo/compare/v1.5.13...v1.5.14
+[1.5.13]: https://github.com/Automattic/jetpack-logo/compare/v1.5.12...v1.5.13
+[1.5.12]: https://github.com/Automattic/jetpack-logo/compare/v1.5.11...v1.5.12
+[1.5.11]: https://github.com/Automattic/jetpack-logo/compare/v1.5.10...v1.5.11
+[1.5.10]: https://github.com/Automattic/jetpack-logo/compare/v1.5.9...v1.5.10
+[1.5.9]: https://github.com/Automattic/jetpack-logo/compare/v1.5.8...v1.5.9
+[1.5.8]: https://github.com/Automattic/jetpack-logo/compare/v1.5.7...v1.5.8
+[1.5.7]: https://github.com/Automattic/jetpack-logo/compare/v1.5.6...v1.5.7
+[1.5.6]: https://github.com/Automattic/jetpack-logo/compare/v1.5.5...v1.5.6
+[1.5.5]: https://github.com/Automattic/jetpack-logo/compare/v1.5.4...v1.5.5
+[1.5.4]: https://github.com/Automattic/jetpack-logo/compare/v1.5.3...v1.5.4
+[1.5.3]: https://github.com/Automattic/jetpack-logo/compare/v1.5.2...v1.5.3
+[1.5.2]: https://github.com/Automattic/jetpack-logo/compare/v1.5.1...v1.5.2
+[1.5.1]: https://github.com/Automattic/jetpack-logo/compare/v1.5.0...v1.5.1
+[1.5.0]: https://github.com/Automattic/jetpack-logo/compare/v1.4.0...v1.5.0
+[1.4.0]: https://github.com/Automattic/jetpack-logo/compare/v1.3.0...v1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-logo/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/Automattic/jetpack-logo/compare/v1.1.4...v1.2.0
+[1.1.4]: https://github.com/Automattic/jetpack-logo/compare/v1.1.2...v1.1.4
+[1.1.2]: https://github.com/Automattic/jetpack-logo/compare/v1.1.1...v1.1.2
+[1.1.1]: https://github.com/Automattic/jetpack-logo/compare/v1.1.0...v1.1.1
+[1.1.0]: https://github.com/Automattic/jetpack-logo/compare/v1.0.0...v1.1.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/composer.json
new file mode 100644
index 00000000..e3ebc4e6
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/composer.json
@@ -0,0 +1,41 @@
+{
+ "name": "automattic/jetpack-logo",
+ "description": "A logo for Jetpack",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "2.0.x-dev"
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php
new file mode 100644
index 00000000..31b5b501
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-logo/src/class-logo.php
@@ -0,0 +1,122 @@
+ tag.
+ * - jetpack-logo__icon-circle: the circle of the Jetpack mark.
+ * - jetpack-logo__icon-triangle: two shapes that correspond to each triangle in the Jetpack mark.
+ * - jetpack-logo__icon-text: the Jetpack lettering.
+ *
+ * @var string
+ */
+const JETPACK_LOGO_SVG = '
+
+';
+
+/**
+ * Create and render a Jetpack logo.
+ */
+class Logo {
+
+ /**
+ * Return the Jetpack logo.
+ *
+ * @return string The Jetpack logo.
+ */
+ public function render() {
+ return JETPACK_LOGO_SVG;
+ }
+
+ /**
+ * Return string containing the Jetpack logo.
+ *
+ * @since 1.1.4
+ * @since-jetpack 7.5.0
+ *
+ * @param bool $logotype Should we use the full logotype (logo + text). Default to false.
+ *
+ * @return string
+ */
+ public function get_jp_emblem( $logotype = false ) {
+ $logo_text = $this->get_jp_logo_parts();
+ return sprintf(
+ '',
+ ( true === $logotype ? '118' : '32' ),
+ ( true === $logotype ? $logo_text['logo'] . $logo_text['text'] : $logo_text['logo'] )
+ );
+ }
+
+ /**
+ * Return string containing the Jetpack logo in a slightly larger format than get_jp_emblem().
+ *
+ * @since 1.1.4
+ * @param bool $logotype Should we use the full logotype (logo + text). Default to false.
+ * @return string
+ */
+ public function get_jp_emblem_larger( $logotype = false ) {
+ $logo_text = $this->get_jp_logo_parts();
+ return sprintf(
+ '',
+ ( true === $logotype ? '118' : '32' ),
+ ( true === $logotype ? $logo_text['logo'] . $logo_text['text'] : $logo_text['logo'] )
+ );
+ }
+
+ /**
+ * Return array containing the Jetpack logo and text
+ *
+ * @since 1.6.0 - Added $color parameter.
+ *
+ * @param string $color The color of the logo.
+ *
+ * @return array
+ */
+ private function get_jp_logo_parts( $color = '#069e08' ) {
+ return array(
+ 'logo' => '',
+ 'text' => '
+
+
+
+
+
+ ',
+ );
+ }
+
+ /**
+ * Return a base64 encoded SVG of the Jetpack logo.
+ * Can be used as a data URI to use the logo inline in CSS.
+ *
+ * @since 1.6.0
+ *
+ * @param string $color The color of the logo.
+ *
+ * @return string
+ */
+ public function get_base64_logo( $color = '#ffffff' ) {
+ $logo_text = $this->get_jp_logo_parts( $color );
+ $base_logo = sprintf(
+ '',
+ $logo_text['logo']
+ );
+ $encoded_logo = base64_encode( $base_logo ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode -- The encoded version is used as data URI to use the logo in CSS.
+
+ return 'data:image/svg+xml;base64,' . $encoded_logo;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md
new file mode 100644
index 00000000..a450fed4
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/CHANGELOG.md
@@ -0,0 +1,1925 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [4.35.3] - 2024-09-06
+### Fixed
+- Optimize repeated requests for unavailable WPCOM. [#39218]
+
+## [4.35.2] - 2024-09-06
+### Changed
+- Internal updates.
+
+## [4.35.1] - 2024-09-05
+### Changed
+- Internal updates.
+
+## [4.35.0] - 2024-09-05
+### Added
+- My Jetpack: add support for feature-specific handling to product interstitials. [#38661]
+
+### Changed
+- Jetpack AI product page: add fair usage link on over quota notice [#39192]
+- Updated package dependencies. [#39176]
+
+### Fixed
+- Gracefully fail when user data fetch failed. [#39179]
+
+## [4.34.0] - 2024-09-02
+### Changed
+- My Jetpack: show over quota notice and period usage counter for unlimited plans [#39129]
+- We update Welcome Flow A/B experiment to test other things [#39154]
+
+### Fixed
+- My Jetpack: change Jetpack AI post checkout URL so the redirect works [#39166]
+
+## [4.33.1] - 2024-08-29
+### Changed
+- Admin menu: change order of Jetpack sub-menu items [#39095]
+- My Jetpack: reflect tier filters properly on product class and UI. Fix little nuances with date constructor [#39074]
+- Updated package dependencies. [#39111]
+
+### Fixed
+- Don't consider user lifecycle status when repeating evaluation [#39069]
+- My Jetpack: Fix the popover and active button of the Bboost card are overlapping [#39067]
+
+## [4.33.0] - 2024-08-26
+### Added
+- Add context switching to videopress card from yearly views to monthly views [#38979]
+
+### Changed
+- My Jetpack: AI product class to handle better disabling tiers [#38989]
+- Updated package dependencies. [#39004]
+
+### Fixed
+- allow user currency in My Jetpack pricing [#38977]
+- Fix tooltip title for videopress card [#39030]
+
+## [4.32.4] - 2024-08-21
+### Changed
+- Removed unnecessary WAF dependency in My Jetpack. [#38942]
+
+### Fixed
+- Notification bubbles: avoid PHP warning when information is missing. [#38963]
+- Revert recent SVG image optimizations. [#38981]
+
+## [4.32.3] - 2024-08-19
+### Added
+- Add stat trends for videopress card. [#38868]
+- Add tooltip to VideoPress card. [#38842]
+- Add value to active card state on VideoPress My Jetpack card. [#38812]
+
+### Changed
+- Updated package dependencies. [#38893]
+
+### Fixed
+- Lossless image optimization for images (should improve performance with no visible changes). [#38750]
+- My Jetpack: ensure product screens redirect to the correct post-checkout URLs. [#38704]
+
+## [4.32.2] - 2024-08-15
+### Changed
+- Updated package dependencies. [#38665]
+
+### Fixed
+- fix empty hrefs causing page reload [#38845]
+
+## [4.32.1] - 2024-08-09
+### Added
+- Add value to the inactive state on the VideoPress card in My Jetpack [#38748]
+
+### Changed
+- Update uses of useConnection to useMyJetpackConnection and improve typing in a few places [#38721]
+
+### Removed
+- Tests: Removed react-test-renderer. [#38755]
+
+### Fixed
+- My Jetpack: fix a bug where a user would see and infinite loading spinner when trying to connect Jetpack with one click in the Welcome flow. [#38813]
+
+## [4.32.0] - 2024-08-05
+### Added
+- Add Tracks events for Welcome Flow [#38641]
+
+### Changed
+- change Jetpack AI product page link redirect [#38691]
+- copy updates [#38648]
+- Modify the Google Analytics notice to notify of the feature removal. [#38701]
+
+## [4.31.0] - 2024-08-01
+### Added
+- Update Welcome Banner and set async site-only connection [#38534]
+
+### Changed
+- Fixup versions [#38612]
+- My Jetpack: modify Jetpack AI product class and interstitial links [#38602]
+- React: Changing global JSX namespace to React.JSX [#38585]
+
+## [4.30.0] - 2024-07-29
+### Added
+- Async card update after async site connection [#38549]
+- My Jetpack: add A/A experiment to test for correct random assignment and prevent bias in metric performance. [#38327]
+- Show View button on product card along with upgrade cta [#38550]
+
+### Changed
+- Final minor enhancements to the Protect product card in My Jetpack. [#38420]
+
+### Removed
+- Remove functionality that hid 1 value on the backup card for mid-sized screens [#38441]
+
+### Fixed
+- Include Jetpack Legacy plans when checking if user has social included with plan [#38516]
+- Update all tracks to snake case, camel case is not supported [#38576]
+
+## [4.29.0] - 2024-07-22
+### Added
+- Added the auto-firewall status to the Protect product card in My Jetpack. [#38332]
+- Added the number of logins blocked to the Protect card in My Jetpack. [#38396]
+
+### Changed
+- Connection Screen: Removed mention of Stats from the list of available free features. [#38328]
+- Display My Jetpack products segemented by ownership. [#38283]
+- My Jetpack: Updated social icons in the connection screen. [#38334]
+- Updated statuses to make more sense in relation to ownership. [#38390]
+
+## [4.28.0] - 2024-07-15
+### Added
+- Add scan/threat info to the Protect card in My Jetpack. [#38165]
+
+### Changed
+- Protect card: Add the Last scan time (with tooltip) based on product state. [#38091]
+- Updated package dependencies. [#38091]
+
+### Fixed
+- Fix Learn More link destination when the site was never connected. [#38225]
+
+## [4.27.2] - 2024-07-10
+### Fixed
+- Social: Fixed plan slug [#38222]
+
+## [4.27.1] - 2024-07-03
+### Changed
+- Updated package dependencies. [#38132]
+
+## [4.27.0] - 2024-07-01
+### Added
+- Add the Google Analytics deprecation notice. [#38078]
+
+### Changed
+- Reduce amount of historically active modules updates by only triggering on activation of plugin is a jetpack plugin [#38065]
+
+### Fixed
+- Fix an issue where the connection error hook was always resetting the notice [#38120]
+
+## [4.26.0] - 2024-06-27
+### Changed
+- Jetpack AI: Add Title Optimization section on the product page. [#38072]
+
+## [4.25.4] - 2024-06-26
+### Fixed
+- Move historically active modules sync to admin_init [#38041]
+
+## [4.25.3] - 2024-06-24
+### Added
+- Add more default args for tracks events [#37974]
+
+## [4.25.2] - 2024-06-21
+### Fixed
+- Remove the need for api requests in broken modules check [#37908]
+
+## [4.25.1] - 2024-06-17
+### Fixed
+- Remove check for broken modules from red bubble connection check [#37911]
+
+## [4.25.0] - 2024-06-17
+### Changed
+- Show tooltip on card hover instead of letter hover [#37858]
+- Update connection footer to conditionally render warnings or errors [#37802]
+- Update connection status card tests to TS [#37829]
+
+## [4.24.7] - 2024-06-13
+### Changed
+- Updated package dependencies. [#37796]
+
+## [4.24.6] - 2024-06-11
+### Changed
+- Conditionally show connection banner as error or info [#37707]
+- Updated package dependencies. [#37779]
+
+## [4.24.5] - 2024-06-10
+### Changed
+- Change codebase to use clsx instead of classnames. [#37708]
+
+## [4.24.4] - 2024-06-10
+### Added
+- Add mechanism to track previously working plugins [#37537]
+
+### Changed
+- Move PRODUCT_STATUSES to constants file [#37748]
+- Send user to siteless pricing page if site is not connected [#37667]
+
+## [4.24.3] - 2024-06-05
+### Changed
+- Updated package dependencies. [#37669]
+
+## [4.24.2] - 2024-06-03
+### Changed
+- Update ToS wording. [#37536]
+- Update CTA on A4A banner in My Jetpack. [#37628]
+
+## [4.24.1] - 2024-05-24
+### Changed
+- Update Search to require user connection. [#37496]
+
+## [4.24.0] - 2024-05-23
+### Changed
+- Improve the active/inactive statuses on My Jetpack. [#37217]
+
+## [4.23.3] - 2024-05-20
+### Added
+- Add tracks events for dropdown on action buttons. [#37292]
+
+### Changed
+- Updated package dependencies. [#37379] [#37380] [#37382]
+
+## [4.23.2] - 2024-05-09
+### Changed
+- My Jetpack Agency banner copy change. [#37248]
+
+### Fixed
+- Fix typo [#37303]
+
+## [4.23.1] - 2024-05-08
+### Changed
+- Update dependencies.
+
+## [4.23.0] - 2024-05-06
+### Added
+- Add a has_free_offering boolean on My Jetpack products. [#36710]
+- Add copy for AI features on connection screen. [#37218]
+- Define `$module_name` static property on `Hybrid_Product` (defaulting to null). [#37201]
+- Jetpack AI: Add new badge to Featured Image video on the product page. [#37197]
+- My Jetpack: Add errors from the connection package to the new notice component. [#36840]
+
+### Changed
+- Change "go back" in My Jetpack interstitials to always return to the My Jetpack page. [#36685]
+- Fix z-index issue and close action button dropdown when clicked outside. [#37169]
+- Jetpack AI: Add featured image generation as a feature on the product interstitial. [#37199]
+- Jetpack AI: Include video about featured image generation on the product page. [#37192]
+- Updated package dependencies. [#37147] [#37148] [#37160]
+
+## [4.22.3] - 2024-04-29
+### Changed
+- Internal updates.
+
+## [4.22.2] - 2024-04-25
+### Fixed
+- My Jetpack: Fix issue where the TOS component was being called inside of a
, throwing a warning that
can't be a descendant of
. This also fixes the font size of the TOS text. [#37034]
+
+## [4.22.1] - 2024-04-22
+### Changed
+- Internal updates.
+
+## [4.22.0] - 2024-04-11
+### Added
+- Add new tracking event for product activations made through My Jetpack [#36745]
+- My Jetpack: add a way to connect a Jetpack site to WordPress.com asynchronously and update the message in the notice to reflect that. [#36771]
+
+### Fixed
+- Ensure page_view gets loaded before product_card_loaded [#36790]
+
+## [4.21.0] - 2024-04-08
+### Added
+- Add 'from' property to connection call to WP.com. [#36741]
+- My Jetpack: Update Notice component to allow adding a loading text when an action is in a loading state. Add a new resetNotice action to NoticeContext. [#36614]
+
+### Changed
+- My Jetpack: Show Boost score increase in Boost product card. [#36072]
+- Updated package dependencies. [#36756] [#36760] [#36761]
+- Update My Jetpack to use the Notice component from @automattic/jetpack-components and be more consistent with the other notices in Jetpack. [#36711]
+
+### Removed
+- My Jetpack: Removed custom Notice component from My Jetpack. [#36772]
+- My Jetpack: Remove red bubble from connection notice in favor of using the status of the Notice component. [#36773]
+
+### Fixed
+- Fix cache on front end request for boost speed scores [#36700]
+- fix tier upgrades in my Jetpack [#36705]
+
+## [4.20.2] - 2024-04-02
+### Fixed
+- Fix Boost score inconsistency [#36679]
+
+## [4.20.1] - 2024-04-01
+### Added
+- Change Phan baselines. [#36627]
+
+## [4.20.0] - 2024-03-29
+### Added
+- Track active red bubble slugs on My Jetpack page view [#36611]
+
+### Fixed
+- Better handling on product interstitial pages if the site already has a paid product [#36570]
+- Shows Jetpack CRM card as active on My Jetpack if the plugin is installed and active [#36594]
+
+## [4.19.0] - 2024-03-27
+### Added
+- Add red bubble to notices tied to red bubble notifications [#36543]
+- My Jetpack: add a version of WordPress' Notice component to My Jetpack considering the context of how we use notices on that screen [#36551]
+
+### Changed
+- Updated package dependencies. [#36539, #36585]
+
+### Fixed
+- Fixed Jetpack Creator going to the wrong screen when the free version is selected" [#36547]
+- Fixes some pricing showing twice by connecting sites that select a free option [#36533]
+
+## [4.18.0] - 2024-03-25
+### Added
+- Hook into red bubble notification when bad installation is detected [#36449]
+- Jetpack AI: add notices on product page for exhausted requests [#35910]
+- Jetpack AI: add plans/tier information on product page and corresponding CTAs [#35910]
+- Jetpack AI: add support and create post links on product page [#35910]
+- My Jetpack: add AI product page view event [#36488]
+- My Jetpack: add feedback link on Jetpack AI product page [#35910]
+- My Jetpack: AI pricing table is skipped once the user has opted for the free version [#35910]
+- My Jetpack: change AI product for tiered pricing table display [#35910]
+
+### Changed
+- Add notice priorities to My Jetpack [#36438]
+- Jetpack AI: address responsive issues on the styles [#35910]
+- My Jetpack: AI product page styles update and responsive fixes [#35910]
+- My Jetpack: change AI card action button target for upgraded users, point to product page [#35910]
+
+### Removed
+- My Jetpack: remove Jetpack AI code added throughout the new product page project [#35910]
+- Removed reference to Creator Network, which is being deprecated. [#36168]
+
+### Fixed
+- Boost tooltips: fix typo in string. [#36520]
+- My Jetpack: fix AI interstitial "remain free" flow [#35910]
+- My Jetpack: fix interstitial event property malformed name productSlug -> product_slug [#36486]
+- My Jetpack: fix spacing issues on the new product page [#35910]
+- My Jetpack: new AI interstitial margin on admin page was messing with correct top spacing [#35910]
+
+## [4.17.1] - 2024-03-18
+### Added
+- Add a loaded event for My Jetpack product cards [#36397]
+
+## [4.17.0] - 2024-03-14
+### Changed
+- Rewrite My Jetpack hooks to Typescript [#36288]
+
+## [4.16.0] - 2024-03-12
+### Added
+- Add a red bubble notification that shows if the site is disconnected [#36263]
+- Add README to data directory [#36301]
+- Add whitelist to show errors only for certain queries [#36261]
+
+### Changed
+- Migrate Stats counts out of redux and into tanstack queries [#36195]
+- Replace window state calls with util function [#36271]
+- Rewrite My Jetpack utils to typescript [#36296]
+- Show small stats card in table if large stats card isn't showing [#36136]
+- Updated package dependencies. [#36325]
+- Update query hooks for my-jetpack data" [#36257]
+- Update useMyJetpackConnection hook to TypeScript [#36300]
+
+### Removed
+- Removing redux store [#36256]
+
+## [4.15.0] - 2024-03-07
+### Added
+- Refactor My Jetpack's backup related redux state to react query. [#35982]
+
+### Changed
+- Migrate dismiss welcome banner to tanstack [#36199]
+- Migrate global notices to context [#36201]
+- Migrate My Jetpack's licenses query and state to react-query [#36029]
+- Moved lifecycle stats function out of redux [#36205]
+- Updating purchase related redux data to tanstack/react [#35994]
+
+### Removed
+- Connected Product offer is not being used, removing it to clean up a bit [#36203]
+
+### Fixed
+- fix a few My Jetpack bugs when main plugin is not installed [#36139]
+- Intersitital tables were not visibly loading when pressed [#36236]
+
+## [4.14.0] - 2024-03-04
+### Changed
+- Migrate My Jetpack zendesk state to react-query [#36028]
+- Updated package dependencies.
+
+### Fixed
+- Add registration nonce to connect screen in My Jetpack [#36133]
+
+## [4.13.0] - 2024-03-01
+### Added
+- Add site lifecycle status guess to My Jetpack [#35815]
+
+### Changed
+- Changed product plan checks on My Jetpack cards [#36046]
+- Display different Boost card tooltip content based on score letter grade. [#35863]
+- Improve consistency and fix bugs in product start and checkout flows [#35908]
+- Instanciate the Boost Score API (new Speed_Score()) in My Jetpack. [#36080]
+- My Jetpack: add Tracks events to connection section [#35804]
+- Refactor react-query to reduce code repetition [#35990]
+
+### Fixed
+- fixed the purchase query for the boost card [#36004]
+
+## [4.12.1] - 2024-02-27
+### Added
+- My Jetpack: Add an info popover in the Boost product card. [#35731]
+
+## [4.12.0] - 2024-02-26
+### Changed
+- My Jetpack: decouple Jetpack AI insterstitial component [#35836]
+- Remove translation of product names [#35830]
+- Updating purchases state to use data query instead of redux [#35697]
+
+### Removed
+- Remove kebab menu on My Jetpack cards [#35829]
+
+## [4.11.0] - 2024-02-22
+### Added
+- Adding accesible text for external links on connection page and footer [#35733]
+
+### Changed
+- change status and action of My Jetpack cards when plugin is missing [#35718]
+- ESlint: disabled redundant role rule [#35800]
+- My Jetpack: add product slugs to click events on interstitials [#35740]
+- My Jetpack: let tier data pass on quantity data to checkout process for proper checkout URL crafting [#35817]
+- Updated package dependencies. [#35793]
+
+### Fixed
+- Backup Card: made stats readable by screen readers [#35786]
+- Connection Screen: make VoiceOver announce lists as such [#35736]
+- Do not initialize My Jetpack when in Offline mode. [#35807]
+- Fix wrong prop type passed to ConnectedProductCard [#35789]
+
+## [4.10.0] - 2024-02-19
+### Added
+- Add Boost Speed Score into My Jetpack Boost product card [#35606]
+- Add connection indicator for screen readers [#35714]
+
+### Fixed
+- Improved accessibility of Dismiss button in Connection Banner [#35694]
+- My Jeptack Connection: Make footer logos a list for better screen readers interpretation. [#35667]
+- My Jetpack: add label for screen readers to connect page close button [#35712]
+
+## [4.9.2] - 2024-02-13
+### Changed
+- My Jetpack: various improvements to the Stats card. [#35355]
+- Updated package dependencies. [#35608]
+
+## [4.9.1] - 2024-02-12
+### Added
+- Add My Jetpack link to standalone plugins missing it [#35523]
+
+## [4.9.0] - 2024-02-07
+### Changed
+- Add pricing info for AI and CRM on My Jetpack [#35457]
+- Update the description of some cards to better describe the product on My Jetpack page [#35428]
+
+### Fixed
+- Fixes issue on My Jetpack interstitials where some prices are 1 cent off [#35492]
+
+## [4.8.0] - 2024-02-05
+### Added
+- Add tracking info to the Jetpack Manage Banner CTA [#35378]
+- My Jetpack: support redirect_to parameter on the product interstitial. [#35263]
+
+### Changed
+- Update CTA copy on the connection banner to make it clear which type of connection we are going to request [#35401]
+- Updated package dependencies.
+- Update product cards on My Jetpack to always display the status indidicator. [#35377]
+
+### Fixed
+- Fix issue where most products are not installing their standalone product upon purchase [#35399]
+
+## [4.7.0] - 2024-01-29
+### Changed
+- Update the UpsellBanner to use the Card component from WP components. [#35223]
+
+### Removed
+- UpsellBanner component moved to js-packages/components [#35228]
+
+## [4.6.2] - 2024-01-22
+### Added
+- My Jetpack: add contact us event for Jetpack AI [#35136]
+
+## [4.6.1] - 2024-01-22
+### Changed
+- Display Jetpack Protect product card for all users. [#35142]
+- Ensure that interstitial tables go straight to checkout just like insterstitial cards [#35049]
+
+## [4.6.0] - 2024-01-18
+### Added
+- Add hosting provider check. [#34864]
+- Add Jetpack Manage banner. [#35078]
+
+## [4.5.0] - 2024-01-18
+### Changed
+- Use blog ID instead of site slug in checkout URL. [#34976]
+
+## [4.4.0] - 2024-01-15
+### Changed
+- add plan check to My Jetpack Akismet product card [#34905]
+- Prevent new users from seeing JITMs [#34927]
+- To avoid displaying the Welcome banner to every user, now we only display it to new users. [#34883]
+
+## [4.3.0] - 2024-01-08
+### Added
+- Add a check to determine if a user is "new" to Jetpack. [#34821]
+- Add a button that links to the connection screen to the Welcome Banner in My Jetpack. [#34858]
+
+### Changed
+- Add a product interstitial in My Jetpack for stats. [#34772]
+- Added an image to Social interstitial. [#34814]
+- Update Akismet card on My Jetpack to go to interstitial screen when there is no API key. [#34817]
+
+## [4.2.1] - 2024-01-04
+### Changed
+- Updated package dependencies. [#34815] [#34816]
+
+### Fixed
+- My Jetpack: Jetpack footer links are now consistent with footers in rest of Jetpack screens. [#34787]
+
+## [4.2.0] - 2024-01-02
+### Fixed
+- Show JP Creator as active when JP Complete is purchased. [#34806]
+
+## [4.1.4] - 2023-12-20
+### Changed
+- Updated package dependencies. [#34694]
+
+## [4.1.3] - 2023-12-11
+### Changed
+- Updated Jetpack AI interstitial to repeat the feature's list on all the tiers. [#34541]
+
+## [4.1.2] - 2023-12-06
+### Changed
+- Updated package dependencies. [#34416]
+
+### Fixed
+- Creator Card: fix typo. [#34478]
+
+## [4.1.1] - 2023-12-05
+### Fixed
+- My Jetpack: Fix outdated product cache issue when enabling tiers. [#34428]
+
+## [4.1.0] - 2023-12-03
+### Added
+- Added Jetpack Creator to My Jetpack. [#34307]
+- Added the welcome banner to My Jetpack. [#34384]
+- Display a "Jetpack Manage" menu item to connected users. [#34353]
+- Updated connection message to only display if the welcome banner has been dismissed. [#34420]
+
+### Changed
+- Updated package dependencies. [#34411] [#34427]
+- Updated the API calls used for My Jetpack backup card. [#34197]
+- Updated the CTAs in My Jetpack for more clarity and to avoid inconsistencies. [#34300]
+
+### Fixed
+- Dashboard: Prevented display of any notices from third-party services. [#34364]
+- Fixed checkout error while selling the unlimited Jetpack AI plan. [#34339]
+- Fixed Jetpack AI bi-yearly plan on product card. [#34276]
+- Fixed product card menus. [#34285]
+
+## [4.0.3] - 2023-11-24
+### Changed
+- Changed Jetpack AI insterstitial contact link to Jetpack Redirect. [#34252]
+- Link Jetpack AI Contact Us button to support email on interstitial page. [#34240]
+- Removed hardcoded tiers from Jetpack AI interstitial. [#34259]
+- Trust next tier provided by the Jetpack AI feature endpoint. [#34239]
+
+## [4.0.2] - 2023-11-21
+### Changed
+- Replace usage of strpos() with str_contains(). [#34137]
+
+## [4.0.1] - 2023-11-21
+### Added
+- Marked Jetpack AI as upgradable in the interstitial page. [#34215]
+
+## [4.0.0] - 2023-11-20
+### Added
+- Display an "Activity Log" menu item to connected users. [#34174]
+- Added direct checkout support for products with quantity-based plans. [#34177]
+- Added Jetpack AI prices by tier to the interstitial page. [#34196]
+
+### Changed
+- Replaced usage of strpos() with str_starts_with(). [#34135]
+- Updated required PHP version to >= 7.0. [#34126]
+- Removed condition from the backup undoable event call, this datapoint will be removed. [#33997]
+
+## [3.12.2] - 2023-11-14
+### Changed
+- My Jetpack: Fix a bug causing PHP fatal errors when the Jetpack AI feature information is not available. [#34095]
+- Updated package dependencies. [#34093]
+
+## [3.12.1] - 2023-11-13
+### Changed
+- AI Assistant: Updated the text and image for the interstitial based on AI plan tiers. [#33981]
+- AI Assistant: Removed the ToS notice from the interstitial page. [#34076]
+
+## [3.12.0] - 2023-11-08
+### Added
+- Updated purchased state for VaultPress backup card on My Jetpack. [#33927]
+
+## [3.11.1] - 2023-11-03
+
+## [3.11.0] - 2023-10-30
+### Added
+- Add site data to unpurchased state of VaultPress Backup card to My Jetpack. [#33607]
+
+## [3.10.0] - 2023-10-23
+### Added
+- Add jetpack-plans dependency. It will be use to restore the reverted change on #33410. [#33706]
+
+### Changed
+- Update checkout flow to connect "After" checkout vs before (if not connected). [#33257]
+
+### Fixed
+- Use Current_Plan to check/return from has_required_plan on VP product class. [#33708]
+
+## [3.9.1] - 2023-10-19
+### Changed
+- Make has_required_plan return true (as it was before #33410) as a way to revert the change. [#33697]
+- Updated package dependencies. [#33687]
+
+## [3.9.0] - 2023-10-17
+### Added
+- Add has_required_plan method for VideoPress product class, check plan purchase exists for site [#33410]
+
+### Changed
+- Updated package dependencies. [#33646]
+
+## [3.8.2] - 2023-10-16
+### Changed
+- Updated package dependencies. [#33429, #33584]
+
+## [3.8.1] - 2023-10-10
+### Changed
+- Changes title of the my-jetpack page to "My Jetpack" [#33486]
+- Updated package dependencies. [#33428]
+
+### Fixed
+- My Jetpack: fix fatal error [#33523]
+- My Jetpack: fix Stats card status when not connected [#33521]
+
+## [3.8.0] - 2023-10-03
+### Added
+- Display a new section on My Jetpack to display the stats of the site. [#33283]
+
+## [3.7.0] - 2023-09-28
+### Added
+- Add a section to display stats from Jetpack Stats in My Jetpack [#33160]
+
+### Changed
+- Redirect to a proper upgrade page for free license owners [#33297]
+
+## [3.6.0] - 2023-09-25
+### Added
+- Add barebones infrastructure for querying jetpack product data. [#33095]
+
+### Changed
+- Stats: link to purchase page within WP Admin. [#33227]
+
+## [3.5.0] - 2023-09-19
+### Changed
+- Added support for upgradable products. Updated the Stats card to handle upgradeable products. [#33058]
+- Updated Jetpack submenu sort order so individual features are alpha-sorted. [#32958]
+
+### Fixed
+- My Jetpack: Add AI Assistant Monthly to required plan check [#33078]
+
+## [3.4.5] - 2023-09-13
+### Changed
+- Updated package dependencies. [#33001]
+
+## [3.4.4] - 2023-09-11
+### Changed
+- General: remove WP 6.1 backwards compatibility checks [#32772]
+
+### Fixed
+- Stats: stop showing upgrade button for sites with Complete plan [#32870]
+
+## [3.4.3] - 2023-09-04
+### Changed
+- Updated package dependencies. [#32803]
+- Updated package dependencies. [#32804]
+
+## [3.4.2] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [3.4.1] - 2023-08-22
+### Changed
+- Connection: allow dismissing the IDC modal. [#32594]
+
+## [3.4.0] - 2023-08-21
+### Added
+- Support Jetpack AI Yearly offering [#32130]
+
+### Changed
+- Use the new method to render Connection initial state. [#32499]
+
+## [3.3.3] - 2023-08-14
+### Added
+- Make My Jetpack the default WP-Admin page for Jetpack. [#32385]
+
+### Changed
+- Start showing My Jetpack for authors, editors, and contributors [#32420]
+
+## [3.3.2] - 2023-08-09
+### Fixed
+- Revert My Jetpack as first menu item. [#32384]
+
+## [3.3.1] - 2023-08-09
+### Changed
+- Updated package dependencies. [#32166]
+
+## [3.3.0] - 2023-08-07
+### Added
+- Add Identity Crisis screen modal. [#32249]
+
+### Changed
+- Move 'My Jetpack' sub-menu item to first position. [#32240]
+
+### Fixed
+- Fix IDC modal height issue. [#32316]
+
+## [3.2.1] - 2023-08-01
+### Added
+- Add transient caching for zendesk jwt auth token. [#32140]
+
+### Changed
+- My Jetpack: Rename the namespace of the JWT endpoint, and register it only when it isn't already registered [#32081]
+
+## [3.2.0] - 2023-07-25
+### Added
+- My Jetpack: register jetpack-ai-jwt endpoint [#31965]
+- My Jetpack: release Paid Stats to the public [#32020]
+
+### Changed
+- My Jetpack: changed Stats features wording [#32046]
+- Updated package dependencies. [#31999]
+- Updated package dependencies. [#32040]
+
+### Fixed
+- Make Jetpack logo in footer smaller [#31627]
+- My Jetpack: enabled Stats purchase flow returning to Stats Dashboard [#31959]
+
+## [3.1.3] - 2023-07-17
+### Changed
+- Updated package dependencies. [#31872]
+
+### Fixed
+- Hide connection owner information if the data is invalid
+- Don't suggest user connection if user is already connected, but connection owner is invalid [#31618]
+
+## [3.1.2] - 2023-07-11
+### Changed
+- Updated package dependencies. [#31785]
+
+## [3.1.1] - 2023-07-10
+### Fixed
+- Make product card primary buttons links when applicable [#31611]
+
+## [3.1.0] - 2023-07-05
+### Added
+- Added Jetpack Stats card to My Jetpack [#31589]
+
+### Changed
+- Jetpack Stats: Enable skipping interstitial page [#31629]
+- Updated package dependencies. [#31659]
+
+### Fixed
+- My Jetpack: hide Stats card for standalone plugins [#31689]
+- Organize product cards in list [#31606]
+
+## [3.0.0] - 2023-06-26
+### Added
+- Add authentication to Zendesk chat. [#31339]
+- Stats: add stats card to my Jetpack. [#31531]
+
+## [2.15.0] - 2023-06-23
+### Added
+- My Jetpack: add Stats product [#31368]
+
+### Changed
+- Updated package dependencies. [#31468]
+
+## [2.14.3] - 2023-06-12
+### Added
+- My Jetpack: populate the Jetpack AI product with feature data [#31238]
+
+## [2.14.2] - 2023-06-06
+### Changed
+- Filter out revoked licenses from the license activation options. [#31088]
+- Updated package dependencies. [#31129]
+
+## [2.14.1] - 2023-05-29
+### Added
+- My Jetpack: Add new Jetpack AI card [#30904]
+
+### Changed
+- My Jetpack: Enable Jetpack AI card [#30988]
+- My Jetpack: Update AI class to be product and not module [#30905]
+- My Jetpack: Update AI interstitial background [#30992]
+
+## [2.14.0] - 2023-05-22
+### Added
+- Added ability to purchase Jetpack AI monthly product [#30793]
+- Added tier data to the Boost product to support a pricing table interstitial page. [#29931]
+
+## [2.13.0] - 2023-05-15
+### Added
+- Added My Jetpack interstitial for Jetpack AI [#30543]
+
+## [2.12.2] - 2023-05-11
+### Changed
+- PHP 8.1 compatibility updates [#30517]
+
+## [2.12.1] - 2023-05-08
+### Added
+- My Jetpack: Add deactivate plugin menu action on product card [#30489]
+
+### Changed
+- My Jetpack: Remove icon from plugin activation action in product card [#30458]
+- My Jetpack: Remove manage option from menu [#30440]
+- My Jetpack: Remove product card icon [#30441]
+- My Jetpack: Set a post-checkout redirect destination on the "Purchase a plan" link. [#27693]
+
+### Fixed
+- My Jetpack: Add check for product status before requesting stats [#30430]
+- My Jetpack: Reload page after successful license activation [#30364]
+- My Jetpack: Use a single column for the page title section [#30406]
+
+## [2.12.0] - 2023-05-02
+### Added
+- Add API to query Zendesk chat availability and use it to conditionally display zendesk chat. [#29942]
+- Add pricing table interstitial view for Jetpack Protect. [#29930]
+- My Jetpack: Add product detail table component for comparing product tiers. [#29759]
+
+### Changed
+- My Jetpack: Move logic out of Product Card component. [#30274]
+- Updated package dependencies.
+
+### Fixed
+- Fix activation and layout on Protect interstatial page. [#29525]
+- My Jetpack: Keep product card action button disabled while installing standalone plugin. [#30346]
+
+## [2.11.0] - 2023-05-01
+### Added
+- Added Jetpack Starter bundle post-activation screen and plan header [#30368]
+
+## [2.10.3] - 2023-04-25
+### Added
+- My Jetpack: Add flags field in initial state [#30241]
+- My Jetpack: Add Install/Activate menu actions based on the standalone plugin status. [#30153]
+- My Jetpack: Add neutral color in contextual card [#30250]
+- My Jetpack: Add side-effect action to request the standalone plugin installation on the backend. [#30143]
+- My Jetpack: Add stats to VideoPress card [#30197]
+- My Jetpack: Enable menu for all hybrid products [#30247]
+- My Jetpack: Reload page after standalone action [#30221]
+
+### Changed
+- My Jetpack: Connect the standalone plugin menu options so they trigger the installation and activation when clicked. [#30168]
+- MyJetpack: set the Social standalone page as the default admin one [#30193]
+- MyJetpack: Try to activate the product module after installing the standalone plugin [#30215]
+- Updated package dependencies. [#30015]
+
+## [2.10.2] - 2023-04-17
+### Added
+- Ad missing TOS in Jetpack interstitial. [#29683]
+- My Jetpack: Add endpoint to install the standalone plugin for hybrid products. [#30045]
+- My Jetpack: Expose information about standalone plugin status on My Jetpack product initial state. [#29977]
+
+### Changed
+- Backup and Scan: redirect after checkout to Jetpack recommendations page if Jetpack plugin is active. Otherwise, redirect back to plugin admin page. [#29708]
+- My Jetpack: Adjustments in Product Card [#30014]
+- Updated package dependencies. [#30019]
+
+## [2.10.1] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+- My Jetpack: Introduce absent_with_plan status [#29920]
+
+### Changed
+- My Jetpack: Turn Search into a hybrid product to handle it as module and as standalone plugin. [#29946]
+- My Jetpack: Turn Social into a hybrid product to handle it as module and as standalone plugin. [#29935]
+- My Jetpack: Turn VaultPress Backup into a Hybrid product to handle it as module and as standalone plugin. [#29928]
+- My Jetpack: Turn VideoPress into a Hybrid product to handle it as module and as standalone plugin. [#29918]
+
+## [2.10.0] - 2023-04-04
+### Added
+- My Jetpack: Adds a selector, reducer and resolver machinery to fetch product stats. [#29764]
+- My Jetpack: Enhance Product Card [#29787]
+- My Jetpack: Introduce menu in Product Card [#29815]
+
+### Changed
+- * Updated add-anti-spam path to add-akismet to match the product key
+ * Updated product interstitial component to accept an existingLicenseKeyUrl
+ * Updated product interstitial component to display a product name instead of a title where preferProductName is set
+ * Make is_plugin_active available from the API [#29598]
+- My Jetpack: Change the bottom of My Jetpack screen to use single-column rows on small viewports. [#29844]
+- Updated package dependencies. [#29854]
+
+## [2.9.2] - 2023-04-03
+### Changed
+- Internal updates.
+
+## [2.9.1] - 2023-03-28
+### Changed
+- Move GoldenTokenModal component to licensing package. [#29748]
+
+## [2.9.0] - 2023-03-27
+### Added
+- Adds new route for Golden Token. Also the experience of redeeming one [#29644]
+- Clarified when license activation fails that a user connection is required, added a link to complete the connection, and added functionality to redirect back to license activation when the connection is done. [#29443]
+
+## [2.8.1] - 2023-03-20
+### Changed
+- Product Interstitial: Use browser history to go back, in case they're coming from somewhere outside of the app. [#29138]
+- Updated My Jetpack wpwrap color to --jp-white-off [#29568]
+- Updated package dependencies. [#29471]
+
+## [2.8.0] - 2023-03-13
+### Added
+- Add Zendesk chat module to My Jetpack page [#28712]
+
+## [2.7.13] - 2023-03-08
+### Changed
+- Updated package dependencies. [#29216]
+
+## [2.7.12] - 2023-02-28
+### Changed
+- Update billing language [#29126]
+
+## [2.7.11] - 2023-02-20
+### Fixed
+- My Jetpack: Fix button to add bundle in product interstitial component [#28984]
+
+## [2.7.10] - 2023-02-15
+### Changed
+- Update to React 18. [#28710]
+
+## [2.7.9] - 2023-02-08
+### Changed
+- Updated package dependencies. [#28682, #28700]
+
+## [2.7.8] - 2023-02-06
+### Changed
+- Updated package dependencies.
+
+## [2.7.7] - 2023-01-26
+### Changed
+- Use `flex-start` instead of `start` for better browser compatibility. [#28530]
+
+## [2.7.6] - 2023-01-25
+### Changed
+- Minor internal updates.
+
+## [2.7.5] - 2023-01-23
+### Fixed
+- Components: Fix usage of box-sizing across the elements [#28489]
+- Fixes the price display for products with intro offers for the first month. [#28424]
+
+## [2.7.4] - 2023-01-16
+### Changed
+- Updated package dependencies. [#28303]
+
+## [2.7.3] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [2.7.2] - 2023-01-02
+### Added
+- My Jetpack: Move VideoPress from Hybrid [#28097]
+
+### Changed
+- My Jetpack: Move Search out of hybrid and deprecate Hybrid_Product class [#28113]
+
+## [2.7.1] - 2022-12-27
+### Changed
+- Fix layout visual issues [#28055]
+- My Jetpack: Move Backup out of hybrid product [#28022]
+- My Jetpack: Move Social out of hybrid product [#28074]
+
+## [2.7.0] - 2022-12-19
+### Added
+- Implement detached licenses redux store. [#27609]
+
+### Changed
+- Updated package dependencies. [#27916]
+
+### Fixed
+- Add translation context to Security product name. [#27920]
+
+## [2.6.1] - 2022-12-12
+### Changed
+- Updated package dependencies. [#27888]
+
+## [2.6.0] - 2022-12-05
+### Changed
+- Improve design of the error notice. [#27340]
+- Updated package dependencies. [#27340]
+
+## [2.5.2] - 2022-12-02
+### Changed
+- My Jetpack: Requires connection only if needed [#27615]
+- Updated package dependencies. [#27697]
+
+## [2.5.1] - 2022-11-30
+
+## [2.5.0] - 2022-11-28
+### Changed
+- My Jetpack: rename Backup and Anti-Spam to new product names [#27377]
+- Show My Jetpack even if site is disconnected [#26967]
+- Updated package dependencies. [#27576]
+
+## [2.4.1] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [2.4.0] - 2022-11-17
+### Added
+- Added Jetpack Protect to My Jetpack. [#26069]
+
+### Changed
+- Updated package dependencies. [#26736]
+
+## [2.3.5] - 2022-11-10
+### Changed
+- Updated package dependencies. [#27319]
+
+## [2.3.4] - 2022-11-08
+### Changed
+- Updated package dependencies. [#27289]
+
+## [2.3.3] - 2022-11-01
+### Changed
+- Updated package dependencies. [#27196]
+
+## [2.3.2] - 2022-10-25
+### Changed
+- Updated package dependencies. [#26705]
+
+## [2.3.1] - 2022-10-25
+### Added
+- Add a flag to indicate if the pricing is introductory with product price [#26982]
+- My Jetpack: Support trial [#27033]
+
+### Changed
+- Search: now support 38 languages [#27025]
+
+### Fixed
+- Don't show old price when it's the same as new one [#27015]
+- Search: check if free plan and new pricing is active using wpcom API [#27016]
+
+## [2.3.0] - 2022-10-19
+### Added
+- Added support for free product and added free product for Search [#26808]
+
+### Changed
+- Updated package dependencies. [#26883]
+
+## [2.2.3] - 2022-10-17
+### Changed
+- Updated package dependencies. [#26851]
+
+## [2.2.2] - 2022-10-13
+### Changed
+- Updated package dependencies. [#26790]
+
+## [2.2.1] - 2022-10-11
+### Changed
+- Updated package dependencies. [#25973]
+
+## [2.2.0] - 2022-10-05
+### Added
+- Integrate the new connection error message React component into My Jetpack. [#26485]
+- Search: add post type breakdown endpoint [#26463]
+- Trigger restore connection flow. [#26489]
+
+### Changed
+- Updated package dependencies. [#26457]
+
+## [2.1.1] - 2022-09-27
+### Changed
+- Updated package dependencies.
+
+## [2.1.0] - 2022-09-20
+### Added
+- Added the ConnectionErrorNotice React component. [#26259]
+
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Fixed the tests for the Module_Product class by creating and using a sample, test-only module product class as the test subject instead of relying on Videopress or other concrete products. [#26227]
+
+## [2.0.5] - 2022-09-08
+### Changed
+- Change VideoPress into a Hybrid product in My Jetpack [#25954]
+- Updated package dependencies.
+
+## [2.0.4] - 2022-08-31
+### Added
+- Allow plugins to override a product class. [#25891]
+
+### Changed
+- Updated package dependencies. [#25856]
+
+## [2.0.3] - 2022-08-29
+### Changed
+- Updated package dependencies.
+
+## [2.0.2] - 2022-08-25
+### Changed
+- Activate plugins in normal mode to trigger plugin_activated hooks [#25727]
+- Updated package dependencies. [#25814]
+
+### Fixed
+- Licensing: do not enable the Licensing UI if My Jetpack cannot be enabled. [#25667]
+- Search: increased search plan/pricing API timeouts to 5s [#25775]
+
+## [2.0.1] - 2022-08-23
+### Added
+- My Jetpack: Add container for JITMs [#22452]
+
+### Changed
+- Updated package dependencies. [#25338, #25339, #25377, #25422, #25628, #25762, #25764]
+
+## [2.0.0] - 2022-08-09
+### Added
+- Make product cards compatible with disclaimers and add disclaimer for backup card [#25265]
+
+### Changed
+- Search: changed to only require site level connection [#24477]
+
+## [1.8.3] - 2022-08-03
+### Changed
+- Updated package dependencies. [#25300, #25315]
+
+## [1.8.2] - 2022-07-27
+### Changed
+- My Jetpack: changed link used in ProductCard component to a button when the plugin is absent
+
+## [1.8.1] - 2022-07-26
+### Changed
+- My Jetpack: changed button used in ProductCard component from WordPress to Jetpack default [#25146]
+- Updated package dependencies. [#25147]
+
+## [1.8.0] - 2022-07-19
+### Added
+- My Jetpack: scroll window to top on route change [#25086]
+
+### Changed
+- Updated package dependencies. [#24710]
+
+## [1.7.4] - 2022-07-12
+### Changed
+- Updated package dependencies. [#25048, #25055]
+
+## [1.7.3] - 2022-07-06
+### Added
+- Display alert when we cant automatically install the plugin [#24884]
+
+### Changed
+- Updated package dependencies. [#24923]
+
+## [1.7.2] - 2022-06-28
+### Changed
+- Disambiguate redirectUrls vars [#24839]
+- Search: use centralized search pricing API [#24795]
+- Updated package dependencies. [#24826]
+
+### Fixed
+- Search Pricing: fix pricing fetch issue before site is connected [#24826]
+
+## [1.7.1] - 2022-06-21
+### Fixed
+- My Jetpack: Replace wordpress from PNG to SVG at Connection [#24793]
+
+## [1.7.0] - 2022-06-21
+### Changed
+- My Jetpack: set products grid to 3x3 for large viewport size
+- Renaming master to trunk.
+- Renaming `master` references to `trunk`
+
+## [1.6.2] - 2022-06-14
+### Changed
+- Updated package dependencies. [#24529]
+
+## [1.6.1] - 2022-06-08
+### Changed
+- Reorder JS imports for `import/order` eslint rule. [#24601]
+- Updated package dependencies. [#24510]
+
+## [1.6.0] - 2022-05-30
+### Added
+- Added Social to My Jetpack.
+
+### Changed
+- Make My Jetpack use the new Modules class
+- Replace deprecated external-link variation by using isExternalLink prop
+- Updated package dependencies
+
+## [1.5.0] - 2022-05-24
+### Changed
+- Default licensing UI in My Jetpack to be enabled [#24396]
+- Updated package dependencies. [#24449]
+
+## [1.4.1] - 2022-05-19
+### Changed
+- Updated package dependencies. [#24395]
+
+## [1.4.0] - 2022-05-18
+### Added
+- Added a filter to allow stand-alone plugins to add product specific activation routines [#24334]
+- My Jetpack: Add Protect class [#24347]
+- My Jetpack: compute Search plugin price based on price tier [#24337]
+
+### Changed
+- Add tiered pricing copy and update titles for Jetpack Search [#24357]
+- Hide Activate a license link if there is no user connection since user connection is required [#24251]
+- My Jetpack Hybrid products: Install Jetpack if stand-alone plugin installation fails [#24335]
+- Updated Jetpack Scan feature list. [#23863] [#23795] [#24361] [#24372]
+
+## [1.3.0] - 2022-05-10
+### Changed
+- Adds from arg to connection screen in My Jetpack so that we can begin tracking connections originating from My Jetpack [#24283]
+- Updated package dependencies. [#24189]
+- Updated references to old licensing activation UI to licensing activation UI in My Jetpack [#24189]
+
+## [1.2.1] - 2022-05-04
+### Added
+- Add missing JavaScript dependencies. [#24096]
+
+### Changed
+- My Jetpack: remove duplicated site suffix stored on rawUrl. Use siteSuffix instead. [#24094]
+- Updated package dependencies. [#24095] [#24198]
+
+### Deprecated
+- Moved the options class into Connection. [#24095]
+
+## [1.2.0] - 2022-04-26
+### Added
+- Added activation screen component to My Jetpack licensing page
+
+### Changed
+- Updated package dependencies.
+- Update package.json metadata.
+
+## [1.1.0] - 2022-04-19
+### Added
+- Adds a skeleton for the licensing UI along with a feature flag
+- Better error handling for when the WPCOM server is unreachable
+- Introduced ConnectedProductOffer component
+
+### Changed
+- Turn Search into a Hybrid Product
+- Updated package dependencies
+- use connected plugin list from the connection store and ask for an update after activating a product
+
+## [1.0.2] - 2022-04-12
+### Changed
+- Updated package dependencies.
+
+### Fixed
+- Fixed bug in checkout URLs for sites installed in subdirs.
+
+## [1.0.1] - 2022-04-06
+### Removed
+- Removed tracking dependency.
+
+## [1.0.0] - 2022-04-05
+### Added
+- My Jetpack: improve Product and Interstitial components.
+
+### Changed
+- Bump My Jetpack package to major version 1.0.0.
+- My Jetpack: align price boxes in the interstitial product page.
+- Updated package dependencies.
+
+## [0.6.13] - 2022-03-31
+### Added
+- Added tracking events to Plans section external links
+
+### Changed
+- My Jetpack: tweak plans section typography and descriptive text
+
+## [0.6.12] - 2022-03-29
+### Added
+- Add missing JS peer dependencies.
+
+### Changed
+- Microperformance: Use === null instead of is_null
+- My Jetpack: Moved in product icon components
+- My Jetpack: Tweak plan sections styles/sizes
+- My Jetpack: Update ProductDetailCard to use components and theme variables
+- My Jetpack: Use components to render headers elements
+- Use different URLs for manage and purchase links in plans section
+
+### Fixed
+- My Jetpack: Connect Screen logos quality
+
+## [0.6.11] - 2022-03-23
+### Added
+- My Jetpack: add error styles to the whole Product card component
+- My Jetpack: Make whole Product card clickable
+
+### Changed
+- Changed opacity of product icons to 40%
+- Changed title
+- Improved should_initialize method
+- My Jetpack: remove dropdown from CTA button in Product cards
+- My Jetpack: Use Text and CSS vars on ProductCard
+- Updated Boost product icon for clarity
+- Updated package dependencies.
+- Updated package dependencies.
+- Updated styles for each product card status
+- Update organization and copy of the Plans section
+
+### Removed
+- My Jetpack: Remove client code that allows to deactivate a product
+
+### Fixed
+- Fix Plans section top margin for plan list
+- My Jetpack: jetpack_my_jetpack_should_initialize filter now respected when set to true.
+
+## [0.6.10] - 2022-03-15
+### Changed
+- Make Backup go through the purchase flow after activation
+- My Jetpack: Use ThemeProvider instead base-styles
+- Updated package dependencies
+
+### Removed
+- Removed Beta badge from menu item
+
+## [0.6.9] - 2022-03-09
+### Changed
+- Updated package dependencies.
+
+## [0.6.8] - 2022-03-08
+### Added
+- Added connected plugins slugs to My Jetpack tracking events
+- Add link to jetpack.com in the footer
+- My Jetpack: Add jetpack features link on connection screen
+- My Jetpack: tidy Product card component
+- My Jetpack: update Spinner in checkout button
+
+### Changed
+- Components: update attributes used within the Button component to match recent deprecations and changes.
+- My Jetpack: Add Connected Product Card stories
+- My Jetpack: Add connection screen footer
+- My Jetpack: clean/tidy Product data
+- My Jetpack: Remove Layout component
+- Only consider Backup product active when the plan is purchased
+
+### Fixed
+- Fixed Backup flow when Jetpack plugin is active
+- My Jetpack: align CTA buttons of My Jetpack overview
+- My Jetpack: Fix button height in the Interstitial pages
+
+## [0.6.7] - 2022-03-02
+### Added
+- Add My Jetpack action link to all Jetpack plugins
+- My Jetpack: Handle cosmetic tweaks
+- My Jetpack: Pass requiresUserConnection to ConnectionStatusCard
+
+### Changed
+- Refactor and simplify Products class
+- Updated package dependencies.
+
+### Fixed
+- Disable browser cache for My Jetpack
+- My Jetpack: fix products card section story
+- My Jetpack: fix stories for the Interstitial pages
+
+## [0.6.6] - 2022-02-28
+### Fixed
+- Re-doing 0.6.5 to fixup bad release.
+
+## [0.6.5] - 2022-02-28
+### Changed
+- Tweak product card box model.
+
+### Fixed
+- Use namespace in My Jetpack REST Products class to prevent fatal
+
+## [0.6.4] - 2022-02-25
+### Added
+- Activate Jetpack plugin from Extras product card
+- Added list of connected plugins to Disconnect dialog in My Jetpack
+- Add Extras interstitial page
+- My Jetpack: Handle cosmetic tweaks
+- My Jetpack: Remove global notices when in my jetpack page
+- My Jetpack: set height of Jetpack logo in the footer
+- My Jetpack: tweak height of Jetpack Logo
+- My Jetpack: update Product logos
+
+### Changed
+- Disable My Jetpack on MS
+- My Jetpack: compress extras product image
+- Updated package dependencies.
+- Update My Jetpack dashboard headline
+
+### Removed
+- Remove unnecessary line from My Jetpack Initial state
+
+### Fixed
+- Fix beta badge for RTL languages
+- Handle plugin activating from Hybrid class
+- Memoized RecordEvent from usAnalytics hook
+- My Jetpack: Fix post activation url redirect
+- My Jetpack: Move product list that requires user connection to selector
+- Products::get_products_names should not load all product information
+- Update automattic logo href in the footer
+
+## [0.6.3] - 2022-02-22
+### Changed
+- Updated inline documentation
+
+### Fixed
+- Use Jetpack namespace to fix fatal error
+
+## [0.6.2] - 2022-02-22
+### Added
+- Add Beta badge
+- Add Extras class
+- Apply coupon discount to Product price when it exists
+- Filesystem write access to the initial state
+- Improve Product detail layout
+- Implement close link on layout nav
+- Prevent calling activation hook when activating backup
+
+### Changed
+- Bump package versions.
+- Improve My Jetpack link styles
+- Improve redirect process after installing Product
+- Fix interstitial CTA buttons layout
+- Move from isPressed to CSS vars
+- Redirect connect user to connection interstitial
+- Point the link of the Manage button of CRM to its dashboard
+- Redirect to post_activation_url after product activation from iterstitial screen
+- Remove conditional loading depending on constant
+- Send My Jetpack version with fired events
+- Update the layout of interstitial page when it has an upgradable bundle
+
+### Fixed
+- Check if product is active before checking if requires plan
+- Fix check for plugin installation for hybrid products
+- Fix click on security and add click on My Jetpack interstitial
+- Fix clicks on VideoPress and CRM cards
+- Fix Product prices
+- Make Scan and Search interstitials install the plugin
+- Purchases: ensure we retrieve translated version of active purchases
+- Return needs purchase status for products module
+
+## [0.6.1] - 2022-02-16
+### Added
+- Add Anti-Spam Product detail card
+- Add CRM interstitial page
+- Added wpcom plan slug to product info
+- add manage and post activation urls
+- Add Scan product: interstitial, route, data, etc...
+- Add Security Product Bundle
+- Add VideoPress data
+- Add VideoPress interstitial cmp. Story.
+- Add `#/add-videopress` route
+- Change the discount value for all Products to 50
+- checks and activation for Security Bundle
+- consume prices dynamically
+- Do not show Porduct price when plan has required plan
+- Finish Backup, Anti-Spam and Scan interstitial pages
+- Fire Tracks Event when user clicks on Product Interstitial Back link
+- Install proudcts from interstitial pages
+- Make click on Fix connection show connection route
+- package version to main class
+- Pull product discount from wpcom
+- Refactoring -> add icons component -> tweak icons for interstitial pages
+- Register `#/add-anti-spam` route. Connect with interstitial page
+- Restore Security bundle card in the UI
+- Set default values for product data in the client (custom hook)
+- set product status as error if active and requiring a missing user connection
+- Set properly the checkout link for Products
+- Set unlink=1 in the checkout URL when the user is not connected
+- Tidy Product stories
+- Update Backup product data. Tweak Icon.
+- Update mock data for Search product. useMyJetpackNavigate() hook
+
+### Changed
+- Adapt Scan actiavtion behavior as it is not a module
+- Add global notices for activate/deactivate failures
+- Add manage redirect
+- Apply correct style for CTA buttons on Interstitial
+- Avoid usage of 100vh on layout
+- Fix setting height of the Product title in the detail component
+- Implement is fulfilled handler for product resolver
+- Improve global notice layout
+- Reduce size of boost and search interstitial images
+- Update structure with Layout component
+- Only pass a productUrl if the product is not free on interstitial pages
+- Only show the deactivate action when it makes sense
+- Pass slug prop to event firing on product card button actions instead of name
+- Remove unnecessary payload from request to activate or deactivate a product
+- Replace renderActionButton function for ActionButton component
+- Updated package dependencies.
+- Use useMyJetpackNavigate when it's worth it
+
+### Fixed
+- Fixed connection check labels and error message
+- Fix upgradability for anti-spam and backup products
+- Remove duplicted Icon in Product Card story
+- Use key when looping through product detail icons
+
+## [0.6.0] - 2022-02-09
+### Added
+- Add Boost interstitial cmp.
+- Add has_required_plan to product info and implement method in Search
+- Add Product princign harcoded data
+- Add search product data
+- Add title and features to products data
+- anti spam product class
+- Connect Boost card with the interstitial page via /add-boost root
+- Fire Tracks event when clicking CTA button on product Interstitial page
+- Fire Tracks event when clicking Manage button on product card
+- Fire Tracks event when clickn Add link on My Jetpack product card
+- Fire Tracks event when showing the Interstitial page
+- Implement Free price for Boost product
+- Implement Search product interstitial
+- Introduce basic Layout component. Add GoBackLink component
+- Introduce ProductDetailCard component
+- My Jetpack: Add Connection screen
+- Pass slug prop to ProductCard'
+- Plan verification for Backup and Scan
+- Restore getProduct() resolver
+- Set the checkout URL for the Product detail component
+- useCallback for functions that are bound to onEvents
+
+### Changed
+- My Jetpack: Implement handler of connection notices
+- My Jetpack: Update notice style and implements redirect for connection route
+- Support multiple possible folder for each plugin
+- Updated package dependencies
+
+### Removed
+- dependency from search package
+
+### Fixed
+- Fix My Jetpack's reducer for SET_PRODUCT_STATUS
+- Fix the redirect URL value
+- Show discounted price in Product Detail card
+- typo
+
+## [0.5.0] - 2022-02-02
+### Added
+- Added plugin installation functionality
+- Adds Tracks events for activating and deactivating products from the product cards
+- Fixes stories for ProductCard component
+- Handle when site is not connected
+- Initial approach to handle global notice
+- Module Products
+- My Jetpack: Add route handling
+- My Jetpack: connect all product cards with data provider
+- My Jetpack: connect Backup product class with Product class. Add long description and features fields.
+- My Jetpack: handle redirect when no connection #22549
+- My Jetpack: reorganize stores by project/name
+- Remove getProduct() resolver
+- Support to Hybrid products
+- Tweak dimms of the Product card status
+- Update data handling - Implement request status in Product Card
+- User connection requirement to product info
+- uses the Plugin Installer package to safely checks plugins statuses
+
+### Changed
+- Added filter for disabling the initialization of the My Jetpack package
+- Build: remove unneeded files from production build.
+- Do not initialize My Jetpack id site is not connected
+- My Jetpack: Refactor styles to use layout components and theme provider
+- My Jetpack: Update gap between product cards section
+- Pick API root and nonce values from a new window var myJetpackRest
+- Updated package dependencies.
+- Update plugin absent status consistently
+
+### Fixed
+- added unit test mock for new global variable myJetpackRest
+- Fix tests
+- Fix unsafe optional chaining.
+- my-jetpack: fix tracking event when activating product
+- Resolved minor code standard violation after implementing a stricter rule.
+
+## [0.4.0] - 2022-01-25
+### Added
+- add API endpoints to manipulate products
+- Added css module for My Jetpack Plans Section
+- Added useAnalytics hook
+- Added Visitor class for status regarding the site visitor.
+- Add first data approach
+- Add Products and REST_Products basic classes
+- Adds very basic product cards section component to my jetpack
+- My Jetpack: Add Product Card component
+- My Jetpack: check user connectivity before to hit wpcom side
+- My Jetpack: Implement data handling for enable/disable products
+- Removed endpoint plans superseded by purchases
+
+### Changed
+- Add Connections Section wrapping the Connection Status Card to My Jetpack
+- Build: do not ship raw files in production bundle.
+
+### Removed
+- Remove unused usePlans() custom react hook
+
+### Fixed
+- Fixed svg attribute strokeWidth for Boost Card
+
+## [0.3.3] - 2022-01-18
+### Added
+- Added redux store specific to my-jetpack
+- Implement plans list properly in the PlansSection
+- My Jetpack: Add scripts for JS tests
+- My Jetpack: Include wordpress components as dep
+- Reduxify purchases data
+
+### Changed
+- General: update required node version to v16.13.2
+- Properly style the Plans Section according to proposed design
+- Updated package dependencies.
+
+## [0.3.2] - 2022-01-13
+### Added
+- My Jetpack: add story to `` component
+- My Jetpack: first PlanSection implementation
+
+### Fixed
+- Rename method enqueue_scritps to enqueue_scripts
+
+## [0.3.1] - 2022-01-11
+### Added
+- Add devvelopment testing instructions to doc.
+
+### Changed
+- Updated package dependencies.
+
+### Removed
+- Remove use of deprecated `~` in sass-loader imports.
+
+## [0.3.0] - 2022-01-04
+### Changed
+- Drop isRegistered and isUserConnected params from ConnectionStatusCard component
+- Switch to pcov for code coverage.
+- Updated package dependencies.
+- Updated package textdomain from `jetpack` to `jetpack-my-jetpack`.
+
+## [0.2.0] - 2021-12-14
+### Added
+- Added Connection Status Card to the page.
+- Janitorial: add watch command to the plugin.
+
+### Changed
+- Adapt to new layout components.
+- Build: do not ship scss and jsx files in production build.
+
+### Fixed
+- Build minimized JS for the production build.
+- Fix JavaScript i18n strings.
+
+## [0.1.3] - 2021-12-07
+### Changed
+- Updated package dependencies.
+
+## [0.1.2] - 2021-11-30
+### Added
+- Janitorial: create mirror repo for the package.
+
+### Changed
+- Remove now-redundant `output.filename` from Webpack config.
+
+## 0.1.1 - 2021-11-23
+### Changed
+- Updated package dependencies.
+
+## 0.1.0 - 2021-11-17
+### Added
+- Created package
+
+[4.35.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.35.2...4.35.3
+[4.35.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.35.1...4.35.2
+[4.35.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.35.0...4.35.1
+[4.35.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.34.0...4.35.0
+[4.34.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.33.1...4.34.0
+[4.33.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.33.0...4.33.1
+[4.33.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.4...4.33.0
+[4.32.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.3...4.32.4
+[4.32.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.2...4.32.3
+[4.32.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.1...4.32.2
+[4.32.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.32.0...4.32.1
+[4.32.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.31.0...4.32.0
+[4.31.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.30.0...4.31.0
+[4.30.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.29.0...4.30.0
+[4.29.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.28.0...4.29.0
+[4.28.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.27.2...4.28.0
+[4.27.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.27.1...4.27.2
+[4.27.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.27.0...4.27.1
+[4.27.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.26.0...4.27.0
+[4.26.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.25.4...4.26.0
+[4.25.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.25.3...4.25.4
+[4.25.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.25.2...4.25.3
+[4.25.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.25.1...4.25.2
+[4.25.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.25.0...4.25.1
+[4.25.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.7...4.25.0
+[4.24.7]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.6...4.24.7
+[4.24.6]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.5...4.24.6
+[4.24.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.4...4.24.5
+[4.24.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.3...4.24.4
+[4.24.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.2...4.24.3
+[4.24.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.1...4.24.2
+[4.24.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.24.0...4.24.1
+[4.24.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.23.3...4.24.0
+[4.23.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.23.2...4.23.3
+[4.23.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.23.1...4.23.2
+[4.23.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.23.0...4.23.1
+[4.23.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.22.3...4.23.0
+[4.22.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.22.2...4.22.3
+[4.22.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.22.1...4.22.2
+[4.22.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.22.0...4.22.1
+[4.22.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.21.0...4.22.0
+[4.21.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.20.2...4.21.0
+[4.20.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.20.1...4.20.2
+[4.20.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.20.0...4.20.1
+[4.20.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.19.0...4.20.0
+[4.19.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.18.0...4.19.0
+[4.18.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.17.1...4.18.0
+[4.17.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.17.0...4.17.1
+[4.17.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.16.0...4.17.0
+[4.16.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.15.0...4.16.0
+[4.15.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.14.0...4.15.0
+[4.14.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.13.0...4.14.0
+[4.13.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.12.1...4.13.0
+[4.12.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.12.0...4.12.1
+[4.12.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.11.0...4.12.0
+[4.11.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.10.0...4.11.0
+[4.10.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.9.2...4.10.0
+[4.9.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.9.1...4.9.2
+[4.9.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.9.0...4.9.1
+[4.9.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.8.0...4.9.0
+[4.8.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.7.0...4.8.0
+[4.7.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.6.2...4.7.0
+[4.6.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.6.1...4.6.2
+[4.6.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.6.0...4.6.1
+[4.6.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.5.0...4.6.0
+[4.5.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.4.0...4.5.0
+[4.4.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.3.0...4.4.0
+[4.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.2.1...4.3.0
+[4.2.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.2.0...4.2.1
+[4.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.1.4...4.2.0
+[4.1.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.1.3...4.1.4
+[4.1.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.1.2...4.1.3
+[4.1.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.1.1...4.1.2
+[4.1.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.1.0...4.1.1
+[4.1.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.0.3...4.1.0
+[4.0.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.0.2...4.0.3
+[4.0.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.0.1...4.0.2
+[4.0.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/4.0.0...4.0.1
+[4.0.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.12.2...4.0.0
+[3.12.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.12.1...3.12.2
+[3.12.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.12.0...3.12.1
+[3.12.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.11.1...3.12.0
+[3.11.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.11.0...3.11.1
+[3.11.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.10.0...3.11.0
+[3.10.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.9.1...3.10.0
+[3.9.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.9.0...3.9.1
+[3.9.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.8.2...3.9.0
+[3.8.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.8.1...3.8.2
+[3.8.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.8.0...3.8.1
+[3.8.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.7.0...3.8.0
+[3.7.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.6.0...3.7.0
+[3.6.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.5.0...3.6.0
+[3.5.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.5...3.5.0
+[3.4.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.4...3.4.5
+[3.4.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.3...3.4.4
+[3.4.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.2...3.4.3
+[3.4.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.1...3.4.2
+[3.4.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.4.0...3.4.1
+[3.4.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.3.3...3.4.0
+[3.3.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.3.2...3.3.3
+[3.3.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.3.1...3.3.2
+[3.3.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.3.0...3.3.1
+[3.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.2.1...3.3.0
+[3.2.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.2.0...3.2.1
+[3.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.1.3...3.2.0
+[3.1.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.1.2...3.1.3
+[3.1.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.1.1...3.1.2
+[3.1.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.1.0...3.1.1
+[3.1.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/3.0.0...3.1.0
+[3.0.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.15.0...3.0.0
+[2.15.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.14.3...2.15.0
+[2.14.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.14.2...2.14.3
+[2.14.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.14.1...2.14.2
+[2.14.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.14.0...2.14.1
+[2.14.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.13.0...2.14.0
+[2.13.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.12.2...2.13.0
+[2.12.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.12.1...2.12.2
+[2.12.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.12.0...2.12.1
+[2.12.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.11.0...2.12.0
+[2.11.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.10.3...2.11.0
+[2.10.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.10.2...2.10.3
+[2.10.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.10.1...2.10.2
+[2.10.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.10.0...2.10.1
+[2.10.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.9.2...2.10.0
+[2.9.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.9.1...2.9.2
+[2.9.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.9.0...2.9.1
+[2.9.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.8.1...2.9.0
+[2.8.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.8.0...2.8.1
+[2.8.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.13...2.8.0
+[2.7.13]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.12...2.7.13
+[2.7.12]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.11...2.7.12
+[2.7.11]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.10...2.7.11
+[2.7.10]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.9...2.7.10
+[2.7.9]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.8...2.7.9
+[2.7.8]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.7...2.7.8
+[2.7.7]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.6...2.7.7
+[2.7.6]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.5...2.7.6
+[2.7.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.4...2.7.5
+[2.7.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.3...2.7.4
+[2.7.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.2...2.7.3
+[2.7.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.1...2.7.2
+[2.7.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.7.0...2.7.1
+[2.7.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.6.1...2.7.0
+[2.6.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.6.0...2.6.1
+[2.6.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.5.2...2.6.0
+[2.5.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.5.1...2.5.2
+[2.5.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.5.0...2.5.1
+[2.5.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.4.1...2.5.0
+[2.4.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.4.0...2.4.1
+[2.4.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.5...2.4.0
+[2.3.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.4...2.3.5
+[2.3.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.3...2.3.4
+[2.3.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.2...2.3.3
+[2.3.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.1...2.3.2
+[2.3.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.3.0...2.3.1
+[2.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.2.3...2.3.0
+[2.2.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.2.2...2.2.3
+[2.2.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.2.1...2.2.2
+[2.2.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.2.0...2.2.1
+[2.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.1.1...2.2.0
+[2.1.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.1.0...2.1.1
+[2.1.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.5...2.1.0
+[2.0.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.4...2.0.5
+[2.0.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.3...2.0.4
+[2.0.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.2...2.0.3
+[2.0.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.1...2.0.2
+[2.0.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/2.0.0...2.0.1
+[2.0.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.8.3...2.0.0
+[1.8.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.8.2...1.8.3
+[1.8.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.8.1...1.8.2
+[1.8.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.8.0...1.8.1
+[1.8.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.7.4...1.8.0
+[1.7.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.7.3...1.7.4
+[1.7.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.7.2...1.7.3
+[1.7.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.7.1...1.7.2
+[1.7.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.7.0...1.7.1
+[1.7.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.6.2...1.7.0
+[1.6.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.6.1...1.6.2
+[1.6.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.6.0...1.6.1
+[1.6.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.5.0...1.6.0
+[1.5.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.4.1...1.5.0
+[1.4.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.4.0...1.4.1
+[1.4.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.3.0...1.4.0
+[1.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.2.1...1.3.0
+[1.2.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.2.0...1.2.1
+[1.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.1.0...1.2.0
+[1.1.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.0.2...1.1.0
+[1.0.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.0.1...1.0.2
+[1.0.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/1.0.0...1.0.1
+[1.0.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.13...1.0.0
+[0.6.13]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.12...0.6.13
+[0.6.12]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.11...0.6.12
+[0.6.11]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.10...0.6.11
+[0.6.10]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.9...0.6.10
+[0.6.9]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.8...0.6.9
+[0.6.8]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.7...0.6.8
+[0.6.7]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.6...0.6.7
+[0.6.6]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.5...0.6.6
+[0.6.5]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.4...0.6.5
+[0.6.4]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.3...0.6.4
+[0.6.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.2...0.6.3
+[0.6.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.1...0.6.2
+[0.6.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.6.0...0.6.1
+[0.6.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.5.0...0.6.0
+[0.5.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.4.0...0.5.0
+[0.4.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.3.3...0.4.0
+[0.3.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.3.2...0.3.3
+[0.3.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.3.1...0.3.2
+[0.3.1]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.3.0...0.3.1
+[0.3.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.2.0...0.3.0
+[0.2.0]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.1.3...0.2.0
+[0.1.3]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.1.2...0.1.3
+[0.1.2]: https://github.com/Automattic/jetpack-my-jetpack/compare/0.1.1...0.1.2
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/apple-92dacafad84e79708a74.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/apple-92dacafad84e79708a74.svg
new file mode 100644
index 00000000..478fcfd9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/apple-92dacafad84e79708a74.svg
@@ -0,0 +1,3 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/boost-9e9a227e7e7280d0aa85.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/boost-9e9a227e7e7280d0aa85.png
new file mode 100644
index 00000000..4e7cb0ce
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/boost-9e9a227e7e7280d0aa85.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/cloud-81ac85ba680343200f54.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/cloud-81ac85ba680343200f54.svg
new file mode 100644
index 00000000..a033545d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/cloud-81ac85ba680343200f54.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/connect-c399837fe1621b176d10.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/connect-c399837fe1621b176d10.png
new file mode 100644
index 00000000..47797572
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/connect-c399837fe1621b176d10.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/crm-8a2b204e2c720730e928.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/crm-8a2b204e2c720730e928.png
new file mode 100644
index 00000000..3984395b
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/crm-8a2b204e2c720730e928.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/empty-avatar-fea23feddfa99b07c2e8.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/empty-avatar-fea23feddfa99b07c2e8.svg
new file mode 100644
index 00000000..d648cc87
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/empty-avatar-fea23feddfa99b07c2e8.svg
@@ -0,0 +1,40 @@
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-blank-fbbfbcd75b50ade0f092.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-blank-fbbfbcd75b50ade0f092.png
new file mode 100644
index 00000000..99ef2671
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-blank-fbbfbcd75b50ade0f092.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-selected-196d1790b76830f9b73a.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-selected-196d1790b76830f9b73a.png
new file mode 100644
index 00000000..1ff0ab37
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/evaluation-selected-196d1790b76830f9b73a.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/extras-c6bd0796750901faa7fd.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/extras-c6bd0796750901faa7fd.png
new file mode 100644
index 00000000..93435375
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/extras-c6bd0796750901faa7fd.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/github-45c648158e3e86b560f5.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/github-45c648158e3e86b560f5.svg
new file mode 100644
index 00000000..e7ae694e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/github-45c648158e3e86b560f5.svg
@@ -0,0 +1,3 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/google-dec2a429bf1d8e83f9ad.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/google-dec2a429bf1d8e83f9ad.svg
new file mode 100644
index 00000000..5794583d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/google-dec2a429bf1d8e83f9ad.svg
@@ -0,0 +1 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-9de1caef5eb5c22da5d6.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-9de1caef5eb5c22da5d6.svg
new file mode 100644
index 00000000..f8dbeb91
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-9de1caef5eb5c22da5d6.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-ai-d29bf65dcea46074d72f.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-ai-d29bf65dcea46074d72f.png
new file mode 100644
index 00000000..b77ec6b9
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-ai-d29bf65dcea46074d72f.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-gray-7eeb5eb060c8adea8622.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-gray-7eeb5eb060c8adea8622.svg
new file mode 100644
index 00000000..5a2a8b5f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-gray-7eeb5eb060c8adea8622.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-lock-cef570e11997f185e23d.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-lock-cef570e11997f185e23d.png
new file mode 100644
index 00000000..bc305002
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-lock-cef570e11997f185e23d.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-success-c5c132e713a79e05985f.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-success-c5c132e713a79e05985f.png
new file mode 100644
index 00000000..3a84fe15
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-license-activation-with-success-c5c132e713a79e05985f.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-manage-3a7ecaa604823c98c3cf.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-manage-3a7ecaa604823c98c3cf.svg
new file mode 100644
index 00000000..1cbd2e82
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/jetpack-manage-3a7ecaa604823c98c3cf.svg
@@ -0,0 +1,10 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/search-d177a31292d96d5ccbc2.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/search-d177a31292d96d5ccbc2.png
new file mode 100644
index 00000000..a5d1e8d7
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/search-d177a31292d96d5ccbc2.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-inactive-cba3b43d918377b506e5.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-inactive-cba3b43d918377b506e5.svg
new file mode 100644
index 00000000..5afa85d0
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-inactive-cba3b43d918377b506e5.svg
@@ -0,0 +1,3 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-off-47426e7b562ef20ae513.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-off-47426e7b562ef20ae513.svg
new file mode 100644
index 00000000..e1f7f232
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-off-47426e7b562ef20ae513.svg
@@ -0,0 +1,5 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-partial-48b279219c6389a129b9.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-partial-48b279219c6389a129b9.svg
new file mode 100644
index 00000000..03b09674
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-partial-48b279219c6389a129b9.svg
@@ -0,0 +1,4 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-success-e64a26c3a6d0888fba06.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-success-e64a26c3a6d0888fba06.svg
new file mode 100644
index 00000000..0f3ebeca
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/shield-success-e64a26c3a6d0888fba06.svg
@@ -0,0 +1,4 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/site-cards-29522f090d5422fd7afd.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/site-cards-29522f090d5422fd7afd.png
new file mode 100644
index 00000000..83e562ed
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/site-cards-29522f090d5422fd7afd.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/social-b8744a40c7c19a7bcc37.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/social-b8744a40c7c19a7bcc37.png
new file mode 100644
index 00000000..00d8ac9d
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/social-b8744a40c7c19a7bcc37.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/stats-95b42796ede4f632b642.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/stats-95b42796ede4f632b642.png
new file mode 100644
index 00000000..bd003303
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/stats-95b42796ede4f632b642.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/videopress-9c064bc7b89c386e5e50.png b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/videopress-9c064bc7b89c386e5e50.png
new file mode 100644
index 00000000..f38227dc
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/videopress-9c064bc7b89c386e5e50.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/wordpress-1fc3e0ba6c52e9707900.svg b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/wordpress-1fc3e0ba6c52e9707900.svg
new file mode 100644
index 00000000..b1cd75b6
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/images/wordpress-1fc3e0ba6c52e9707900.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php
new file mode 100644
index 00000000..32b8e762
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.asset.php
@@ -0,0 +1 @@
+ array('jetpack-connection', 'jetpack-script-data', 'react', 'react-jsx-runtime', 'wp-api-fetch', 'wp-components', 'wp-compose', 'wp-data', 'wp-date', 'wp-element', 'wp-i18n', 'wp-polyfill', 'wp-primitives', 'wp-url'), 'version' => '1c3aa81dbb7f888e2783');
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css
new file mode 100644
index 00000000..0cc5bb85
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.css
@@ -0,0 +1 @@
+.jp-license-activation-screen-controls{background:var(--jp-white);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-controls h1{font-size:44px;font-weight:700;line-height:1.4;margin:.67em 0}.jp-license-activation-screen-controls p{font-size:var(--font-body);margin:1em 0}.jp-license-activation-screen-controls label{font-size:var(--font-body);font-weight:600}@media screen and (min-width:780px){.jp-license-activation-screen-controls{padding:64px}}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error{max-width:500px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field .components-input-control__label.components-input-control__label.components-input-control__label,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error .components-input-control__label.components-input-control__label.components-input-control__label{font-size:var(--font-body);font-weight:600}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field select.components-select-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error select.components-select-control__input{border-radius:var(--jp-border-radius);font-size:18px;line-height:24px;margin:0;min-height:48px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field input.components-text-control__input{border:1px solid var(--jp-gray-40)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error select.components-select-control__input{border:1px solid var(--jp-red)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error{align-items:flex-start;color:var(--jp-red);display:flex;flex-direction:row;max-width:500px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error svg{margin-right:4px;fill:var(--jp-red);min-width:24px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error span{font-size:var(--font-body)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active{background-color:var(--jp-black);border-radius:4px;color:var(--jp-white);display:flex;font-size:16px;font-size:var(--font-body);font-style:normal;font-weight:600;justify-content:center;line-height:24px;margin-top:24px;min-height:48px;min-width:158px;padding:13.5px 45px;width:100%}@media screen and (min-width:480px){.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active{width:auto}}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:hover,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:hover{background-color:var(--jp-black-80);color:var(--jp-white)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:focus,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:focus{background-color:var(--jp-black-80);border:1px solid var(--jp-white);color:var(--jp-white)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:disabled,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active[disabled],.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:disabled,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button[disabled]{background-color:var(--jp-gray);color:var(--jp-gray-20)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button .jp-components-spinner,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active .jp-components-spinner{width:100%}@keyframes rotate-spinner{to{transform:rotate(1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.jp-components-spinner__outer{border-top-color:#fff}.jp-components-spinner__inner{border-right-color:#fff;border-top-color:#fff;height:100%;opacity:.4;width:100%}.jp-license-activation-screen-illustration{align-items:center;background:var(--jp-white-off);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-illustration--wrapper{display:flex;flex:1}.jp-license-activation-screen-illustration--wrapper img{align-self:center;height:auto;max-width:100%}.jp-license-activation-screen-illustration--support-link{flex:0}.components-button.jp-license-activation-screen-success-info--button,.components-button.jp-license-activation-screen-success-info--button:active,.components-button.jp-license-activation-screen-success-info--button:visited{background-color:var(--jp-black);border-radius:4px;color:var(--jp-white);font-size:16px;font-size:var(--font-body);font-style:normal;font-weight:600;justify-content:center;line-height:24px;margin:0 40px 20px 0;min-height:48px;min-width:158px;padding:13.5px 45px;width:100%}@media screen and (min-width:480px){.components-button.jp-license-activation-screen-success-info--button,.components-button.jp-license-activation-screen-success-info--button:active,.components-button.jp-license-activation-screen-success-info--button:visited{width:auto}}.components-button.jp-license-activation-screen-success-info--button:active:hover,.components-button.jp-license-activation-screen-success-info--button:hover,.components-button.jp-license-activation-screen-success-info--button:visited:hover{background-color:var(--jp-black-80);color:var(--jp-white)}.components-button.jp-license-activation-screen-success-info--button:active:focus,.components-button.jp-license-activation-screen-success-info--button:focus,.components-button.jp-license-activation-screen-success-info--button:visited:focus{background-color:var(--jp-black-80);border:1px solid var(--jp-white);color:var(--jp-white)}.components-button.jp-license-activation-screen-success-info--button:active:disabled,.components-button.jp-license-activation-screen-success-info--button:active[disabled],.components-button.jp-license-activation-screen-success-info--button:disabled,.components-button.jp-license-activation-screen-success-info--button:visited:disabled,.components-button.jp-license-activation-screen-success-info--button:visited[disabled],.components-button.jp-license-activation-screen-success-info--button[disabled]{background-color:var(--jp-gray);color:var(--jp-gray-20)}.components-button.jp-license-activation-screen-success-info--button .jp-components-spinner,.components-button.jp-license-activation-screen-success-info--button:active .jp-components-spinner,.components-button.jp-license-activation-screen-success-info--button:visited .jp-components-spinner{width:100%}.jp-license-activation-screen-success-info--product-details h1{line-height:52px}.jp-license-activation-screen-success-info--product-details a{color:var(--jp-black);text-decoration:underline!important}.jp-license-activation-screen-success-info--external-link{color:var(--jp-black);font-size:16px;font-style:normal;font-weight:600;text-decoration:underline!important;white-space:nowrap}.jp-license-activation-screen-success-info{background:var(--jp-white);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-success-info h1{font-size:44px;font-weight:700;line-height:1.4;margin:.67em 0}.jp-license-activation-screen-success-info p{font-size:var(--font-body);margin:1em 0}.jp-license-activation-screen-success-info label{font-size:var(--font-body);font-weight:600}@media screen and (min-width:780px){.jp-license-activation-screen-success-info{padding:64px}}@media screen and (max-width:480px){.jp-license-activation-screen-success-info .jp-license-activation-screen-success-info--buttons{text-align:center}}.EiaNctK1_P9pPqOeiaSI{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.ogHZg_sJCljylz3VJfsf{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.ogHZg_sJCljylz3VJfsf{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.ogHZg_sJCljylz3VJfsf{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.zv7eGvijKRkbPVakubHw{grid-column-end:span 1}.VoJNoiya_1ck3_kXS6_C{grid-column-end:span 2}.ecv0NO526NoTNbpALA1A{grid-column-end:span 3}.OfBdkceMzeHvRbzhqDlP{grid-column-end:span 4}@media(min-width:600px){.JLb3NpEKN8pOaWd7K1bu{grid-column-end:span 1}.fsMPGqPKE4mjMIPFwl77{grid-column-end:span 2}.DIK_zdaGAQ09eKspBJ4E{grid-column-end:span 3}.shXYpxPu3WCJsR8aOHtz{grid-column-end:span 4}.s7ElrOqG_yGd5SIfwqOR{grid-column-end:span 5}.Cxml9uzGvArAL8_RDs_p{grid-column-end:span 6}.aANxBKDGx72eDqU0iUPj{grid-column-end:span 7}.XxyzuTY3mnQcl9EGZadm{grid-column-end:span 8}}@media(min-width:960px){.Sfo4WaSNIWInJ93Abd3w{grid-column-end:span 1}.tQS7SKUGrU4THhWMysbo{grid-column-end:span 2}.I94U7mpY4h16pcOksZNF{grid-column-end:span 3}.uWMb9k77kQxBdS5MTt0s{grid-column-end:span 4}.rKwEEZQxK9s_POMg5Jss{grid-column-end:span 5}.UcPXX_s06IPCkF7ZjH3D{grid-column-end:span 6}.CrQdtiCFkRbzY6K2dFvt{grid-column-end:span 7}.rEUALOmOdUBXO0Us871z{grid-column-end:span 8}.NqXa9TlcTEviVsB53hBV{grid-column-end:span 9}.OnWVeiQiwgQ9lzdGPW66{grid-column-end:span 10}.D2PkTcy7b8u2K9QXY6VQ{grid-column-end:span 11}.EcqBhzAyxo5RDc2Y6m7K{grid-column-end:span 12}}@media(max-width:960px){.gB1mWzHOM38d80lrhBRX{display:none}}@media(max-width:600px){.KNQXLP78ejczOkour3zg{display:none}}.rBVbaVWBnBRtTMrUKZxm{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);display:block;margin:32px 0;padding:16px 64px 16px 24px;position:relative;text-decoration:none}.rBVbaVWBnBRtTMrUKZxm span{display:block}.rBVbaVWBnBRtTMrUKZxm span:last-of-type{font-weight:600}.rBVbaVWBnBRtTMrUKZxm:focus span:last-of-type,.rBVbaVWBnBRtTMrUKZxm:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.rBVbaVWBnBRtTMrUKZxm:focus:after,.rBVbaVWBnBRtTMrUKZxm:hover:after{transform:translateY(-50%) translateX(8px)}.rBVbaVWBnBRtTMrUKZxm:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.gfM_DIJrVbRhmKdAphIm{background:var(--jp-white);border-radius:var(--jp-modal-radius);box-shadow:0 12px 16px -.5px rgba(0,0,0,.15);height:max-content;margin:3rem auto;max-width:414px;overflow:hidden;position:relative;transition:height .25s cubic-bezier(.59,.37,.18,1.19) 0;width:90%;will-change:height}.gfM_DIJrVbRhmKdAphIm>div:first-child{padding:0}.gfM_DIJrVbRhmKdAphIm *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.gfM_DIJrVbRhmKdAphIm p{color:var(--jp-black)}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN{display:none}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh{height:614px;transition-delay:2.15s}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh h2{margin-top:0}._j4GWTmW5psCHFYh6R0x{align-self:flex-start;margin-top:var(--jp-gap)!important;padding:8px var(--jp-modal-padding-small)!important;width:100%}.saSAjv8yulVXQDoqDJEI{font-weight:500;line-height:110%;margin-bottom:8px}.O_hcdbeMivIhBn7ApDnS{line-height:140%}@media(min-width:760px){.gfM_DIJrVbRhmKdAphIm{height:740px;max-width:1360px;position:relative;width:95%}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN{display:block;left:64px;position:absolute;top:64px;z-index:99}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN clipPath,.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN path{fill:#000}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN path.FCnyb_xCK7DhJ63p6TEd{fill:#fff}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh{height:740px;transition-delay:0}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN clipPath,.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN path{transition:fill 2s ease .5s;fill:#fff}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN path.FCnyb_xCK7DhJ63p6TEd{transition:fill 2s ease .5s;fill:#000}}@keyframes OmAVpCQ270MqI4IsT9Ky{20%{transform:translateY(0) scale(1)}65%{transform:translateY(16%) scale(1.4)}to{transform:translateY(0) scale(1)}}.Qn5xayjI_jH2m1d6BEoq{border-radius:var(--jp-button-radius);display:flex;height:50%;justify-content:center;min-height:400px;overflow:hidden;position:relative;transition:height .55s cubic-bezier(.59,.37,.18,1) 0s;will-change:height}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq{height:100%;transition-delay:.65s}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq video{animation:OmAVpCQ270MqI4IsT9Ky 1.5s ease-in-out forwards}.Qn5xayjI_jH2m1d6BEoq video{height:100%;left:0;object-fit:cover;position:absolute;top:0;transform:scale(1);transition:all .85s cubic-bezier(1,0,.39,1) 0s;width:100%;will-change:transform}@media(min-width:760px){@keyframes Axe8f2LgqEBZHVcsRgY5{0%{animation-timing-function:cubic-bezier(.86,0,.07,1);left:60%;top:32px}50%{animation-timing-function:cubic-bezier(.17,.84,.44,1);bottom:32px;left:32px;top:32px;width:100%}to{left:32px;width:40%}}.Qn5xayjI_jH2m1d6BEoq{border-radius:12px;bottom:32px;display:block;height:auto;left:60%;overflow:hidden;position:absolute;right:32px;top:32px;transition-delay:0;transition:width .55s ease 0s;z-index:3}.Qn5xayjI_jH2m1d6BEoq video{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq{animation-delay:.25s;animation-duration:2s;animation-fill-mode:forwards;animation-name:Axe8f2LgqEBZHVcsRgY5;height:auto}}.iBMDoShSmqpt72YfJb36{padding:var(--jp-modal-padding)}.iBMDoShSmqpt72YfJb36 h2{font-size:clamp(1.5rem,-.7353rem + 4.7059vw,3.5rem)}.iBMDoShSmqpt72YfJb36 p{font-size:clamp(1rem,.6974rem + 1.1696vw,1.75rem)}.iBMDoShSmqpt72YfJb36 p.eQG1KKK8jjKtQyzfv573{display:none;font-size:clamp(1.25rem,1.1491rem + .3899vw,1.5rem)}@media(min-width:760px){.iBMDoShSmqpt72YfJb36{bottom:15%;display:flex;flex-direction:column;gap:64px;left:64px;padding:0 var(--jp-modal-padding) 0 0;position:absolute;width:55%}.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC{align-items:flex-start;display:flex;flex-direction:column;gap:16px;padding:0 32px 0 0}.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC h2,.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC p{margin:0}.iBMDoShSmqpt72YfJb36 p.eQG1KKK8jjKtQyzfv573{display:block}.iBMDoShSmqpt72YfJb36 ._j4GWTmW5psCHFYh6R0x{align-self:flex-start;padding:16px var(--jp-modal-padding-large)!important;width:auto}.pnwbCuWbV0PNQr1LFpRh .iBMDoShSmqpt72YfJb36{left:-20px;opacity:0;transition:all .55s cubic-bezier(.59,.37,.18,1) .3s}}.HQVDZ6J3x6SJNYFX5khS{background:var(--jp-white);left:0;opacity:0;position:absolute;top:100%;transition:transform .45s cubic-bezier(.59,.37,.18,1) 2s,opacity .45s linear;width:100%;will-change:transform,opacity;z-index:2}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS{opacity:1;transform:translateY(-100%);transition-delay:2s}@media(min-width:760px){.HQVDZ6J3x6SJNYFX5khS{align-items:flex-end;bottom:5%;container-type:inline-size;display:flex;flex-direction:column;gap:40px;left:45%;padding:0;right:32px;transform:translateY(0);transition-delay:0;transition:none;width:auto}.HQVDZ6J3x6SJNYFX5khS h2{width:100%}.HQVDZ6J3x6SJNYFX5khS ._j4GWTmW5psCHFYh6R0x{margin-right:var(--jp-modal-padding-large)}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS{bottom:12%;left:45%;opacity:1;right:32px;top:unset;transform:translateY(0);transition:all .45s cubic-bezier(.59,.37,.18,1) 2s,opacity .45s linear;transition-delay:2s;width:auto}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS .l35bIyiqYJiZ6tVYvJtC{padding-left:32px}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS ._j4GWTmW5psCHFYh6R0x{align-self:flex-end}}.KdvmPIjelQIFiPQGuIYf{background:var(--jp-gray-0);display:flex;flex-direction:column;gap:var(--jp-gap)}.KdvmPIjelQIFiPQGuIYf div{background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-button-radius);box-shadow:0 0 40px 0 rgba(0,0,0,.08);flex:1;padding:var(--jp-modal-padding)}.KdvmPIjelQIFiPQGuIYf h3{font-size:24px;line-height:normal;margin:0}.KdvmPIjelQIFiPQGuIYf p{font-size:14px}@media(min-width:760px){.KdvmPIjelQIFiPQGuIYf{flex-direction:row;padding:var(--jp-modal-padding-large)}.KdvmPIjelQIFiPQGuIYf div{border:none;box-shadow:0 2px 16px rgba(0,0,0,.08),0 2px 2px rgba(0,0,0,.1)}.KdvmPIjelQIFiPQGuIYf div p{margin:8px 0}.KdvmPIjelQIFiPQGuIYf svg{margin-bottom:var(--jp-modal-padding-small)}}@container (max-width: 600px){.KdvmPIjelQIFiPQGuIYf div{padding:var(--jp-modal-padding-small)}}.cuoSlhSNrqf1dozY22Xb{fill:#000}.JLquNpQVlysAamuh5lJO,.lAIiifeLMmZAPlQ9n9ZR{fill:var(--jp-green-primary)}.cbOwD8Y4tFjwimmtchQI{fill:#757575}.cbOwD8Y4tFjwimmtchQI.aLWBKY0yRghEk7tNCgK3{fill:var(--color-bluesky)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw{fill:var(--color-facebook)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.af4Y_zItXvLAOEoSDPSv{fill:var(--color-twitter)}.cbOwD8Y4tFjwimmtchQI.f68aqF3XSD1OBvXR1get{fill:var(--color-linkedin)}.cbOwD8Y4tFjwimmtchQI.xFI0dt3UiXRlRQdqPWkx{fill:var(--color-tumblr)}.cbOwD8Y4tFjwimmtchQI.q7JEoyymveP6kF747M43{fill:var(--color-gplus)}.cbOwD8Y4tFjwimmtchQI.DKOBOTVmTLbh26gUH_73{fill:var(--color-mastodon)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw{fill:var(--color-nextdoor)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.cL3m0xBYTYhIKI7lCqDB{fill:var(--color-instagram)}.cbOwD8Y4tFjwimmtchQI.fftumuc_lJ6v0tq4UMVR{fill:var(--color-whatsapp)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI{fill:var(--color-threads)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI.social-logo{border-radius:40%}.SqdhUZkXCRuIpErj1B3z{--max-container-width:1128px;--vertical-gutter:24px;--horizontal-spacing:8px;column-gap:var(--vertical-gutter);display:grid;margin:0 auto;max-width:var(--max-container-width);width:100%}@media(max-width:599px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 16px}}@media(min-width:600px)and (max-width:959px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(8,minmax(0,1fr));padding:0 18px}}@media(min-width:960px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(12,minmax(0,1fr));padding:0 24px}}.SqdhUZkXCRuIpErj1B3z.OZC_9a1LhpWF9dv15Gdh{max-width:none;padding:unset}@media(max-width:599px){.RuVLl3q4lxTQa3wbhBJB{grid-column-end:span 1}.f9LZTRG4MMK42rS89afW{grid-column-start:1}.bHe_zKxjjpUwHw_MdYE1{grid-column-end:2}.QZbNrOqE2aNSn50xVhpU{grid-column-end:span 2}.ev7W3z7zVYPeHAlYqZjf{grid-column-start:2}.NJWd1m_e7lOiPYru2ZMP{grid-column-end:3}.Xc6nt1Qc1DI0Z2A3gt1r{grid-column-end:span 3}.UIcN_GXiPRoIsin8Kohg{grid-column-start:3}.GRKCyqb5LufCSCgykKFc{grid-column-end:4}.i_qTq8gqhhC3vIUepVRB{grid-column-end:span 4}.G3qaZ3Jpbvam_1XvGxgc{grid-column-start:4}.VRCNYKZtO9zukEwmgP1y{grid-column-end:5}}@media(min-width:600px)and (max-width:959px){.tRm008K_WJL79WoNZTNL{grid-column-end:span 1}.l5T2P_bgKts4tdaRkS1d{grid-column-start:1}.zOCxfLZpF6BlgC7a_Yq1{grid-column-end:2}.F80DdgVn0m5OpvtSQWka{grid-column-end:span 2}.oI1c7JYfiJtMQHbhngtU{grid-column-start:2}.pMQtA_4jh1_1lVknqEP5{grid-column-end:3}.VenqMpdgyKQVUNNQcfqd{grid-column-end:span 3}.seNYL99uoczf9V4MxBxT{grid-column-start:3}.YKfF1HFhI9KygA5l3b2J{grid-column-end:4}.yAi0Cv1xDWkoqsaUhvhR{grid-column-end:span 4}.ubhnyZOnkgxNhh6XtVWv{grid-column-start:4}.RGOPGQbWMJ9Ei5oFxS7X{grid-column-end:5}.Sz1E2aWbX483ijdi6yge{grid-column-end:span 5}.tku6_bRYrX9tMbgYGmIl{grid-column-start:5}.b5JHttOhSEcI1WBlqAjk{grid-column-end:6}.FboSx5MoKTAWbxXyYlCw{grid-column-end:span 6}.Jhs8yEEmodG30edbJvag{grid-column-start:6}.IpzbbKVqEqPcfIGkXkwt{grid-column-end:7}.mhCPwfAZ4Kmm_empzJAq{grid-column-end:span 7}.x034ilrJF7rO9UJB2rI1{grid-column-start:7}.Wt8t2e16viRrOJ1lLA5v{grid-column-end:8}.S6pIrEy9AMLKx9bgh_Ae{grid-column-end:span 8}.kEfI4tGyuWfHTlRnvIab{grid-column-start:8}.PUzX4RRsKq1dnsz3gebS{grid-column-end:9}}@media(min-width:960px){.X_pdcLJikd8LS_YAdJlB{grid-column-end:span 1}.tl936d14Huby4khYp05X{grid-column-start:1}.hnge0LnR69d3NXEtEE1t{grid-column-end:2}.fj0NUMuyZQcPNgKcjp5Z{grid-column-end:span 2}.R2ncBX7a2NigdYCcV1OX{grid-column-start:2}.t8vMSDVYno9k9itRwnXb{grid-column-end:3}.wsDuEN2GqHx6qzo8dUdk{grid-column-end:span 3}.cIEVPUweWtLBy3xaXnMx{grid-column-start:3}.fajUWBwu1m2B479j3jmz{grid-column-end:4}.YR0c7fQTgMkDdWzwSyLp{grid-column-end:span 4}.xlwp8BmplxkKNMI7gamo{grid-column-start:4}._C4O1w9DUqx1m3gPf8aA{grid-column-end:5}.Z54F1hAErckAIrKlxnXW{grid-column-end:span 5}.ezSDWkRHmKSxDJXxuiOH{grid-column-start:5}.T0ChoeAjGJjkkNrYhD4g{grid-column-end:6}.qtMoMPF6yHvGJnWHSsde{grid-column-end:span 6}.gdoywN5VPiWERfIBqkph{grid-column-start:6}.wUev_VH5uf_pwFFlbnAU{grid-column-end:7}.egIPDFJsOpownTClq9XP{grid-column-end:span 7}.yGhp9yoAW7k0kQik9AB7{grid-column-start:7}.SJ43U9mR5wUg5V2qBeQA{grid-column-end:8}.cTuyHfMwSUJxN_HdIEgd{grid-column-end:span 8}.smCr8DaIagcumdvdldiK{grid-column-start:8}.T03NHzQJvzwL6wAfIiTL{grid-column-end:9}.pMvxM3RJGjqyNdf9qg1Y{grid-column-end:span 9}.iIVpNRwEnQ_JI5gpp9EN{grid-column-start:9}.ZbQ4u4vGSX5rJOje4uGL{grid-column-end:10}.gKb5wuIDAlKGbrjK2vxy{grid-column-end:span 10}.Z7pINdImE2WJiYnZBTqm{grid-column-start:10}.ZTxp6qpvwurMdOnLLSz1{grid-column-end:11}.NnQTlbfnxPDR6cQ7rygg{grid-column-end:span 11}.O137wZd6Yl0olSA9PsXR{grid-column-start:11}.zf2OJtQ2MPz6SDoh6CB0{grid-column-end:12}.U3H6UHW6HqRt9hdzVg3O{grid-column-end:span 12}.zynnNeS_ZBTxABcVpUQH{grid-column-start:12}.vI8tltFZtFUNAy9Iag9s{grid-column-end:13}}.zI5tJ_qhWE6Oe6Lk75GY{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;border-radius:var(--jp-border-radius);font-weight:600;justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo{height:calc(var(--spacing-base)*5);padding:var(--spacing-base);width:calc(var(--spacing-base)*5)}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo>svg:first-child{margin:0;padding:0}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo.Na39I683LAaSA99REg14{height:calc(var(--spacing-base)*4);min-width:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*4)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body);height:auto;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK{padding:var(--spacing-base) calc(var(--spacing-base)*2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body-extra-small);height:auto;line-height:20px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK>svg:first-child{margin-right:calc(var(--spacing-base)/2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo)>.components-spinner{height:20px}.zI5tJ_qhWE6Oe6Lk75GY.lZAo6_oGfclXOO9CC6Rd{font-weight:400}.zI5tJ_qhWE6Oe6Lk75GY.xJDOiJxTt0R_wSl8Ipz_{min-width:100%}.zI5tJ_qhWE6Oe6Lk75GY.is-primary:disabled,.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:disabled{background:var(--jp-gray);color:var(--jp-gray-20)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary{background:var(--jp-white);box-shadow:inset 0 0 0 1.51px var(--jp-black)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:active:not(:disabled),.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:hover:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-link.Na39I683LAaSA99REg14,.zI5tJ_qhWE6Oe6Lk75GY.is-link.ipS7tKy9GntCS4R3vekF{padding:0}.zI5tJ_qhWE6Oe6Lk75GY.is-link:hover:not(:disabled){text-decoration-thickness:3px}.zI5tJ_qhWE6Oe6Lk75GY.is-link:focus:not(:disabled){text-decoration-line:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:not(:disabled){background:var(--jp-red-50);box-shadow:inset 0 0 0 1px var(--jp-red-50);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:hover:not(:disabled){background:var(--jp-red-60);box-shadow:inset 0 0 0 1px var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:focus:not(:disabled){background:var(--jp-red-70);box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:active:not(:disabled){background:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:not(:disabled){background:var(--jp-white);box-shadow:inset 0 0 0 1.5px var(--jp-red-50);color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:hover:not(:disabled){background:var(--jp-red-0);box-shadow:inset 0 0 0 1.5px var(--jp-red-60);color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:active:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:not(:disabled){color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:hover:not(:disabled){box-shadow:none;color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6{position:relative}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6.has-icon{justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>:not(.components-spinner){visibility:hidden}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>.components-spinner{margin:0;position:absolute}.CDuBjJp_8jxzx5j6Nept{margin-left:calc(var(--spacing-base)/2)}.jp-license-activation-screen{border-radius:4px;box-shadow:0 4px 24px 0 rgba(0,0,0,.149);display:flex;flex-direction:column;min-height:540px;overflow:hidden}@media screen and (min-width:780px){.jp-license-activation-screen{flex-direction:row}}.hdasSNj9k3Sc5PwXK4uE{margin-right:4px;width:16px}.eWN8Hj0SBRDq1F48n_Fg{--gray-70:#3c434a;align-items:center;color:var(--gray-70);display:flex;font-size:14px;text-decoration:none}.jp-dashboard-footer{align-items:center;color:var(--jp-black);display:flex;flex-wrap:wrap;font-size:var(--font-body-extra-small);line-height:1.333;max-width:1128px;width:100%}.jp-dashboard-footer a{text-decoration:none}.jp-dashboard-footer a:any-link,.jp-dashboard-footer a[role=button]{color:inherit}.jp-dashboard-footer a:hover{text-decoration:underline;text-decoration-thickness:1.5px}.jp-dashboard-footer a:focus{border-radius:2px;box-shadow:none;outline:1.5px solid currentColor;outline-offset:3px}.jp-dashboard-footer.is-sm>ul{gap:.125rem}.jp-dashboard-footer.is-md,.jp-dashboard-footer.is-sm>ul{align-items:flex-start;flex-direction:column}.jp-dashboard-footer>ul{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0;width:100%}.jp-dashboard-footer>ul>li{margin-bottom:0}.jp-dashboard-footer>ul>li>a{align-items:center;display:flex;gap:.25rem;min-height:44px}.jp-dashboard-footer__accessible-external-link{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px}.jp-dashboard-footer__jp-item{font-weight:600;padding-inline-end:1rem}.jp-dashboard-footer.is-sm .jp-dashboard-footer__jp-item{padding-bottom:1rem}.jp-dashboard-footer.is-lg .jp-dashboard-footer__a8c-item{margin-inline-start:auto}.jp-dashboard-footer.is-sm .jp-dashboard-footer__a8c-item{padding-top:1rem}.jp-dashboard-footer__a8c-item>a,.jp-dashboard-footer__jp-item>a{text-decoration:none}.sexr0jUxC1jVixdKiDnC{margin-left:-20px}@media(max-width:782px){.sexr0jUxC1jVixdKiDnC{margin-left:-10px}}.sexr0jUxC1jVixdKiDnC.vKQ11sLeAM45M04P1ccj{background-color:var(--jp-white)}.rV_5QyvhDnsVjCX4pb0h{--gray-90:#1e1e1e;fill:var(--gray-90);width:24px}.MO1jDNY8VPqeNS9xL8jE{align-items:center;display:flex;text-decoration:none}.zvd4dCB_bBDiXJKKDqXm{position:relative}.ly4o9lSswAGHFXqGUEIO{position:absolute;right:32px;top:32px;z-index:1}.u64Go3kwEZ7MD9eji0H1{color:var(--jp-gray-50);font-size:13px;margin-bottom:8px;width:60%}._RT41NE3LU4R0ubcij2y{align-items:center;display:flex;gap:8px}._RT41NE3LU4R0ubcij2y li{background:none!important;margin:0!important;padding:0!important}.cFGWJeRiGHjAr8D7CWJW{max-width:110px}.Iz3l7a05TP6HK9S92TIL{width:16px}.lmQ0wFmnk4kKkGVjokPA{height:18px}.ZSFTmY3zE3VP4w0QeaqV{width:16px}.AoIs8wD92wKR8RpQj6Uc{align-items:center;display:inline-flex}.WQVtrU6q0L1Igcj7wCrQ{margin:0;padding:0}.UujoBFTnQNY2cWU2SIsH{font-size:var(--font-headline-medium);font-weight:700;line-height:52px}.TeGO5V_thHw5lDAm1_2M{font-weight:700}.TeGO5V_thHw5lDAm1_2M,.WolQzb2MsSgiNmLtc7_j{font-size:var(--font-headline-small);line-height:40px}.WolQzb2MsSgiNmLtc7_j{font-weight:400}.hUB0JT8p1T2Hw28N6qC8{font-weight:500}.gKZWDv5chz3_O3Syp74H,.hUB0JT8p1T2Hw28N6qC8{font-size:var(--font-title-medium);line-height:32px}.gKZWDv5chz3_O3Syp74H{font-weight:600}.zY2No8Ga4b8shbOQGhnv{font-size:var(--font-title-small);font-weight:500;line-height:30px}.tIj0D1t8Cc892ikmgFPZ{font-size:var(--font-body);font-weight:400;line-height:24px}.KdcN0BnOaVeVhyLRKqhS{font-size:var(--font-body-small);font-weight:400;line-height:24px}.dso3Rh3tl3Xv1GumBktz{font-weight:400}.dso3Rh3tl3Xv1GumBktz,.mQ1UlbN9u4Mg9byO8m7v{font-size:var(--font-body-extra-small);line-height:20px}.mQ1UlbN9u4Mg9byO8m7v{font-weight:700}.PItlW5vRExLnTj4a8eLE{font-size:var(--font-body-extra-small);font-weight:600;line-height:16px}.TwRpPlktzxhmFVeua7P5{margin:calc(var( --spacing-base )*0)}.zVfqx7gyb3o9mxfGynn1{margin-left:calc(var( --spacing-base )*0);margin-right:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy{margin-bottom:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy,.xqDIp6cNVr_E6RXaiPyD{margin-top:calc(var( --spacing-base )*0)}.S8EwaXk1kyPizt6x4WH2{margin-right:calc(var( --spacing-base )*0)}.ODX5Vr1TARoLFkDDFooD{margin-bottom:calc(var( --spacing-base )*0)}.cphJ8dCpfimnky7P2FHg{margin-left:calc(var( --spacing-base )*0)}.PFgIhNxIyiSuNvQjAIYj{margin:calc(var( --spacing-base )*1)}.M2jKmUzDxvJjjVEPU3zn{margin-left:calc(var( --spacing-base )*1);margin-right:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk{margin-bottom:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk,.rcTN5uw9xIEeMEGL3Xi_{margin-top:calc(var( --spacing-base )*1)}.CQSkybjq2TcRM1Xo9COV{margin-right:calc(var( --spacing-base )*1)}.hfqOWgq6_MEGdFE82eOY{margin-bottom:calc(var( --spacing-base )*1)}.I8MxZQYTbuu595yfesWA{margin-left:calc(var( --spacing-base )*1)}.kQkc6rmdpvLKPkyoJtVQ{margin:calc(var( --spacing-base )*2)}.j6vFPxWuu4Jan2ldoxpp{margin-left:calc(var( --spacing-base )*2);margin-right:calc(var( --spacing-base )*2)}.hqr39dC4H_AbactPAkCG{margin-bottom:calc(var( --spacing-base )*2)}.c3dQnMi16C6J6Ecy4283,.hqr39dC4H_AbactPAkCG{margin-top:calc(var( --spacing-base )*2)}.YNZmHOuRo6hU7zzKfPdP{margin-right:calc(var( --spacing-base )*2)}.Db8lbak1_wunpPk8NwKU{margin-bottom:calc(var( --spacing-base )*2)}.ftsYE5J9hLzquQ0tA5dY{margin-left:calc(var( --spacing-base )*2)}.Det4MHzLUW7EeDnafPzq{margin:calc(var( --spacing-base )*3)}.h_8EEAztC29Vve1datb5{margin-left:calc(var( --spacing-base )*3);margin-right:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM{margin-bottom:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM,.soADBBkcIKCBXzCTuV9_{margin-top:calc(var( --spacing-base )*3)}.zSX59ziEaEWGjnpZa4uV{margin-right:calc(var( --spacing-base )*3)}.yrVTnq_WBMbejg89c2ZQ{margin-bottom:calc(var( --spacing-base )*3)}.UKtHPJnI2cXBWtPDm5hM{margin-left:calc(var( --spacing-base )*3)}.guexok_Tqd5Tf52hRlbT{margin:calc(var( --spacing-base )*4)}.oS1E2KfTBZkJ3F0tN7T6{margin-left:calc(var( --spacing-base )*4);margin-right:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd{margin-bottom:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd,.ot2kkMcYHv53hLZ4LSn0{margin-top:calc(var( --spacing-base )*4)}.A1krOZZhlQ6Sp8Cy4bly{margin-right:calc(var( --spacing-base )*4)}.pkDbXXXL32237M0hokEh{margin-bottom:calc(var( --spacing-base )*4)}.XXv4kDTGvEnQeuGKOPU3{margin-left:calc(var( --spacing-base )*4)}.yGqHk1a57gaISwkXwXe6{margin:calc(var( --spacing-base )*5)}.X8cghM358X3DkXLc9aNK{margin-left:calc(var( --spacing-base )*5);margin-right:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f{margin-bottom:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f,.yqeuzwyGQ7zG0avrGqi_{margin-top:calc(var( --spacing-base )*5)}.g9emeCkuHvYhveiJbfXO{margin-right:calc(var( --spacing-base )*5)}.Lvk3dqcyHbZ07QCRlrUQ{margin-bottom:calc(var( --spacing-base )*5)}.r3yQECDQ9qX0XZzXlVAg{margin-left:calc(var( --spacing-base )*5)}.aQhlPwht2Cz1X_63Miw0{margin:calc(var( --spacing-base )*6)}.JyHb0vK3wJgpblL9s5j8{margin-left:calc(var( --spacing-base )*6);margin-right:calc(var( --spacing-base )*6)}.cY2gULL1lAv6WPNIRuf3{margin-bottom:calc(var( --spacing-base )*6)}.NBWQ9Lwhh_fnry3lg_p7,.cY2gULL1lAv6WPNIRuf3{margin-top:calc(var( --spacing-base )*6)}.yIOniNe5E40C8fWvBm5V{margin-right:calc(var( --spacing-base )*6)}.t30usboNSyqfQWIwHvT3{margin-bottom:calc(var( --spacing-base )*6)}.Nm_TyFkYCMhOoghoToKJ{margin-left:calc(var( --spacing-base )*6)}.C4qJKoBXpgKtpmrqtEKB{margin:calc(var( --spacing-base )*7)}.S93Srbu6NQ_PBr7DmTiD{margin-left:calc(var( --spacing-base )*7);margin-right:calc(var( --spacing-base )*7)}.fJj8k6gGJDks3crUZxOS{margin-bottom:calc(var( --spacing-base )*7)}.cW6D6djs7Ppm7fD7TeoV,.fJj8k6gGJDks3crUZxOS{margin-top:calc(var( --spacing-base )*7)}.DuCnqNfcxcP3Z__Yo5Ro{margin-right:calc(var( --spacing-base )*7)}.im8407m2fw5vOg7O2zsw{margin-bottom:calc(var( --spacing-base )*7)}.G0fbeBgvz2sh3uTP9gNl{margin-left:calc(var( --spacing-base )*7)}.kvW3sBCxRxUqz1jrVMJl{margin:calc(var( --spacing-base )*8)}.tOjEqjLONQdkiYx_XRnw{margin-left:calc(var( --spacing-base )*8);margin-right:calc(var( --spacing-base )*8)}.op5hFSx318zgxsoZZNLN{margin-bottom:calc(var( --spacing-base )*8)}.c9WfNHP6TFKWIfLxv52J,.op5hFSx318zgxsoZZNLN{margin-top:calc(var( --spacing-base )*8)}.sBA75QqcqRwwYSHJh2wc{margin-right:calc(var( --spacing-base )*8)}.GpL6idrXmSOM6jB8Ohsf{margin-bottom:calc(var( --spacing-base )*8)}.HbtWJoQwpgGycz8dGzeT{margin-left:calc(var( --spacing-base )*8)}.uxX3khU88VQ_Ah49Ejsa{padding:calc(var( --spacing-base )*0)}.KX0FhpBKwKzs9fOUdbNz{padding-left:calc(var( --spacing-base )*0);padding-right:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz{padding-bottom:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz,.emxLHRjQuJsImnPbQIzE{padding-top:calc(var( --spacing-base )*0)}.kJ8WzlpTVgdViXt8ukP9{padding-right:calc(var( --spacing-base )*0)}.tg_UIUI11VBzrTAn2AzJ{padding-bottom:calc(var( --spacing-base )*0)}.uczvl8kaz84oPQJ2DB2R{padding-left:calc(var( --spacing-base )*0)}.o7UHPcdVK3lt7q3lqV4o{padding:calc(var( --spacing-base )*1)}.IDqEOxvDoYrFYxELPmtX{padding-left:calc(var( --spacing-base )*1);padding-right:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2{padding-bottom:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2,.npy3hw4A5QSkDicb2CJJ{padding-top:calc(var( --spacing-base )*1)}.LgbptTApNY5NwLQvEFAt{padding-right:calc(var( --spacing-base )*1)}.WZQy2SZuZso59bUsXXyl{padding-bottom:calc(var( --spacing-base )*1)}.o331apInxNunbYB3SfPE{padding-left:calc(var( --spacing-base )*1)}.fMPIyD9Vqki1Lrc_yJnG{padding:calc(var( --spacing-base )*2)}.i2pMcTcdrr10IQoiSm_L{padding-left:calc(var( --spacing-base )*2);padding-right:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH{padding-bottom:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH,.o9bGieUKcYc8o0Ij9oZX{padding-top:calc(var( --spacing-base )*2)}.SwZcFez1RDqWsOFjB5iG{padding-right:calc(var( --spacing-base )*2)}.eHpLc_idmuEqeqCTvqkN{padding-bottom:calc(var( --spacing-base )*2)}.vU39i2B4P1fUTMB2l6Vo{padding-left:calc(var( --spacing-base )*2)}.JHWNzBnE29awhdu5BEh1{padding:calc(var( --spacing-base )*3)}.X72lGbb56L3KFzC2xQ9N{padding-left:calc(var( --spacing-base )*3);padding-right:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e{padding-bottom:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e,.srV0KSDC83a2fiimSMMQ{padding-top:calc(var( --spacing-base )*3)}.lUWfkmbQjCskhcNwkyCm{padding-right:calc(var( --spacing-base )*3)}.Ts0dIlc3aTSL7V4cIHis{padding-bottom:calc(var( --spacing-base )*3)}.CzlqQXXhX6MvorArFZ8B{padding-left:calc(var( --spacing-base )*3)}.TqMPkQtR_DdZuKb5vBoV{padding:calc(var( --spacing-base )*4)}.a7UrjhI69Vetlcj9ZVzz{padding-left:calc(var( --spacing-base )*4);padding-right:calc(var( --spacing-base )*4)}.StEhBzGs2Gi5dDEkjhAv{padding-bottom:calc(var( --spacing-base )*4)}.FGneZfZyvYrt1dG0zcnm,.StEhBzGs2Gi5dDEkjhAv{padding-top:calc(var( --spacing-base )*4)}.APEH216rpdlJWgD2fHc8{padding-right:calc(var( --spacing-base )*4)}.oGwXC3ohCic9XnAj6x69{padding-bottom:calc(var( --spacing-base )*4)}.U6gnT9y42ViPNOcNzBwb{padding-left:calc(var( --spacing-base )*4)}.IpdRLBwnHqbqFrixgbYC{padding:calc(var( --spacing-base )*5)}.HgNeXvkBa9o3bQ5fvFZm{padding-left:calc(var( --spacing-base )*5);padding-right:calc(var( --spacing-base )*5)}.tJtFZM3XfPG9v9TSDfN1{padding-bottom:calc(var( --spacing-base )*5)}.PdifHW45QeXYfK568uD8,.tJtFZM3XfPG9v9TSDfN1{padding-top:calc(var( --spacing-base )*5)}.mbLkWTTZ0Za_BBbFZ5b2{padding-right:calc(var( --spacing-base )*5)}.vVWpZpLlWrkTt0hMk8XU{padding-bottom:calc(var( --spacing-base )*5)}.RxfaJj5a1Nt6IavEo5Zl{padding-left:calc(var( --spacing-base )*5)}.SppJULDGdnOGcjZNCYBy{padding:calc(var( --spacing-base )*6)}.palY2nLwdoyooPUm9Hhk{padding-left:calc(var( --spacing-base )*6);padding-right:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_{padding-bottom:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_,.YEEJ9b90ueQaPfiU8aeN{padding-top:calc(var( --spacing-base )*6)}.QE0ssnsKvWJMqlhPbY5u{padding-right:calc(var( --spacing-base )*6)}.n8yA3jHlMRyLd5UIfoND{padding-bottom:calc(var( --spacing-base )*6)}.tXHmxYnHzbwtfxEaG51n{padding-left:calc(var( --spacing-base )*6)}.kBTsPKkO_3g_tLkj77Um{padding:calc(var( --spacing-base )*7)}.RyhrFx6Y1FGDrGAAyaxm{padding-left:calc(var( --spacing-base )*7);padding-right:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO{padding-bottom:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO,.vQVSq6SvWKbOMu6r4H6b{padding-top:calc(var( --spacing-base )*7)}.oBy5__aEADMsH46mrgFX{padding-right:calc(var( --spacing-base )*7)}.KVEXoJqf1s92j0JMdNmN{padding-bottom:calc(var( --spacing-base )*7)}.ZMXGNrNaKW3k_3TLz0Fq{padding-left:calc(var( --spacing-base )*7)}.tuiR9PhkHXhGyEgzRZRI{padding:calc(var( --spacing-base )*8)}.U7454qyWkQNa2iaSJziu{padding-left:calc(var( --spacing-base )*8);padding-right:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8{padding-bottom:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8,.X1rm9DQ1zLGLfogja5Gn{padding-top:calc(var( --spacing-base )*8)}.JS7G6kAuqJo5GIuF8S5t{padding-right:calc(var( --spacing-base )*8)}.Y8F9ga1TDCMbM1lj4gUz{padding-bottom:calc(var( --spacing-base )*8)}.AJuyNGrI63BOWql719H8{padding-left:calc(var( --spacing-base )*8)}.terms-of-service{color:var(--jp-black);font-size:var(--font-body)}.terms-of-service .terms-of-service__link{color:var(--jp-green-50);text-decoration:underline;white-space:nowrap}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe{align-items:center;display:flex;gap:var(--spacing-base);margin-bottom:calc(var(--spacing-base)*3)}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .VmtuLc2xRqmsO6cK8qjF{position:relative;width:54px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .MdTRfQ3eo5qZKChZlzNj,.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .PbEpL02SEH9VNAlbKCfV{width:32px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .TD4AUM9gcTVAB6JHB5ZR{border-radius:50%;margin-left:-10px;position:absolute;width:32px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .yjl73qv0VWoPP8IhGreh{border-top-style:solid;border-top:2px dashed var(--jp-black);height:0;width:67px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .J0GIu2rNR7rXocQTyd8p{border-color:var(--jp-red)}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .rAV2E93SG8WpokuGk9jh{border-color:var(--jp-yellow-40)}.kezuOHNvu9vdvlJ86Fwg .YZ7FNKEm9qpvQ4ZkbAz5{transform:rotate(180deg)}.kezuOHNvu9vdvlJ86Fwg .TYNMsILey2vUwnyZSjJU{align-self:flex-end;margin-bottom:2px}.kezuOHNvu9vdvlJ86Fwg .oH9tzGE80LnB6Og69RFz{margin-bottom:var(--spacing-base)}.kezuOHNvu9vdvlJ86Fwg .oH9tzGE80LnB6Og69RFz,.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp{align-items:center;display:flex;gap:var(--spacing-base)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.J0GIu2rNR7rXocQTyd8p{color:var(--jp-red);fill:var(--jp-red)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.rAV2E93SG8WpokuGk9jh{color:var(--jp-yellow-40);fill:var(--jp-yellow-40)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.q4_FOHifGawULuFBZke9 svg{fill:var(--jp-green-50)}.OpMBda4vebhRbW8Fm6YC{background:var(--jp-white);border:1px solid var(--jp-gray-5);border-radius:var(--jp-border-radius-rna);box-shadow:0 4px 12px 0 rgba(0,0,0,.06);display:flex;flex-direction:column;height:100%;padding:calc(var(--spacing-base)*3)}.OpMBda4vebhRbW8Fm6YC.BghJAx9hSagUdHWOUaYE{background:none;background-color:var(--jp-white-off);color:var(--jp-black-80);text-decoration:none}.OpMBda4vebhRbW8Fm6YC.BghJAx9hSagUdHWOUaYE:focus{background-color:var(--jp-white);box-shadow:0 0 0 1.5px var(--jp-black);outline:3px solid transparent}.OpMBda4vebhRbW8Fm6YC.IWsEW5nnNWUqqcT3K5L1{box-shadow:0 0 0 1.5px var(--jp-red-60)}.r3UCwgwCthua6lDCvIBI{align-items:center;display:flex;gap:var(--spacing-base);justify-content:space-between;margin-bottom:var(--spacing-base);width:100%}.r3UCwgwCthua6lDCvIBI h3{font-weight:700}.vpluqUMgmwx9_f8wCVIn{align-items:center;display:flex;flex-wrap:wrap-reverse;gap:var(--spacing-base);height:100%}.pIsYsXFAJ9KX2VrS5rmY{min-height:200px;position:relative}.gmPKCDKZcfQt9WieTyKS{flex-grow:1}.fDBaV7I4yUO6w5AWVEtr{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:auto;min-height:28px;padding-top:calc(var(--spacing-base)*3);width:100%}.SelsBZT7eIWRQyl1dasZ{display:flex;gap:var(--spacing-base);justify-content:flex-start}.LHYJUrOej3toDvOAiz4k{align-items:center;display:flex;gap:var(--spacing-base);justify-content:space-between;margin-bottom:calc(var(--spacing-base)*.5);width:100%}.LHYJUrOej3toDvOAiz4k h3{font-weight:700;line-height:28px}.JFjbc0JgC4qC92ehOiUr{display:flex;position:relative}.JFjbc0JgC4qC92ehOiUr .NBZgqk_CGGfY3Q16OHjT{align-items:center;border:.5px solid var(--jp-black);border-bottom-right-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius);box-shadow:inset 0 0 0 1px var(--jp-black);cursor:pointer;display:flex;justify-content:center;padding:0}.JFjbc0JgC4qC92ehOiUr .Jh6TlOGQNgBwU_fFxPrm{background-color:var(--jp-black);margin-left:.5px}.JFjbc0JgC4qC92ehOiUr .VBxTkBZVxHaVoyhMRJcz{background-color:var(--jp-white);border-left-width:0;margin-left:-.5px}.UZ3NDyOSbGY9NZWb3bUD{background:var(--jp-white);border-radius:calc(var(--jp-border-radius)/2);box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 1.5px 0 rgba(0,0,0,.1),0 2px 3px -.5px rgba(0,0,0,.1);left:0;padding:var(--spacing-base);position:absolute;top:calc(100% + var(--spacing-base));z-index:1}.UZ3NDyOSbGY9NZWb3bUD .IpJGe_nvXXUiBOsAOkaV{align-items:center;background-color:var(--jp-white);border:none;cursor:pointer;display:flex;gap:calc(var(--spacing-base)*7);padding:var(--spacing-base);width:100%}.UZ3NDyOSbGY9NZWb3bUD .IpJGe_nvXXUiBOsAOkaV:hover{background-color:var(--jp-gray-0)}.UZ3NDyOSbGY9NZWb3bUD .SjzpxiAAVsU_xRrw55ub{align-items:center;display:flex;font-size:var(--font-label);gap:calc(var(--spacing-base)*.5)}.UZ3NDyOSbGY9NZWb3bUD .GQy61X1G7Wv3L3erNwxR{background-color:var(--jp-green-50);height:25px;width:25px}.QSePbRSFylCvM2cX8nN_ a,.QSePbRSFylCvM2cX8nN_ button{border-bottom-right-radius:0;border-top-right-radius:0}.aZvwqVNw6rvImSxn0DM9{align-items:baseline;display:flex;gap:calc(var(--spacing-base)*.5);margin-bottom:var(--spacing-base)}.R4OXFRkmlHAH8ScIgYXh{color:var(--jp-gray-100);font-size:var(--font-body);font-weight:600}.R4OXFRkmlHAH8ScIgYXh.g0_8bbVjnVh0D_pS264j{color:var(--jp-gray-30);text-decoration:line-through}.nqFgW_S2jbHPu9yPq9E_{color:var(--jp-gray-30);font-size:var(--font-body-extra-small)}.f5VJYwuJmjxH8PVxEbbv{align-items:center;display:flex;height:28px;white-space:nowrap}.f5VJYwuJmjxH8PVxEbbv:before{border-radius:50%;content:"";display:inline-block;height:8px;margin-right:var(--spacing-base);width:8px}.f5VJYwuJmjxH8PVxEbbv.ry3pxoGtmQ0ZeSwp7F_3{color:var(--jp-green-50)}.f5VJYwuJmjxH8PVxEbbv.ry3pxoGtmQ0ZeSwp7F_3:before{background:var(--jp-green-50)}.f5VJYwuJmjxH8PVxEbbv.LZzE3EG7m3CDR46wwwEr{color:var(--jp-gray-50)}.f5VJYwuJmjxH8PVxEbbv.LZzE3EG7m3CDR46wwwEr:before{background:var(--jp-gray-50)}.f5VJYwuJmjxH8PVxEbbv.TZUP7W6QYGajITiMNYas{color:var(--jp-yellow-40)}.f5VJYwuJmjxH8PVxEbbv.TZUP7W6QYGajITiMNYas:before{background:var(--jp-yellow-40)}.f5VJYwuJmjxH8PVxEbbv.Vx_jpT02r8W6NfsRSB02{color:var(--jp-red-60)}.f5VJYwuJmjxH8PVxEbbv.Vx_jpT02r8W6NfsRSB02:before{background:var(--jp-red-60)}.f5VJYwuJmjxH8PVxEbbv.PdsJCfyyjSgrNDheF2qi:before{animation:dWP7ypkVXudMbAa38W5Z .5s linear infinite}@keyframes dWP7ypkVXudMbAa38W5Z{0%{opacity:0}50%{opacity:.5}to{opacity:0}}.wI7QgVzPXvVVu6kfnTT8{align-items:center;color:var(--jp-black);display:flex;justify-content:space-between;margin-top:1rem}.wI7QgVzPXvVVu6kfnTT8 .eqyxcUmdF0s3gmmlZGyD{display:flex;gap:1.5rem}.wI7QgVzPXvVVu6kfnTT8 .gxY6D0PeVtGk9iSB5E_u{align-items:center;display:flex;font-size:var(--font-body-small);gap:2px;margin:0}.wI7QgVzPXvVVu6kfnTT8 .D_uE0LD5CvpfM2FNp55k{align-items:center;display:flex;gap:2px}.wI7QgVzPXvVVu6kfnTT8 .VTBUdi1D4DW34F0yixMk{font-size:var(--font-body-small);margin:0}.BXQQYCO_pEmYmzBBwYxR{align-items:center;color:var(--jp-black);display:flex;gap:.25rem;margin-top:1rem}.BXQQYCO_pEmYmzBBwYxR .qdvOzzbrd3KQK7DNg8eg{font-size:var(--font-body-small);margin:0}.PFbMp_gtGLBMWbbYtO0q{display:flex;flex-grow:1;flex-wrap:wrap;gap:.25rem;justify-content:space-between}.ZFCNMiywyFvaifoIQI5w{color:var(--jp-gray-40)}.mj-boost-speed-score{margin:calc(var(--spacing-base)*-1);margin-bottom:0;padding:calc(var(--spacing-base))}.mj-boost-speed-score__grade{align-items:center;column-gap:1em;display:flex;font-size:var(--font-body-small);justify-content:space-between;line-height:24px;margin:8px 0}.mj-boost-speed-score__grade--letter{all:unset;border-radius:var(--jp-border-radius);color:var(--jp-green);cursor:pointer;font-size:var(--font-title-small);font-weight:700;line-height:24px;padding:0 5px}.mj-boost-speed-score__grade--letter:focus{outline:1px dotted var(--jp-black)}.boost-score-tooltip__heading{color:#000;font-size:var(--font-title-small);line-height:30px;margin:0}.boost-score-tooltip__content{font-size:var(--font-body);line-height:24px}.boost-score-tooltip__parent{max-width:340px;min-height:150px;padding:24px;width:calc(100vw - 64px)}@media(min-width:783px){.boost-score-tooltip__parent{width:100vw}}.boost-score-tooltip__parent p:last-child{margin-bottom:0}.mj-boost-speed-score__bar .jb-score-bar__label{display:none}.mj-boost-speed-score__bar .jb-score-bar__filler{border-radius:12px;min-width:49px}.mj-boost-speed-score__bar .jb-score-bar__bounds{border-radius:12px;height:24px;margin-left:0}.mj-boost-speed-score__bar .jb-score-bar__score{border-radius:12px;height:24px;width:30px}.mj-boost-speed-score__increase{align-items:center;color:var(--jp-green-50);display:flex;font-size:var(--font-body-small);line-height:28px;position:absolute;right:24px;top:26px;fill:var(--jp-green-50)}.gridicon{fill:currentColor;display:inline-block}.gridicon.needs-offset g{transform:translate(1px,1px)}.gridicon.needs-offset-x g{transform:translate(1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.jb-score-bar__label,.jb-score-bar__loading,.jb-score-bar__score{align-items:center;background-color:#fff;border:2px solid transparent;border-radius:42px;display:flex;height:42px}.jb-score-bar{color:var(--jp-gray-70);display:flex;width:100%}.jb-score-bar--mobile{margin-bottom:1.5rem}@media(max-width:767px){.jb-score-bar{flex-direction:column}.jb-score-bar__label{background-color:transparent}}.jb-score-bar__loading{align-items:center;display:flex;justify-content:center;width:42px}.jb-score-bar__label{display:grid;grid-template-columns:24px 1fr;grid-column-gap:10px;font-size:14px;justify-content:center;position:relative}@media(min-width:768px){.jb-score-bar__label{padding-left:15px;padding-right:15px;width:200px;z-index:50}}.jb-score-bar__score{border-radius:100%;font-weight:700;height:42px;justify-content:center;position:absolute;right:-1px;width:42px}.jb-score-bar__bounds{background-color:#f1f1f1;border-radius:21px;display:flex;height:42px;max-width:100%;position:relative;width:100%;z-index:40}@media(min-width:768px){.jb-score-bar__bounds{margin-left:-21px;width:calc(100% + 21px)}}.jb-score-bar__filler{border-radius:0 42px 42px 0;display:flex;justify-content:flex-end;min-width:85px;position:relative;transition:width .3s ease-in-out;width:0;will-change:width}@media(max-width:767px){.jb-score-bar__filler{border-radius:inherit;min-width:43px}}.jb-score-bar__no_boost_score{--clearance-space:74px;background:#fff;background-clip:padding-box;border:2px solid transparent;border-radius:50%;cursor:pointer;font-size:.7em;height:28px;line-height:1.625;padding:3px;position:absolute;text-align:center;top:6px;width:28px;z-index:2}.jb-score-bar__no_boost_score:hover{border:2px solid hsla(0,0%,100%,.5)}.jb-score-bar__no_boost_score:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:" ";height:0;left:6px;position:absolute;top:28px;width:0}.jb-score-bar__no_boost_score_tooltip{background:#fff;border-radius:4px;box-shadow:0 0 20px 0 hsla(0,0%,67%,.28);display:none;left:-10em;margin:0 16px;padding:16px;position:absolute;top:-62px;width:20em}.jb-score-bar__no_boost_score_tooltip:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;content:" ";height:0;left:10em;margin:0 -10px;position:absolute;width:0}.jb-score-bar__no_boost_score:hover .jb-score-bar__no_boost_score_tooltip{display:block}.jb-score-bar .fill-loading{background-color:var(--jp-white)}.jb-score-bar .fill-good{background-color:var(--jp-green)}.jb-score-bar .fill-mediocre{background-color:var(--jp-orange-20)}.jb-score-bar .fill-bad{background-color:var(--jp-red-50)}.info-tooltip__button{align-items:center;background:transparent;border:none;color:var(--jp-gray-50);cursor:pointer;display:flex;padding:2px}.info-tooltip__button svg{margin:0 auto}.info-tooltip__content h3{color:var(--jp-black);font-size:var(--font-title-small);font-weight:500;line-height:calc(var(--font-title-small) + 6px);margin:0 0 calc(var(--spacing-base)*2)}.info-tooltip__content p{color:var(--jp-gray-70);font-size:var(--font-body);line-height:var(--font-title-small);margin-bottom:0}.info-tooltip__content p a{color:var(--jp-black);text-decoration:underline}.info-tooltip__content p a:focus,.info-tooltip__content p a:hover{text-decoration:none}.g4lyov8aMDggdD4yOi1p{align-items:baseline;display:flex;margin-top:calc(var(--spacing-base)/2)}.g4lyov8aMDggdD4yOi1p .Ys5ScZ_dYn2O2AzDE5Yi{font-size:32px;font-weight:400;line-height:36px;margin-right:var(--spacing-base)}.sUNg_b7XteVXOrpHAkJg :last-child{margin-top:4px}.cF6QAJf1vXXAMuutXPcq{align-items:baseline;display:flex}.cF6QAJf1vXXAMuutXPcq.coY634LconQ7gzDDNJeu{color:var(--jp-gray-10);fill:var(--jp-gray-10)}.cF6QAJf1vXXAMuutXPcq.kyqpwKaL2FyQ8CtxJQ0f{color:var(--jp-green-50);fill:var(--jp-green-50)}.cF6QAJf1vXXAMuutXPcq.aXf37lEOcjpNV8ImLaYK{color:var(--jp-red-40);fill:var(--jp-red-40)}.cF6QAJf1vXXAMuutXPcq .OyGdoGzsQ48VaVVR99_H{left:2px;position:relative;top:2px}.cF6QAJf1vXXAMuutXPcq .cKLicfMCaDSGPlX222jF{font-size:14px;font-weight:600;line-height:24px}.ZaPXoMGC_e8NfFoBgA95,.gb2kSZHPauLu96D9HAIg{margin-bottom:1.5rem}.qpN923qyxjI06NCgFC8j>li{margin-bottom:0}.hpd1bQCLIZYXpZJa22qw{color:var(--jp-gray-100);font-size:var(--font-body-extra-small);font-weight:500;line-height:var(--font-title-small);margin-bottom:calc(var(--spacing-base) + 2px)}@media screen and (min-width:599px)and (max-width:1290px){ul.qpN923qyxjI06NCgFC8j{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}ul.qpN923qyxjI06NCgFC8j>li{grid-column-end:auto}}.value-section{display:flex;justify-content:space-between;margin-top:calc(var(--spacing-base)/2)}.value-section>div{align-items:flex-start;display:flex;flex-direction:column}.value-section__heading{align-items:center;display:flex;text-wrap:nowrap}.value-section__last-scan{align-items:center;column-gap:1px;display:flex;justify-content:flex-end;margin-top:var(--spacing-base);position:absolute;right:calc(var(--spacing-base)*3);width:calc(57% - var(--spacing-base)*3)}.value-section__last-scan div{color:var(--jp-gray-50);font-size:var(--font-body-extra-small);line-height:var(--font-body);text-align:right}@media(max-width:480px){.value-section__last-scan{width:calc(53% - var(--spacing-base)*3)}}.value-section__data{align-items:center;color:var(--jp-gray-50);display:flex;flex:1;font-size:var(--font-body-extra-small);font-weight:500;justify-content:center;line-height:var(--font-title-small)}.value-section__status-icon{display:block;margin-right:calc(var(--spacing-base) - 2px)}.value-section__status-text{letter-spacing:-.24px;margin-right:1px}.scan-threats__threat-count{color:var(--jp-black);font-size:calc(var(--font-title-large) - 4px);font-weight:400;line-height:var(--font-title-large)}.scan-threats__critical-threats{align-items:center;display:flex}.scan-threats__critical-threat-container{margin-left:1px}.scan-threats__critical-threat-container>button>svg{fill:var(--jp-red-50)}.scan-threats__critical-threat-count{color:var(--jp-red-50);margin-left:calc(var(--spacing-base)/4)}.logins_blocked__count{color:var(--jp-black);font-size:calc(var(--font-headline-small) - 4px);font-weight:400;line-height:var(--font-title-large)}.info-tooltip__content{max-width:340px;min-height:150px;padding:24px;width:calc(100vw - 64px)}.videopress-card__video-count{color:var(--jp-gray-90);display:flex;font-size:calc(var(--font-headline-small) - 4px);line-height:1.125;margin-top:calc(var(--spacing-base)/2)}.videopress-card__video-count .videopress-card__tooltip{height:18px}p.description{color:var(--jp-gray-70);font-size:var(--font-body-small);margin:0 0 1rem}.videopress-card__value-section{display:flex;gap:.75rem;justify-content:space-between}.videopress-card__value-section__container{align-items:flex-start;display:flex;flex-direction:column}.videopress-card__value-section__value-container{align-items:flex-end;display:flex;flex-wrap:wrap}.videopress-card__value-section__value{color:var(--jp-gray-90);font-size:calc(var(--font-headline-small) - 4px);line-height:1}.videopress-card__value-section__previous-value{align-items:center;display:flex;font-size:var(--font-body-extra-small);font-weight:600;line-height:18px}.videopress-card__value-section__previous-value.increase *{color:var(--jp-green-50);fill:var(--jp-green-50)}.videopress-card__value-section__previous-value.decrease *{color:var(--jp-red-50);fill:var(--jp-red-50)}.videopress-card__value-section__heading{align-items:center;display:flex;text-wrap:nowrap}.videopress-card__no-video-tooltip .info-tooltip__button{display:inline;vertical-align:middle}.iG63b_J1HNfT8xEIq619{margin-bottom:.75rem}.T8UhA3lZQjpZsyaah9J6{width:200px}@media screen and (min-width:599px)and (max-width:1290px){ul.g69ZGQc9wey1u1beD0IP{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}ul.g69ZGQc9wey1u1beD0IP>li{grid-column-end:auto}}.HeJe1crc9XaWWpLvIPit .components-modal__frame{border-bottom-left-radius:4px;border-left:4px solid #e68b28;border-top-left-radius:4px;max-height:100%}.HeJe1crc9XaWWpLvIPit .components-modal__content{margin-top:0;padding:0}.HeJe1crc9XaWWpLvIPit .components-modal__header{display:none}.HeJe1crc9XaWWpLvIPit .or0JUScxkJPmNsfrxkEK .jp-idc__idc-screen{border:0}.components-surface.components-card{border-radius:var(--jp-border-radius-rna)}.upsell-banner{background:#f9f9f6;background:linear-gradient(133deg,#ced9f2,#f9f9f6 10%,#f9f9f6 80%,#f5e6b3);display:flex;flex-direction:column}@media screen and (min-width:660px){.upsell-banner{flex-direction:row}}.upsell-banner.components-card__body.components-card-body{border-radius:var(--jp-border-radius-rna);padding:36px}.upsell-banner .upsell-banner--icon{align-items:flex-start;display:flex;margin-bottom:16px;margin-right:0;margin-top:16px}@media screen and (min-width:660px){.upsell-banner .upsell-banner--icon{align-items:center;margin-bottom:0;margin-right:28px;margin-top:0}}.upsell-banner .upsell-banner--content{display:flex;flex:1;flex-direction:column;justify-content:space-between}@media screen and (min-width:660px){.upsell-banner .upsell-banner--content{flex-direction:row}}.upsell-banner .upsell-banner--content .upsell-banner--content-info{display:flex;flex-direction:column}.upsell-banner .upsell-banner--content .upsell-banner--content-info h3{font-size:1.5rem;font-weight:500;line-height:32px;margin:0}.upsell-banner .upsell-banner--content .upsell-banner--content-info p{font-size:1rem;margin:8px 0 0}.upsell-banner .upsell-banner--content .upsell-banner--content-cta{align-items:center;display:flex;flex-direction:row;margin-left:0;margin-top:16px}@media screen and (min-width:660px){.upsell-banner .upsell-banner--content .upsell-banner--content-cta{margin-left:16px;margin-top:0}}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button{box-shadow:inset 0 0 0 1.5px #000;font-weight:400;padding:8px 16px;white-space:nowrap}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button.secondary{background-color:var(--jp-white);color:var(--jp-black)}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button.primary{margin-left:8px}.yWUvvF4WJLNDSpMgBMfm{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.ka1fVHj2HOkHjhdoEFOZ{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.ka1fVHj2HOkHjhdoEFOZ{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.ka1fVHj2HOkHjhdoEFOZ{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.JMOO4Y_9yhTO9lwLnRUx{grid-column-end:span 1}.PFDPAqk51qox_ChLqJwm{grid-column-end:span 2}.ault0jHVfWpShqOGooIP{grid-column-end:span 3}.GqpvdRzmzPJELtSm4FEN{grid-column-end:span 4}@media(min-width:600px){.Ym4_YneEGD_iZD6W1C2o{grid-column-end:span 1}.NbvHnnDtWw8n9BEUQ0Oy{grid-column-end:span 2}.ElMT7rhxe5ZJKO41MnhW{grid-column-end:span 3}.yKjnqjibn_wW_1tWWt5Q{grid-column-end:span 4}.Pb30lOcQFpzUX57GwflS{grid-column-end:span 5}.pC1wxc_R8y4pNILHsiiY{grid-column-end:span 6}.pChscSCnudQoWGjMFKI_{grid-column-end:span 7}.qw1H2gAgF3lDCI2Tbkmb{grid-column-end:span 8}}@media(min-width:960px){.VzcA_rrxBK3g4ozA0oD9{grid-column-end:span 1}.pNAa7O2adRZD8Slgk9iR{grid-column-end:span 2}.tlIMLlipexblj8CeOx4B{grid-column-end:span 3}.Dvt0u5l2Rr1BhBmvYAzl{grid-column-end:span 4}.BiUsgNTc0tyc7tC5jnzE{grid-column-end:span 5}.ulJXAsj7G2ROJ1g3_s28{grid-column-end:span 6}.HsoVlyVLsXYClx9Atox0{grid-column-end:span 7}.oXxjRQNNj2cfIpFBqC1W{grid-column-end:span 8}.qXgUn4Adg9xE_JnbuDio{grid-column-end:span 9}.xMpqTLiLfYFEJiRPQQQq{grid-column-end:span 10}.IiGo3Sz2FDZN7_eGElwA{grid-column-end:span 11}.Om8BNCjfgqQ_wmPQjfOY{grid-column-end:span 12}}@media(max-width:960px){.t10ZWzP7ADjJnR4tqxRS{display:none}}@media(max-width:600px){.eOUlZG8Pelh_Xj0aSoHG{display:none}}.l546LrwBEePz434NFK5Q{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);display:block;margin:32px 0;padding:16px 64px 16px 24px;position:relative;text-decoration:none}.l546LrwBEePz434NFK5Q span{display:block}.l546LrwBEePz434NFK5Q span:last-of-type{font-weight:600}.l546LrwBEePz434NFK5Q:focus span:last-of-type,.l546LrwBEePz434NFK5Q:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.l546LrwBEePz434NFK5Q:focus:after,.l546LrwBEePz434NFK5Q:hover:after{transform:translateY(-50%) translateX(8px)}.l546LrwBEePz434NFK5Q:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.Q7w4fcEcemZ2nlwaYNog{fill:var(--jp-yellow-30)!important;display:inline-block!important;width:1.1em!important}.AoNQsOaTt6gSf0H6Yasz{display:inline-block;position:relative}.v13ZwGzUnecPA7Y3URAl{height:18px;left:-53px;pointer-events:none;position:absolute;top:0;width:124px}.EeDbu9pXFWTsCzfTpv2v{pointer-events:all}.BmSvoIi3rErkcrRiOi2W{color:var(--jp-black);font-size:16px;font-weight:600;line-height:19px}.BmSvoIi3rErkcrRiOi2W:not(:last-child){margin-bottom:8px}.mojRoVuWdDJo0E6LEjJw{font-size:14px;font-weight:400;line-height:24px}.golden-token-icon-tooltip .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-right:-62px}.golden-token-icon-tooltip .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-left:-62px}.golden-token-icon-tooltip .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.golden-token-icon-tooltip .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.golden-token-icon-tooltip .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;outline:none;padding:24px;white-space:normal;width:304px}.golden-token-icon-tooltip .components-button.is-link:focus:not(:disabled){box-shadow:none}.wiobThfXJCuhGNrbFIT6 a,.wiobThfXJCuhGNrbFIT6 a:active,.wiobThfXJCuhGNrbFIT6 a:hover{color:var(--jp-black)}.VgAxgahF9bC2M__FiIgV{display:flex;margin-bottom:calc(var(--spacing-base)*3)}.dbRwkMLqcMF67njPoAF7{margin-right:8px}.Doju0RxvvN9JS12mf489{line-height:calc(var(--spacing-base)*3);margin:0 0 var(--spacing-base) 0}.Jvb1njqMy7ML1zikhbWn{margin-top:1rem}.mpr8_ygU8woV4bVR1xvw{align-items:center;display:flex;font-size:var(--font-title-small);font-weight:500;line-height:1.5;margin-bottom:.5rem;margin-top:0}.gwO_Q0L0jbwMARVlBezu{color:var(--jp-gray-60);font-family:SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:var(--font-body-small);font-weight:400;letter-spacing:-.15px;line-height:20px;margin-left:.75rem}.qwy7CsLeEbXvaPwgC9WV{display:flex;flex-flow:row nowrap;max-width:100%;overflow-x:scroll;padding:1px;scrollbar-width:none}.qwy7CsLeEbXvaPwgC9WV::-webkit-scrollbar{display:none}.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR{border-color:var(--jp-gray-5);border-radius:5px;margin-bottom:0;margin-right:1.5rem;min-width:180px;padding:1rem 1.5rem;width:100%}@media only screen and (min-width:960px){.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR{min-width:220px}}.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR:last-child{margin-right:0}.NFpbo5AINn6I6avKFGby{margin-bottom:1.5rem}.aoQZCG0JeyWmy2J6vVxF{font-weight:500;line-height:20px;margin-bottom:.25rem}.M6ApyXg79vuXo6GwDkbO{align-items:flex-end;display:flex;flex-wrap:wrap;font-size:36px;font-weight:400;line-height:40px}.M6ApyXg79vuXo6GwDkbO.DYHb5e6QhgXejWyo9s78{cursor:pointer}.OlInbY5YnDO06MEQHv98{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1;margin-right:.5rem}.EtbKbd5m85w7oYT4stIs{color:var(--jp-gray-20);display:none;font-size:var(--font-body-small);font-weight:600;line-height:24px;fill:var(--jp-gray-20)}@media screen and (min-width:960px){.EtbKbd5m85w7oYT4stIs{align-items:center;display:flex}}.EtbKbd5m85w7oYT4stIs.Awr7zl75sfAsFPHK9kDG{color:var(--jp-red-50);fill:var(--jp-red-50)}.EtbKbd5m85w7oYT4stIs.QFSZbIKFdWO3HEPBZyhc{color:var(--jp-green-50);fill:var(--jp-green-50)}.GgJAnS4gaEEGmRCP5n8y{align-content:flex-end;display:flex}.mjiNtwdbKpfo9edGVes4{margin-right:2px}.pAt4v_KG9Ir19wNcEtEj{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:calc(var(--spacing-base)*2.5);min-height:28px;width:100%}.vMa4i_Dza2t5Zi_Bw9Nf{background:var(--jp-white-off);padding-top:1px}.jrGNTKcgeXk9HKzolut9{position:relative}.jrGNTKcgeXk9HKzolut9>.wg3mZsoPekZWlBgOvdZ6{overflow:hidden;padding:0}.jrGNTKcgeXk9HKzolut9>.wg3mZsoPekZWlBgOvdZ6.aDxB89WgtARQqNWd4ZeK:before{background-color:var(--jp-red-50);border:2px solid var(--jp-white-off);border-radius:50%;content:"";height:18px;left:-11px;position:absolute;top:-11px;width:18px}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR{background-color:var(--jp-white);border-radius:50%;box-shadow:0 0 5px 1px rgba(0,0,0,.1);padding:8px;position:absolute;right:16px;top:16px;transform:scale(.75)}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:focus,.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:hover{background-color:var(--jp-white)}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:disabled{pointer-events:none}.z5EQSkU36nsjxHEBSfNN{padding:0}.MwBwVaEj6u_zRgfrFR9b{padding:24px 16px}@media screen and (min-width:600){.MwBwVaEj6u_zRgfrFR9b{padding:32px 24px}}@media screen and (min-width:960px){.MwBwVaEj6u_zRgfrFR9b{padding:48px 12px 48px 48px}}.UgPNtuFW7lTJ06k39EsK{background-image:url(images/evaluation-blank-fbbfbcd75b50ade0f092.png),radial-gradient(circle at 40% 70%,rgba(206,217,242,.75) 0,hsla(0,0%,100%,0) 40%),radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 80% 20%,hsla(46,77%,83%,.75) 0,hsla(0,0%,100%,0) 50%);background-position:75%;background-repeat:no-repeat;background-size:393px,cover,cover,cover}.UgPNtuFW7lTJ06k39EsK.ilVOud0_OCGK4HciazB_{background-image:url(images/evaluation-selected-196d1790b76830f9b73a.png),radial-gradient(circle at 40% 70%,rgba(206,217,242,.75) 0,hsla(0,0%,100%,0) 40%),radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 80% 20%,hsla(46,77%,83%,.75) 0,hsla(0,0%,100%,0) 50%)}.EtcggGK0Bk8POQD986Og{background-image:url(images/site-cards-29522f090d5422fd7afd.png),radial-gradient(circle at 90% 30%,rgba(6,158,8,.15) 0,hsla(0,0%,100%,0) 35%),radial-gradient(circle at 75% 65%,rgba(206,217,242,.5) 5%,hsla(0,0%,100%,0) 15%),radial-gradient(circle at 90% 90%,hsla(46,77%,83%,.5) 0,hsla(0,0%,100%,0) 25%);background-repeat:no-repeat;background-size:cover}@media screen and (max-width:960px){.EtcggGK0Bk8POQD986Og{background-image:url(images/site-cards-29522f090d5422fd7afd.png),radial-gradient(circle at 55% 30%,rgba(6,158,8,.15) 0,hsla(0,0%,100%,0) 100%),radial-gradient(circle at 25% 40%,rgba(206,217,242,.5) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 50% 85%,hsla(46,77%,83%,.3) 0,hsla(0,0%,100%,0) 35%);min-height:160px;order:-1}}.TSiu5sC6MdANROjUkUJM{margin-top:24px}.iqJfpZM9IYXuFSXvuoEe{font-size:16px!important;margin-top:16px}.Vozbq8Inlk5SxoVnn2G5{column-gap:40px;display:flex;flex-direction:row;margin-top:64px}.s_V1BM1Wtt3He4eF2TCu{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3);text-decoration:none!important}.wXWt0uFLFkFT7CqgOijQ{align-items:center;background-image:radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%);background-position:100% 80%;background-repeat:no-repeat;background-size:cover;display:flex;flex-direction:column;justify-content:center;padding:144px 0}.m_muvynofDds3hoh9u5m{margin-bottom:24px}.m_muvynofDds3hoh9u5m svg{color:var(--jp-green-40);height:48px;width:48px}.m_muvynofDds3hoh9u5m svg circle{stroke:var(--jp-green-5)}.m_muvynofDds3hoh9u5m svg circle,.m_muvynofDds3hoh9u5m svg path{stroke-width:4px}.jErCC9oKHSM15BxzFyQK{margin-bottom:0}.oVoYbwbFB6U2o90Njusk>div{background-color:var(--jp-white);font-size:16px;line-height:22px;margin:0;position:relative}.oVoYbwbFB6U2o90Njusk>div .components-notice__content{align-items:flex-start;display:flex;flex-direction:column;margin:0;padding:12px 4px}@media screen and (min-width:960px){.oVoYbwbFB6U2o90Njusk>div .components-notice__content{gap:6rem}}.oVoYbwbFB6U2o90Njusk>div .is-link{color:var(--jp-black);font-size:16px;font-weight:600}.oVoYbwbFB6U2o90Njusk>div .components-notice__dismiss{align-self:center}.oVoYbwbFB6U2o90Njusk>div .components-notice__action{align-items:center;background:#000;border-radius:var(--jp-border-radius);color:var(--jp-white);cursor:pointer;font-size:16px;font-weight:600;height:auto;justify-content:center;letter-spacing:-.01em;line-height:24px;margin-left:0;margin-top:24px;padding:8px 24px;text-decoration:none}@media screen and (min-width:960px){.oVoYbwbFB6U2o90Njusk>div .components-notice__action{margin-left:calc(var(--spacing-base)*2 + 24px)}}.oVoYbwbFB6U2o90Njusk>div.Snc8NEmDelsbhlH4285s .components-notice__action{margin-left:0;margin-top:0;white-space:nowrap}.oVoYbwbFB6U2o90Njusk>div.Snc8NEmDelsbhlH4285s .components-notice__content{align-items:center;flex-direction:row}.oVoYbwbFB6U2o90Njusk .R5tvcsARTGN0A_z3DygA{min-width:auto}.wBVXH4OTNwLHPRpN4nsq{display:flex;flex-grow:1;margin-right:var(--spacing-base)}.wBVXH4OTNwLHPRpN4nsq .terms-of-service{color:var(--jp-gray-70);font-size:var(--font-body-small)}.wBVXH4OTNwLHPRpN4nsq>svg{fill:var(--jp-red-60);align-self:flex-start;flex-shrink:0;margin-right:calc(var(--spacing-base)*2)}.wBVXH4OTNwLHPRpN4nsq>svg.F1qvEnFfHs5nz3zFZUOV{fill:none}.SrQxAOBa5ZaSKP8wlut9{border-bottom:none;margin:0}.TcCZnGE6mad8Dvz9pCZi{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIvPjxwYXRoIGZpbGw9IiNENjM2MzkiIGQ9Ik0xMyA3aC0ydjZoMnpNMTMgMTVoLTJ2MmgyeiIvPjwvc3ZnPg==) no-repeat 0 0;color:var(--jp-red);line-height:25px;padding-left:25px}._mn6o2Dtm5pfFWc8_A1K{--spacing-base:8px;min-width:264px}.VHYulMcpzbr10HWR0iSE{align-items:flex-start;border:1px solid var(--jp-black);border-color:var(--jp-gray-5);border-left-width:6px;border-radius:4px;display:flex;font-size:var(--font-body);padding:24px 31px 27px 18px}.FGpSkMCiIHQjszcV0dbn{margin-right:20px}.FGpSkMCiIHQjszcV0dbn,.KoWZcCwhW13xvkEb0QON{height:calc(var(--spacing-base)*3);width:calc(var(--spacing-base)*3)}.KoWZcCwhW13xvkEb0QON{background-color:transparent;border:none;cursor:pointer;outline:none}@media screen and (max-width:600px){.VHYulMcpzbr10HWR0iSE{box-shadow:0 4px 8px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.06);padding-top:68px;position:relative}.FGpSkMCiIHQjszcV0dbn{left:24px;position:absolute;top:24px}.KoWZcCwhW13xvkEb0QON{position:absolute;right:24px;top:24px}}.smrfczkC53EaFM8OJUXs{flex-grow:1}.IKYRWoPwt9xOVEx1wzNS{font-weight:600;margin-bottom:8px}.qM0qY6mPYp1MPN54A3Kg{align-items:center;display:flex;margin-top:20px}.qM0qY6mPYp1MPN54A3Kg a,.qM0qY6mPYp1MPN54A3Kg a:active,.qM0qY6mPYp1MPN54A3Kg a:focus,.qM0qY6mPYp1MPN54A3Kg a:hover{color:var(--jp-black)}.qM0qY6mPYp1MPN54A3Kg>*{margin-right:24px}.A5YkDkkXuiYgavrY6Nux{border-left-color:var(--jp-red)}.A5YkDkkXuiYgavrY6Nux .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-red)}.cT5rwuPMZzWvi5o6shMl{border-left-color:var(--jp-yellow-20)}.cT5rwuPMZzWvi5o6shMl .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-yellow-20)}.yo0O3uvNomPsYUXFCpAS{border-left-color:var(--black)}.yo0O3uvNomPsYUXFCpAS .y_IPyP1wIAOhyNaqvXJq{fill:var(--black)}.oZdDFf1jBLkzn5ICCC6x{border-left-color:var(--jp-green)}.oZdDFf1jBLkzn5ICCC6x .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-green)}.cAbGtJDGgLubucBnz7vM,.q0T8YyQxRawhpDtvJjxI{background-color:var(--jp-white)}.q0T8YyQxRawhpDtvJjxI{height:100%;padding:calc(var(--spacing-base)*8);position:relative}.B7JDqI_vtKxSy5GjvqA1{display:flex;flex-direction:column;height:100%}.zj7xadmhIWeuf7ZwvVTS{align-items:center;background:var(--jp-black);border-radius:var(--jp-border-radius) var(--jp-border-radius) 0 0;color:var(--jp-white);display:flex;height:calc(var(--spacing-base)*4);left:0;padding:0 var(--spacing-base);position:absolute;top:0;width:100%}.GsioW6IsC8EMYE3U6788{fill:var(--jp-white);margin-right:var(--spacing-base)}.cfEO8udWbRGPFJzW8Jg5,.dbz07JqxOlivjKO4vBEF{align-items:center;display:flex;height:calc(var(--spacing-base)*4);margin-bottom:calc(var(--spacing-base)*4)}.zlh3zbjUe4Z8cBs7uVVe{fill:#8c8f94;height:24px;line-height:24px}.qoZuzG5EcDa231hC6t0P{align-items:center;display:flex;justify-content:center}.qoZuzG5EcDa231hC6t0P svg{margin-right:var(--spacing-base)}.Q6uUUQCPWS6_6nLxIn68{display:inline-block;min-height:42px;padding:.5em 2em;text-align:center;width:100%}.Q6uUUQCPWS6_6nLxIn68 .YU4iBCRze09ZP3iCsdcb{margin:0}.Q6uUUQCPWS6_6nLxIn68.components-button.is-primary{height:auto;white-space:normal}.Q6uUUQCPWS6_6nLxIn68.is-secondary:hover:not(:disabled){background-color:var(--jp-black);color:var(--jp-white)}.OrQG7DjDd9Ha2Xj1Mx3L{margin-top:calc(var(--spacing-base)*2)}.Q1jaYDpa2AVfJpA29wT0{flex-grow:1;margin:0;margin-bottom:calc(var(--spacing-base)*2);padding:0}.Q1jaYDpa2AVfJpA29wT0 li{align-items:flex-start;display:flex;list-style:none;margin-bottom:var(--spacing-base)}.Q1jaYDpa2AVfJpA29wT0 svg{fill:var(--jp-green-primary);flex-shrink:0;margin-right:var(--spacing-base)}.HL4gSxsF0skYGhGuqH90 li:last-of-type{font-weight:700}.sEcLfpWjo0GF7QrxD3Lt{margin-top:calc(var(--spacing-base)*2)}.xgv3jRkeF39aEQELCwru{align-items:flex-end;color:var(--jp-black);display:flex;flex-wrap:wrap}.twlleZ5Ehq4bB7CvKVSW{position:relative}.twlleZ5Ehq4bB7CvKVSW:first-child{margin-right:calc(var(--spacing-base)*2)}.twlleZ5Ehq4bB7CvKVSW.Qg4rPEvXsqmod1s_31d8{color:var(--jp-gray-20)}.twlleZ5Ehq4bB7CvKVSW.Qg4rPEvXsqmod1s_31d8:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.ApsgxIornVy_3KnciVeJ{color:var(--jp-gray-40);margin-bottom:calc(var(--spacing-base)*3)}.NMxcZL17aEP7v81uG3zD{margin-top:calc(var(--spacing-base)*5)}.gCTKfAPzJqZas7CaRbKN{margin-bottom:calc(var(--spacing-base)*4)}.demNsMJjhi7BLY7xhjU5{align-items:center;display:flex;font-size:var(--font-body);line-height:calc(var(--spacing-base)*3);margin:calc(var(--spacing-base)*2) 0;min-height:calc(var(--spacing-base)*3)}.QiUjdjJSkqh6nH7YMG5A{align-self:flex-start;height:calc(var(--spacing-base)*3);margin-right:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*3)}.Q080AHcq29J2fc68Hhk5{color:var(--jp-red)}.Q080AHcq29J2fc68Hhk5 .hYWbIwhppukXmGnsiT9H{fill:var(--jp-red)}.JjHuxWly0HI9C60gorbq{color:var(--jp-yellow-40)}.JjHuxWly0HI9C60gorbq .hYWbIwhppukXmGnsiT9H{fill:var(--jp-yellow-40)}.Cm8ZFHi3mngl4cj9Gatx{color:var(--jp-blue-40)}.Cm8ZFHi3mngl4cj9Gatx .hYWbIwhppukXmGnsiT9H{fill:var(--jp-blue-40)}.ytGBsU015p3LGwOPwFDx{color:var(--jp-green)}.ytGBsU015p3LGwOPwFDx .hYWbIwhppukXmGnsiT9H{fill:var(--jp-green)}:root{--font-title-large:36px;--font-title-small:24px;--font-body:16px;--font-label:12px;--jp-black:#000;--jp-black-80:#2c3338;--jp-white:#fff;--jp-white-off:#f9f9f6;--jp-gray:#dcdcde;--jp-gray-0:#f6f7f7;--jp-gray-5:#dcdcde;--jp-gray-10:#c3c4c7;--jp-gray-20:#a7aaad;--jp-gray-30:#8c8f94;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-70:#3c434a;--jp-gray-80:#2c3338;--jp-gray-90:#1d2327;--jp-gray-100:#101517;--jp-gray-off:#e2e2df;--jp-yellow-5:#f5e6b3;--jp-yellow-10:#f2cf75;--jp-yellow-40:#c08c00;--jp-orange-20:#faa754;--jp-blue-5:#ced9f2;--jp-red-0:#f7ebec;--jp-red-50:#d63638;--jp-red-60:#b32d2e;--jp-red-80:#8a2424;--jp-red:#d63639;--jp-pink:#c9356e;--jp-green-0:#f0f2eb;--jp-green-5:#d0e6b8;--jp-green-10:#9dd977;--jp-green-20:#64ca43;--jp-green-30:#2fb41f;--jp-green-40:#069e08;--jp-green-50:#008710;--jp-green-60:#007117;--jp-green-70:#005b18;--jp-green-80:#004515;--jp-green-90:#003010;--jp-green-100:#001c09;--jp-green:#069e08;--jp-green-primary:var(--jp-green-40);--jp-green-secondary:var(--jp-green-30);--jp-border-radius:4px;--jp-border-radius-rna:8px;--jp-menu-border-height:1px;--jp-underline-thickness:2px;--jp-modal-padding-large:32px;--jp-modal-padding:24px;--jp-modal-padding-small:16px;--jp-modal-radius:8px;--jp-button-padding:8px;--jp-button-radius:4px;--jp-gap:16px;--jp-highlight:#3858e9}:where(body){font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}.jp-wrap{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.jp-row{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.jp-row{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.jp-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.sm-col-span-1{grid-column-end:span 1}.sm-col-span-2{grid-column-end:span 2}.sm-col-span-3{grid-column-end:span 3}.sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.md-col-span-1{grid-column-end:span 1}.md-col-span-2{grid-column-end:span 2}.md-col-span-3{grid-column-end:span 3}.md-col-span-4{grid-column-end:span 4}.md-col-span-5{grid-column-end:span 5}.md-col-span-6{grid-column-end:span 6}.md-col-span-7{grid-column-end:span 7}.md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.lg-col-span-1{grid-column-end:span 1}.lg-col-span-2{grid-column-end:span 2}.lg-col-span-3{grid-column-end:span 3}.lg-col-span-4{grid-column-end:span 4}.lg-col-span-5{grid-column-end:span 5}.lg-col-span-6{grid-column-end:span 6}.lg-col-span-7{grid-column-end:span 7}.lg-col-span-8{grid-column-end:span 8}.lg-col-span-9{grid-column-end:span 9}.lg-col-span-10{grid-column-end:span 10}.lg-col-span-11{grid-column-end:span 11}.lg-col-span-12{grid-column-end:span 12}}@media(max-width:960px){.md-col-span-0{display:none}}@media(max-width:600px){.sm-col-span-0{display:none}}.jp-cut{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);margin:32px 0;padding:16px 64px 16px 24px;position:relative;text-decoration:none}.jp-cut,.jp-cut span{display:block}.jp-cut span:last-of-type{font-weight:600}.jp-cut:focus span:last-of-type,.jp-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(8px)}.jp-cut:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;position:absolute;right:24px;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.components-popover:not(.is-without-arrow):before{border-color:var(--jp-gray)}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-right:-62px}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-left:-62px}.icon-tooltip-helper .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.icon-tooltip-helper .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.icon-tooltip-helper.is-wide .components-popover__content{width:440px}.icon-tooltip-wrapper{color:var(--jp-black);display:inline-block;position:relative}.icon-tooltip-wrapper .components-button.is-link:focus:not(:disabled){box-shadow:none}.icon-tooltip-helper{height:18px;left:-53px;pointer-events:none;position:absolute;top:0;width:124px}.icon-tooltip-container{pointer-events:all}.icon-tooltip-container .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;margin:0 10px;max-width:90vw;outline:none;padding:24px;white-space:normal;width:304px}.icon-tooltip-title{font-size:16px;font-weight:600;line-height:19px}.icon-tooltip-title:not(:last-child){margin-bottom:8px}.icon-tooltip-content{font-size:14px;font-weight:400;line-height:24px}.icon-tooltip-content ul{list-style-type:disc;margin:0 0 0 1rem}.icon-tooltip-content ul li:last-child{margin-bottom:0}.p4qz2tkq0p9hxucJ6Qk2{--padding:calc(var(--spacing-base)*4);color:var(--jp-black)}.lbNDyXioOwvyvbALtCBm{--gap:calc(var(--spacing-base)*3);padding:var(--padding) 0;position:relative}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm{column-gap:var(--gap);display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--columns),1fr);grid-template-rows:repeat(var(--rows),minmax(min-content,max-content))}.cLaNK_XcbTGlRQ4Tp43Q{margin-top:var(--padding)}.s2Lsn4kbm6BrS3DSndRB .cLaNK_XcbTGlRQ4Tp43Q{display:contents}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>*{background:var(--jp-white);position:relative}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>:after{bottom:0;box-shadow:0 4px 24px rgba(0,0,0,.05);content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.cLaNK_XcbTGlRQ4Tp43Q>:first-child{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius);border-width:1px 1px 0}.cLaNK_XcbTGlRQ4Tp43Q>:last-child{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius);border-width:0 1px 1px}.DAkZc1P9A3K12fjEliMg{display:flex;flex-direction:column;justify-content:space-between;padding:var(--padding)}.WUBuYABl8nymjs9NnCEL{align-items:center;display:flex;padding-bottom:calc(var(--spacing-base)*2);position:relative}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)){padding-top:calc(var(--spacing-base)*2)}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{background-color:var(--jp-gray);content:"";height:1px;left:var(--padding);position:absolute;right:var(--padding);top:0;z-index:5}.s2Lsn4kbm6BrS3DSndRB .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{left:0;right:unset;width:calc(100% + var(--gap))}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm>:last-child .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{width:100%}.ANtCFeb41NhA8PA3H7ZN,.WUBuYABl8nymjs9NnCEL:last-of-type{padding-bottom:var(--padding)}.Ql2gy_148yW8Vw5vhaKD{padding-left:var(--padding);padding-right:var(--padding)}.EAQrAnQEW1z1BfdY5gbC{margin:0 var(--spacing-base);fill:var(--jp-gray);flex-shrink:0}.EAQrAnQEW1z1BfdY5gbC.JDSTlLoOC_4aUoH2oNM2{fill:var(--jp-green-40)}.EAQrAnQEW1z1BfdY5gbC.zNdQRJ1w7BvaQOYyqzHK{fill:var(--jp-red-50)}.lr7vbX95SKtoe7DarJcZ{margin-left:auto}.s2Lsn4kbm6BrS3DSndRB .lr7vbX95SKtoe7DarJcZ{margin:0 var(--spacing-base);top:1px}.WUBuYABl8nymjs9NnCEL .KRrGp2xdkeBOxLZeuQ6X{fill:var(--jp-gray-20);flex-shrink:0}.H_ZJiRVJg0LiMXPGOcmt{text-align:center;width:fit-content}.H_ZJiRVJg0LiMXPGOcmt>a{color:#000}.s2Lsn4kbm6BrS3DSndRB .H_ZJiRVJg0LiMXPGOcmt{grid-column:2;overflow:hidden;padding-left:var(--padding);padding-right:var(--padding);white-space:nowrap}.x21z_DixObRDsDaWotP1{align-items:right;display:flex;justify-content:right;margin:0 calc(var(--spacing-base)*4)}.dovianZYLKhnbnh9I06o{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-end}.lljtQMhW7lq5tE5SDJEf{align-items:flex-start;display:flex;flex-basis:0;flex-grow:2}.lljtQMhW7lq5tE5SDJEf .NubApIV1vQCRUNprfm6b{margin-left:auto}.dhFQXpZfMwVI8vuYHnwC{align-items:flex-start;display:inline-flex;flex:0 0 auto;position:relative}.dhFQXpZfMwVI8vuYHnwC:first-child{margin-right:calc(var(--spacing-base)*2)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k{color:var(--jp-gray-20)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.C64ZjjUAqJC1T2Sa7apS{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:calc(var(--spacing-base)*3)}.UpZDGew6Ay1hPoP6eI7b{color:var(--jp-gray-40);font-size:var(--font-body-small);line-height:20px}.UpZDGew6Ay1hPoP6eI7b:after{content:""}.NubApIV1vQCRUNprfm6b{background-color:var(--jp-yellow-10);border-radius:4px;font-size:13px;font-weight:600;margin-left:var(--spacing-base);padding-left:var(--spacing-base);padding-right:var(--spacing-base)}.TDiiPbuW1Z0_05u_pvcK{font-weight:400}.SWwV4Pw6OZ5vU3PqPXmr{--product-card-shadow:rgb(0 0 0/3%);background-color:var(--jp-white);border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);box-shadow:0 2px 6px var(--product-card-shadow),0 1px 2px var(--product-card-shadow)}.r7tUofa9Z3A5ziKVR1H7{align-items:center;display:flex}.r7tUofa9Z3A5ziKVR1H7 img{object-fit:cover;width:100%}.i_AnOR3MaQLraGvb2QU5{background-color:#f9f9f6}.YcYvLvdvWrb1EUZoVsE8{display:flex;flex-wrap:wrap;gap:calc(var(--horizontal-spacing)*2);justify-content:space-between}.uGTTsKoIOoZdYhk6uPnl{white-space:nowrap}.uGTTsKoIOoZdYhk6uPnl>span{font-size:var(--font-body-small)}.NzDTsxhX8D1mlckNpewR{font-weight:400!important}.svE2cJL5t2FarzcDQYNe{--product-card-shadow:rgb(0 0 0/3%);background-color:var(--jp-white);border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);box-shadow:0 2px 6px var(--product-card-shadow),0 1px 2px var(--product-card-shadow)}.dvEJEDNTnmVfVxtLa4uU{align-items:center;display:flex}.dvEJEDNTnmVfVxtLa4uU img{object-fit:cover;width:100%}.K1VY4DNP8PHMWAEVBC_h{background-color:#f9f9f6}.nk_COGPrkBNLp7lVt4sQ{display:flex;flex-wrap:wrap;gap:calc(var(--horizontal-spacing)*2);justify-content:space-between}.ukgQ5TmLablG3svUKjdw{white-space:nowrap}.ukgQ5TmLablG3svUKjdw>span{font-size:var(--font-body-small)}.Vofm70ADXSe43GamWEaF{font-weight:400!important}.EUcF2LKeC2GyhWD2FKCP{background-color:var(--jp-white);height:100%;padding:calc(var(--spacing-base)*8);position:relative}.Bm21LIBQtpRo3ZhOxXBG{display:flex;gap:calc(var(--spacing-base)*2)}.jwIGzADCnBI_ai9xYYiS{align-items:center;display:flex;flex-wrap:nowrap;font-size:22px;padding-bottom:calc(var(--spacing-base)*3);padding-top:calc(var(--spacing-base)*3)}.jwIGzADCnBI_ai9xYYiS .fTbxuhh_SfMgenyWvGN0{padding-bottom:calc(var(--spacing-base)/3);padding-left:var(--spacing-base)}.eR56lApoP14RIBAhO1UN{display:flex;flex-wrap:wrap;gap:calc(var(--spacing-base)*6);justify-content:space-between;margin:0 auto;max-width:1128px}@media only screen and (max-width:1366px){.eR56lApoP14RIBAhO1UN{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD{display:flex;flex:1;flex-direction:column;justify-content:center}@media screen and (min-width:960px){.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD{max-width:70%}}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .vAGLpjIGi6GA8ghbumN7{font-size:36px;font-weight:700;line-height:40px}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .oag8YaslCEiUVu8GKKL3{font-weight:400;margin:calc(var(--spacing-base)*3) 0}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .FhH03GPt9FK1VH9NZhYA{align-self:flex-start;font-size:16px;font-weight:500;letter-spacing:-.01em;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.eR56lApoP14RIBAhO1UN .VUXAtah2JvUCNc4cXjPp{align-items:center;display:flex;flex-wrap:wrap;gap:calc(var(--spacing-base)*3);justify-content:flex-end}@media only screen and (max-width:430px){.eR56lApoP14RIBAhO1UN .VUXAtah2JvUCNc4cXjPp{flex:1}}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{border-color:var(--jp-gray-5);border-radius:5px;flex-grow:0;height:168px;margin-bottom:0;padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);width:168px}@media only screen and (max-width:960px){.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{width:30vw}}@media only screen and (max-width:430px){.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{min-width:168px;width:100%}}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw>div:first-child{display:flex;flex-direction:column;justify-content:space-between}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .Ll1l9bEuf5G5oh3AENep{fill:var(--jp-green)}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .WrzTysWiqUiuEPvpFqau{margin-bottom:var(--spacing-base)}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .d4faYkf9yL7oW7pwcjmP{font-size:36px;font-weight:700}.acffvOSYc5S8x4P_AYnQ{font-size:16px;line-height:24px;padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6)}.acffvOSYc5S8x4P_AYnQ:first-child{padding-bottom:0;padding-top:0}.acffvOSYc5S8x4P_AYnQ:nth-child(2n){background-color:var(--jp-white-off);padding-bottom:calc(var(--spacing-base)*8);padding-top:calc(var(--spacing-base)*8)}@media only screen and (max-width:960px){.acffvOSYc5S8x4P_AYnQ:nth-child(2n){padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6)}}.acffvOSYc5S8x4P_AYnQ a{color:inherit}.acffvOSYc5S8x4P_AYnQ .M5YNmgy60Q_UtaxKgQcv{margin:0 auto;max-width:744px}@media only screen and (max-width:1366px){.acffvOSYc5S8x4P_AYnQ .M5YNmgy60Q_UtaxKgQcv{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.acffvOSYc5S8x4P_AYnQ .HJiOvun8sHkiFpNL0sl6{margin:0 auto;max-width:1128px}@media only screen and (max-width:1366px){.acffvOSYc5S8x4P_AYnQ .HJiOvun8sHkiFpNL0sl6{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.acffvOSYc5S8x4P_AYnQ .mXinUJfpSTS9EVB8M8K_{font-size:34px;font-weight:400;line-height:40px;margin:0}.acffvOSYc5S8x4P_AYnQ .QKjsnliPyLu4n08yVUUM{font-size:16px}.acffvOSYc5S8x4P_AYnQ .xQJJkJ4v7Jm8iSJ0z0Dj{font-size:48px;line-height:24px;margin-bottom:calc(var(--spacing-base)*6)}.VWIBGwuHqtAKg_5Hch92{flex-direction:column}.VWIBGwuHqtAKg_5Hch92,.VWIBGwuHqtAKg_5Hch92 .mnkNhprYIatxfziERMwM{display:flex;gap:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2) 0}.VWIBGwuHqtAKg_5Hch92 .mnkNhprYIatxfziERMwM{flex-wrap:wrap;min-height:190px}.VWIBGwuHqtAKg_5Hch92 .WEiaYLqJwV2IzC8LD9Fs{background-color:var(--jp-white-off);border-radius:calc(var(--spacing-base)/2);height:157.5px;width:280px}.VWIBGwuHqtAKg_5Hch92 .WEiaYLqJwV2IzC8LD9Fs iframe{border-radius:inherit}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU{display:flex;flex:1;flex-direction:column;gap:var(--spacing-base);min-width:280px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU ._OeUvI9GrP00qh6Uk7Tg{font-size:20px;font-weight:500;line-height:22px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU .C6I5jYHW2IJSDBoKvhcB{color:var(--jp-gray-60);flex-grow:1;font-size:16px;font-weight:300;line-height:24px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU .XdnAdAwkxAW5yvUx3NRr{font-size:15px;padding-left:0;text-decoration:underline}.MCKgMfLVZtkgWu5m5u6L{margin-bottom:calc(var(--spacing-base)*8)}.c0SItK48SRkWfZUCECbZ{border:1px solid var(--jp-green-40);border-radius:4px;color:var(--jp-green-40);font-size:12px;font-weight:500;height:22px;margin-left:5px;padding:2px 8px;position:relative;text-transform:uppercase;top:-2px}#my-jetpack-container{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);height:100%}#my-jetpack-container .jp-dashboard-footer__jetpack-symbol{height:16px}#wpbody-content>.notice{display:none!important}#wpwrap{background-color:var(--jp-white-off)}._fUXxnSp5pagKBp9gSN7 *{box-sizing:border-box}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js
new file mode 100644
index 00000000..94521512
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js
@@ -0,0 +1,97 @@
+/*! For license information please see index.js.LICENSE.txt */
+(()=>{var e={1792:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(790),c=a(1609);const r={isEligible:!0};function s(e){const t=(t,a={})=>{const n={...r,...a},[,s]=(0,c.useReducer)((e=>e+1),0),i=(0,c.useRef)(t);if((0,c.useEffect)((()=>{let a=!0;return n.isEligible&&e.loadExperimentAssignment(t).then((()=>{a&&s()})),()=>{a=!1}}),[t,n.isEligible]),t===i.current||i.current.startsWith("explat_test")||e.config.logError({message:"[ExPlat] useExperiment: experimentName should never change between renders!"}),!n.isEligible)return[!1,null];const l=e.dangerouslyGetMaybeLoadedExperimentAssignment(t);return[!l,l]};return{useExperiment:t,Experiment:({defaultExperience:e,treatmentExperience:a,loadingExperience:c,name:r,options:s})=>{const[i,l]=t(r,s);return i?(0,n.jsx)(n.Fragment,{children:c}):l?.variationName?(0,n.jsx)(n.Fragment,{children:a}):(0,n.jsx)(n.Fragment,{children:e})},ProvideExperimentData:({children:e,name:a,options:n})=>{const[c,r]=t(a,n);return e(c,r)}}}},9517:(e,t,a)=>{"use strict";a.d(t,{kU:()=>o,pg:()=>u});var n=a(1689),c=a(2808),r=a(4738),s=a(524),i=a(5626);const l=1e4;Error;function o(e){if("undefined"==typeof window)throw new Error("Running outside of a browser context.");const t={},a=(...t)=>{try{e.logError(...t)}catch(e){}};try{(0,n.bZ)()}catch(e){a({message:e.message,source:"removeExpiredExperimentAssignments-error"})}return{loadExperimentAssignment:async o=>{try{if(!i.Eo(o))throw new Error(`Invalid experimentName: "${o}"`);const a=(0,n.B1)(o);if(a&&c.H2(a))return a;void 0===t[o]&&(t[o]=(t=>s.MC((async()=>{const a=await r.FI(e,t);return(0,n.a2)(a),a})))(o));let u=l;Math.random()>.5&&(u=5e3);const m=await s.BK(t[o](),u);if(!m)throw new Error("Could not fetch ExperimentAssignment");return m}catch(e){a({message:e.message,experimentName:o,source:"loadExperimentAssignment-initialError"})}try{const e=(0,n.B1)(o);if(e)return e;const t=(0,c.fj)(o);return(0,n.a2)(t),t}catch(e){return a({message:e.message,experimentName:o,source:"loadExperimentAssignment-fallbackError"}),(0,c.fj)(o)}},dangerouslyGetExperimentAssignment:t=>{try{if(!i.Eo(t))throw new Error(`Invalid experimentName: ${t}`);const c=(0,n.B1)(t);if(!c)throw new Error("Trying to dangerously get an ExperimentAssignment that hasn't loaded.");return e.isDevelopmentMode&&c&&s.XZ()-c.retrievedTimestamp<1e3&&a({message:"Warning: Trying to dangerously get an ExperimentAssignment too soon after loading it.",experimentName:t,source:"dangerouslyGetExperimentAssignment"}),c}catch(n){return e.isDevelopmentMode&&a({message:n.message,experimentName:t,source:"dangerouslyGetExperimentAssignment-error"}),(0,c.fj)(t)}},dangerouslyGetMaybeLoadedExperimentAssignment:t=>{try{if(!i.Eo(t))throw new Error(`Invalid experimentName: ${t}`);const e=(0,n.B1)(t);return e||null}catch(n){return e.isDevelopmentMode&&a({message:n.message,experimentName:t,source:"dangerouslyGetMaybeLoadedExperimentAssignment-error"}),(0,c.fj)(t)}},config:e}}function u(e){return{loadExperimentAssignment:async t=>(e.logError({message:"Attempting to load ExperimentAssignment in SSR context",experimentName:t}),(0,c.fj)(t)),dangerouslyGetExperimentAssignment:t=>(e.logError({message:"Attempting to dangerously get ExperimentAssignment in SSR context",experimentName:t}),(0,c.fj)(t)),dangerouslyGetMaybeLoadedExperimentAssignment:t=>(e.logError({message:"Attempting to dangerously get ExperimentAssignment in SSR context",experimentName:t}),(0,c.fj)(t)),config:e}}},2226:(e,t,a)=>{"use strict";a.d(t,{k:()=>c});var n=a(9517);const c="undefined"==typeof window?n.pg:n.kU},1689:(e,t,a)=>{"use strict";a.d(t,{B1:()=>o,a2:()=>l,bZ:()=>p});var n=a(2808),c=a(2765),r=a(5626);const s="explat-experiment-",i=e=>`${s}-${e}`;function l(e){r.zV(e);const t=o(e.experimentName);if(t&&e.retrievedTimestamp[...Array(e).keys()];function m(e){return e.startsWith(s)}function d(e){return e.slice(s.length+1)}function p(){u(c.A.length).map((e=>c.A.key(e))).filter(m).map(d).filter((e=>{try{if(n.H2(o(e)))return!1}catch(e){}return!0})).map(i).map((e=>c.A.removeItem(e)))}},2808:(e,t,a)=>{"use strict";a.d(t,{H2:()=>c,fj:()=>s,fn:()=>r});var n=a(524);function c(e){return n.XZ()({experimentName:e,variationName:null,retrievedTimestamp:n.XZ(),ttl:Math.max(r,t),isFallbackExperimentAssignment:!0})},2765:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});let n={_data:{},setItem:function(e,t){this._data[e]=t},getItem:function(e){return this._data.hasOwnProperty(e)?this._data[e]:null},removeItem:function(e){delete this._data[e]},clear:function(){this._data={}},get length(){return Object.keys(this._data).length},key:function(e){const t=Object.keys(this._data);return e in t?t[e]:null}};try{window.localStorage&&(n=window.localStorage)}catch(e){}const c=n},4738:(e,t,a)=>{"use strict";a.d(t,{FI:()=>m});var n=a(2808),c=a(2765),r=a(524),s=a(5626);function i(e){if(function(e){return(0,s.Gv)(e)&&(0,s.Gv)(e.variations)&&"number"==typeof e.ttl&&0{const t=await e();if(t)return c.A.setItem(l,t),c.A.setItem(o,String((0,r.XZ)())),t;const a=c.A.getItem(l),n=c.A.getItem(o);return a&&n&&(0,r.XZ)()-parseInt(n,10)<864e5?a:null};async function m(e,t){const a=(0,r.XZ)(),{variations:c,ttl:l}=i(await e.fetchExperimentAssignment({anonId:await u(e.getAnonId),experimentName:t})),o=Math.max(n.fn,l),m=Object.entries(c).map((([e,t])=>({experimentName:e,variationName:t,retrievedTimestamp:a,ttl:o}))).map(s.zV);if(m.length>1)throw new Error("Received multiple experiment assignments while trying to fetch exactly one.");if(0===m.length)return n.fj(t,o);const d=m[0];if(d.experimentName!==t)throw new Error("Newly fetched ExperimentAssignment's experiment name does not match request.");if(!n.H2(d))throw new Error("Newly fetched experiment isn't alive.");return d}},524:(e,t,a)=>{"use strict";a.d(t,{BK:()=>s,If:()=>n,MC:()=>i,XZ:()=>r});const n=1e3;let c=Date.now();function r(){const e=Date.now();return c=csetTimeout((()=>a(new Error(`Promise has timed-out after ${t}ms.`))),t)))])}function i(e){let t=null;return()=>(t||(t=e().finally((()=>{t=null}))),t)}},5626:(e,t,a)=>{"use strict";function n(e){return"object"==typeof e&&null!==e}function c(e){return"string"==typeof e&&""!==e&&/^[a-z0-9_]*$/.test(e)}function r(e){if(!function(e){return n(e)&&c(e.experimentName)&&(c(e.variationName)||null===e.variationName)&&"number"==typeof e.retrievedTimestamp&&"number"==typeof e.ttl&&0!==e.ttl}(e))throw new Error("Invalid ExperimentAssignment");return e}a.d(t,{Eo:()=>c,Gv:()=>n,zV:()=>r})},9826:(e,t,a)=>{"use strict";a.d(t,{i:()=>c});const n={AED:{symbol:"د.إ.",grouping:",",decimal:".",precision:2},AFN:{symbol:"؋",grouping:",",decimal:".",precision:2},ALL:{symbol:"Lek",grouping:".",decimal:",",precision:2},AMD:{symbol:"֏",grouping:",",decimal:".",precision:2},ANG:{symbol:"ƒ",grouping:",",decimal:".",precision:2},AOA:{symbol:"Kz",grouping:",",decimal:".",precision:2},ARS:{symbol:"$",grouping:".",decimal:",",precision:2},AUD:{symbol:"A$",grouping:",",decimal:".",precision:2},AWG:{symbol:"ƒ",grouping:",",decimal:".",precision:2},AZN:{symbol:"₼",grouping:" ",decimal:",",precision:2},BAM:{symbol:"КМ",grouping:".",decimal:",",precision:2},BBD:{symbol:"Bds$",grouping:",",decimal:".",precision:2},BDT:{symbol:"৳",grouping:",",decimal:".",precision:0},BGN:{symbol:"лв.",grouping:" ",decimal:",",precision:2},BHD:{symbol:"د.ب.",grouping:",",decimal:".",precision:3},BIF:{symbol:"FBu",grouping:",",decimal:".",precision:0},BMD:{symbol:"$",grouping:",",decimal:".",precision:2},BND:{symbol:"$",grouping:".",decimal:",",precision:0},BOB:{symbol:"Bs",grouping:".",decimal:",",precision:2},BRL:{symbol:"R$",grouping:".",decimal:",",precision:2},BSD:{symbol:"$",grouping:",",decimal:".",precision:2},BTC:{symbol:"Ƀ",grouping:",",decimal:".",precision:2},BTN:{symbol:"Nu.",grouping:",",decimal:".",precision:1},BWP:{symbol:"P",grouping:",",decimal:".",precision:2},BYR:{symbol:"р.",grouping:" ",decimal:",",precision:2},BZD:{symbol:"BZ$",grouping:",",decimal:".",precision:2},CAD:{symbol:"C$",grouping:",",decimal:".",precision:2},CDF:{symbol:"FC",grouping:",",decimal:".",precision:2},CHF:{symbol:"CHF",grouping:"'",decimal:".",precision:2},CLP:{symbol:"$",grouping:".",decimal:",",precision:2},CNY:{symbol:"¥",grouping:",",decimal:".",precision:2},COP:{symbol:"$",grouping:".",decimal:",",precision:2},CRC:{symbol:"₡",grouping:".",decimal:",",precision:2},CUC:{symbol:"CUC",grouping:",",decimal:".",precision:2},CUP:{symbol:"$MN",grouping:",",decimal:".",precision:2},CVE:{symbol:"$",grouping:",",decimal:".",precision:2},CZK:{symbol:"Kč",grouping:" ",decimal:",",precision:2},DJF:{symbol:"Fdj",grouping:",",decimal:".",precision:0},DKK:{symbol:"kr.",grouping:"",decimal:",",precision:2},DOP:{symbol:"RD$",grouping:",",decimal:".",precision:2},DZD:{symbol:"د.ج.",grouping:",",decimal:".",precision:2},EGP:{symbol:"ج.م.",grouping:",",decimal:".",precision:2},ERN:{symbol:"Nfk",grouping:",",decimal:".",precision:2},ETB:{symbol:"ETB",grouping:",",decimal:".",precision:2},EUR:{symbol:"€",grouping:".",decimal:",",precision:2},FJD:{symbol:"FJ$",grouping:",",decimal:".",precision:2},FKP:{symbol:"£",grouping:",",decimal:".",precision:2},GBP:{symbol:"£",grouping:",",decimal:".",precision:2},GEL:{symbol:"Lari",grouping:" ",decimal:",",precision:2},GHS:{symbol:"₵",grouping:",",decimal:".",precision:2},GIP:{symbol:"£",grouping:",",decimal:".",precision:2},GMD:{symbol:"D",grouping:",",decimal:".",precision:2},GNF:{symbol:"FG",grouping:",",decimal:".",precision:0},GTQ:{symbol:"Q",grouping:",",decimal:".",precision:2},GYD:{symbol:"G$",grouping:",",decimal:".",precision:2},HKD:{symbol:"HK$",grouping:",",decimal:".",precision:2},HNL:{symbol:"L.",grouping:",",decimal:".",precision:2},HRK:{symbol:"kn",grouping:".",decimal:",",precision:2},HTG:{symbol:"G",grouping:",",decimal:".",precision:2},HUF:{symbol:"Ft",grouping:".",decimal:",",precision:0},IDR:{symbol:"Rp",grouping:".",decimal:",",precision:0},ILS:{symbol:"₪",grouping:",",decimal:".",precision:2},INR:{symbol:"₹",grouping:",",decimal:".",precision:2},IQD:{symbol:"د.ع.",grouping:",",decimal:".",precision:2},IRR:{symbol:"﷼",grouping:",",decimal:"/",precision:2},ISK:{symbol:"kr.",grouping:".",decimal:",",precision:0},JMD:{symbol:"J$",grouping:",",decimal:".",precision:2},JOD:{symbol:"د.ا.",grouping:",",decimal:".",precision:3},JPY:{symbol:"¥",grouping:",",decimal:".",precision:0},KES:{symbol:"S",grouping:",",decimal:".",precision:2},KGS:{symbol:"сом",grouping:" ",decimal:"-",precision:2},KHR:{symbol:"៛",grouping:",",decimal:".",precision:0},KMF:{symbol:"CF",grouping:",",decimal:".",precision:2},KPW:{symbol:"₩",grouping:",",decimal:".",precision:0},KRW:{symbol:"₩",grouping:",",decimal:".",precision:0},KWD:{symbol:"د.ك.",grouping:",",decimal:".",precision:3},KYD:{symbol:"$",grouping:",",decimal:".",precision:2},KZT:{symbol:"₸",grouping:" ",decimal:"-",precision:2},LAK:{symbol:"₭",grouping:",",decimal:".",precision:0},LBP:{symbol:"ل.ل.",grouping:",",decimal:".",precision:2},LKR:{symbol:"₨",grouping:",",decimal:".",precision:0},LRD:{symbol:"L$",grouping:",",decimal:".",precision:2},LSL:{symbol:"M",grouping:",",decimal:".",precision:2},LYD:{symbol:"د.ل.",grouping:",",decimal:".",precision:3},MAD:{symbol:"د.م.",grouping:",",decimal:".",precision:2},MDL:{symbol:"lei",grouping:",",decimal:".",precision:2},MGA:{symbol:"Ar",grouping:",",decimal:".",precision:0},MKD:{symbol:"ден.",grouping:".",decimal:",",precision:2},MMK:{symbol:"K",grouping:",",decimal:".",precision:2},MNT:{symbol:"₮",grouping:" ",decimal:",",precision:2},MOP:{symbol:"MOP$",grouping:",",decimal:".",precision:2},MRO:{symbol:"UM",grouping:",",decimal:".",precision:2},MTL:{symbol:"₤",grouping:",",decimal:".",precision:2},MUR:{symbol:"₨",grouping:",",decimal:".",precision:2},MVR:{symbol:"MVR",grouping:",",decimal:".",precision:1},MWK:{symbol:"MK",grouping:",",decimal:".",precision:2},MXN:{symbol:"MX$",grouping:",",decimal:".",precision:2},MYR:{symbol:"RM",grouping:",",decimal:".",precision:2},MZN:{symbol:"MT",grouping:",",decimal:".",precision:0},NAD:{symbol:"N$",grouping:",",decimal:".",precision:2},NGN:{symbol:"₦",grouping:",",decimal:".",precision:2},NIO:{symbol:"C$",grouping:",",decimal:".",precision:2},NOK:{symbol:"kr",grouping:" ",decimal:",",precision:2},NPR:{symbol:"₨",grouping:",",decimal:".",precision:2},NZD:{symbol:"NZ$",grouping:",",decimal:".",precision:2},OMR:{symbol:"﷼",grouping:",",decimal:".",precision:3},PAB:{symbol:"B/.",grouping:",",decimal:".",precision:2},PEN:{symbol:"S/.",grouping:",",decimal:".",precision:2},PGK:{symbol:"K",grouping:",",decimal:".",precision:2},PHP:{symbol:"₱",grouping:",",decimal:".",precision:2},PKR:{symbol:"₨",grouping:",",decimal:".",precision:2},PLN:{symbol:"zł",grouping:" ",decimal:",",precision:2},PYG:{symbol:"₲",grouping:".",decimal:",",precision:2},QAR:{symbol:"﷼",grouping:",",decimal:".",precision:2},RON:{symbol:"lei",grouping:".",decimal:",",precision:2},RSD:{symbol:"Дин.",grouping:".",decimal:",",precision:2},RUB:{symbol:"₽",grouping:" ",decimal:",",precision:2},RWF:{symbol:"RWF",grouping:" ",decimal:",",precision:2},SAR:{symbol:"﷼",grouping:",",decimal:".",precision:2},SBD:{symbol:"S$",grouping:",",decimal:".",precision:2},SCR:{symbol:"₨",grouping:",",decimal:".",precision:2},SDD:{symbol:"LSd",grouping:",",decimal:".",precision:2},SDG:{symbol:"£",grouping:",",decimal:".",precision:2},SEK:{symbol:"kr",grouping:",",decimal:".",precision:2},SGD:{symbol:"S$",grouping:",",decimal:".",precision:2},SHP:{symbol:"£",grouping:",",decimal:".",precision:2},SLL:{symbol:"Le",grouping:",",decimal:".",precision:2},SOS:{symbol:"S",grouping:",",decimal:".",precision:2},SRD:{symbol:"$",grouping:",",decimal:".",precision:2},STD:{symbol:"Db",grouping:",",decimal:".",precision:2},SVC:{symbol:"₡",grouping:",",decimal:".",precision:2},SYP:{symbol:"£",grouping:",",decimal:".",precision:2},SZL:{symbol:"E",grouping:",",decimal:".",precision:2},THB:{symbol:"฿",grouping:",",decimal:".",precision:2},TJS:{symbol:"TJS",grouping:" ",decimal:";",precision:2},TMT:{symbol:"m",grouping:" ",decimal:",",precision:0},TND:{symbol:"د.ت.",grouping:",",decimal:".",precision:3},TOP:{symbol:"T$",grouping:",",decimal:".",precision:2},TRY:{symbol:"TL",grouping:".",decimal:",",precision:2},TTD:{symbol:"TT$",grouping:",",decimal:".",precision:2},TVD:{symbol:"$T",grouping:",",decimal:".",precision:2},TWD:{symbol:"NT$",grouping:",",decimal:".",precision:2},TZS:{symbol:"TSh",grouping:",",decimal:".",precision:2},UAH:{symbol:"₴",grouping:" ",decimal:",",precision:2},UGX:{symbol:"USh",grouping:",",decimal:".",precision:2},USD:{symbol:"$",grouping:",",decimal:".",precision:2},UYU:{symbol:"$U",grouping:".",decimal:",",precision:2},UZS:{symbol:"сўм",grouping:" ",decimal:",",precision:2},VEB:{symbol:"Bs.",grouping:",",decimal:".",precision:2},VEF:{symbol:"Bs. F.",grouping:".",decimal:",",precision:2},VND:{symbol:"₫",grouping:".",decimal:",",precision:1},VUV:{symbol:"VT",grouping:",",decimal:".",precision:0},WST:{symbol:"WS$",grouping:",",decimal:".",precision:2},XAF:{symbol:"F",grouping:",",decimal:".",precision:2},XCD:{symbol:"$",grouping:",",decimal:".",precision:2},XOF:{symbol:"F",grouping:" ",decimal:",",precision:2},XPF:{symbol:"F",grouping:",",decimal:".",precision:2},YER:{symbol:"﷼",grouping:",",decimal:".",precision:2},ZAR:{symbol:"R",grouping:" ",decimal:",",precision:2},ZMW:{symbol:"ZK",grouping:",",decimal:".",precision:2},WON:{symbol:"₩",grouping:",",decimal:".",precision:2}};function c(e){return n[e]||{symbol:"$",grouping:",",decimal:".",precision:2}}},7397:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>r,vA:()=>s});var n=a(9826),c=a(8506);function r(e,t,a={}){const r=(0,n.i)(t);if(!r||isNaN(e))return null;const{decimal:s,grouping:i,precision:l,symbol:o}={...r,...a},u=e<0?"-":"";let m=(0,c.A)(Math.abs(e),l,s,i);return a.stripZeros&&(m=function(e,t){const a=new RegExp(`\\${t}0+$`);return e.replace(a,"")}(m,s)),`${u}${o}${m}`}function s(e,t,a={}){const r=(0,n.i)(t);if(!r||isNaN(e))return null;const{decimal:s,grouping:i,precision:l,symbol:o}={...r,...a},u=e<0?"-":"",m=Math.abs(e),d=Math.floor(m);return{sign:u,symbol:o,integer:(0,c.A)(m,l,s,i).split(s)[0],fraction:l>0?(0,c.A)(m-d,l,s,i).slice(1):""}}},8506:(e,t,a)=>{"use strict";function n(e,t=0,a=".",n=","){const c=(e+"").replace(/[^0-9+\-Ee.]/g,""),r=isFinite(+c)?+c:0,s=isFinite(+t)?Math.abs(t):0,i=(s?function(e,t){const a=Math.pow(10,t);return""+(Math.round(e*a)/a).toFixed(t)}(r,s):""+Math.round(r)).split(".");return i[0].length>3&&(i[0]=i[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,n)),(i[1]||"").lengthn})},6992:(e,t,a)=>{"use strict";function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;tm,Gh:()=>V,HS:()=>P,Rr:()=>d,TM:()=>s,V1:()=>i,pX:()=>F,pb:()=>z,rc:()=>c,sd:()=>L,tH:()=>I,ue:()=>v}),function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(c||(c={}));const r="popstate";function s(e){return void 0===e&&(e={}),h((function(e,t){let{pathname:a="/",search:n="",hash:c=""}=d(e.location.hash.substr(1));return u("",{pathname:a,search:n,hash:c},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let a=e.document.querySelector("base"),n="";if(a&&a.getAttribute("href")){let t=e.location.href,a=t.indexOf("#");n=-1===a?t:t.slice(0,a)}return n+"#"+("string"==typeof t?t:m(t))}),(function(e,t){l("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")}),e)}function i(e,t){if(!1===e||null==e)throw new Error(t)}function l(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function o(e){return{usr:e.state,key:e.key}}function u(e,t,a,c){return void 0===a&&(a=null),n({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?d(t):t,{state:a,key:t&&t.key||c||Math.random().toString(36).substr(2,8)})}function m(e){let{pathname:t="/",search:a="",hash:n=""}=e;return a&&"?"!==a&&(t+="?"===a.charAt(0)?a:"?"+a),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function d(e){let t={};if(e){let a=e.indexOf("#");a>=0&&(t.hash=e.substr(a),e=e.substr(0,a));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function p(e){let t="undefined"!=typeof window&&void 0!==window.location&&"null"!==window.location.origin?window.location.origin:window.location.href,a="string"==typeof e?e:m(e);return i(t,"No window.location.(origin|href) available to create URL for href: "+a),new URL(a,t)}function h(e,t,a,n){void 0===n&&(n={});let{window:s=document.defaultView,v5Compat:i=!1}=n,l=s.history,d=c.Pop,h=null;function g(){d=c.Pop,h&&h({action:d,location:v.location})}let v={get action(){return d},get location(){return e(s,l)},listen(e){if(h)throw new Error("A history only accepts one active listener");return s.addEventListener(r,g),h=e,()=>{s.removeEventListener(r,g),h=null}},createHref:e=>t(s,e),encodeLocation(e){let t=p("string"==typeof e?e:m(e));return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){d=c.Push;let n=u(v.location,e,t);a&&a(n,e);let r=o(n),m=v.createHref(n);try{l.pushState(r,"",m)}catch(e){s.location.assign(m)}i&&h&&h({action:d,location:v.location})},replace:function(e,t){d=c.Replace;let n=u(v.location,e,t);a&&a(n,e);let r=o(n),s=v.createHref(n);l.replaceState(r,"",s),i&&h&&h({action:d,location:v.location})},go:e=>l.go(e)};return v}var g;function v(e,t,a){void 0===a&&(a="/");let n=z(("string"==typeof t?d(t):t).pathname||"/",a);if(null==n)return null;let c=f(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let a=e.length===t.length&&e.slice(0,-1).every(((e,a)=>e===t[a]));return a?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(c);let r=null;for(let e=0;null==r&&e{let s={relativePath:void 0===r?e.path||"":r,caseSensitive:!0===e.caseSensitive,childrenIndex:c,route:e};s.relativePath.startsWith("/")&&(i(s.relativePath.startsWith(n),'Absolute route path "'+s.relativePath+'" nested under path "'+n+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),s.relativePath=s.relativePath.slice(n.length));let l=P([n,s.relativePath]),o=a.concat(s);e.children&&e.children.length>0&&(i(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+l+'".'),f(e.children,t,o,l)),(null!=e.path||e.index)&&t.push({path:l,score:C(l,e.index),routesMeta:o})};return e.forEach(((e,t)=>{var a;if(""!==e.path&&null!=(a=e.path)&&a.includes("?"))for(let a of w(e.path))c(e,t,a);else c(e,t)})),t}function w(e){let t=e.split("/");if(0===t.length)return[];let[a,...n]=t,c=a.endsWith("?"),r=a.replace(/\?$/,"");if(0===n.length)return c?[r,""]:[r];let s=w(n.join("/")),i=[];return i.push(...s.map((e=>""===e?r:[r,e].join("/")))),c&&i.push(...s),i.map((t=>e.startsWith("/")&&""===t?"/":t))}!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(g||(g={}));const E=/^:\w+$/,k=3,y=2,A=1,b=10,j=-2,R=e=>"*"===e;function C(e,t){let a=e.split("/"),n=a.length;return a.some(R)&&(n+=j),t&&(n+=y),a.filter((e=>!R(e))).reduce(((e,t)=>e+(E.test(t)?k:""===t?A:b)),n)}function _(e,t){let{routesMeta:a}=e,n={},c="/",r=[];for(let e=0;e(n.push(t),"/([^\\/]+)")));e.endsWith("*")?(n.push("*"),c+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):a?c+="\\/*$":""!==e&&"/"!==e&&(c+="(?:(?=\\/|$))");let r=new RegExp(c,t?void 0:"i");return[r,n]}(e.path,e.caseSensitive,e.end),c=t.match(a);if(!c)return null;let r=c[0],s=r.replace(/(.)\/+$/,"$1"),i=c.slice(1);return{params:n.reduce(((e,t,a)=>{if("*"===t){let e=i[a]||"";s=r.slice(0,r.length-e.length).replace(/(.)\/+$/,"$1")}return e[t]=function(e,t){try{return decodeURIComponent(e)}catch(a){return M(!1,'The value for the URL param "'+t+'" will not be decoded because the string "'+e+'" is a malformed URL segment. This is probably due to a bad percent encoding ('+a+")."),e}}(i[a]||"",t),e}),{}),pathname:r,pathnameBase:s,pattern:e}}function N(e){try{return decodeURI(e)}catch(t){return M(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function z(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let a=t.endsWith("/")?t.length-1:t.length,n=e.charAt(a);return n&&"/"!==n?null:e.slice(a)||"/"}function M(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function S(e,t,a,n){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the `to."+a+'` field. Alternatively you may provide the full path as a string in and the router will parse it for you.'}function L(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function V(e,t,a,c){let r;void 0===c&&(c=!1),"string"==typeof e?r=d(e):(r=n({},e),i(!r.pathname||!r.pathname.includes("?"),S("?","pathname","search",r)),i(!r.pathname||!r.pathname.includes("#"),S("#","pathname","hash",r)),i(!r.search||!r.search.includes("#"),S("#","search","hash",r)));let s,l=""===e||""===r.pathname,o=l?"/":r.pathname;if(c||null==o)s=a;else{let e=t.length-1;if(o.startsWith("..")){let t=o.split("/");for(;".."===t[0];)t.shift(),e-=1;r.pathname=t.join("/")}s=e>=0?t[e]:"/"}let u=function(e,t){void 0===t&&(t="/");let{pathname:a,search:n="",hash:c=""}="string"==typeof e?d(e):e,r=a?a.startsWith("/")?a:function(e,t){let a=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?a.length>1&&a.pop():"."!==e&&a.push(e)})),a.length>1?a.join("/"):"/"}(a,t):t;return{pathname:r,search:B(n),hash:O(c)}}(r,s),m=o&&"/"!==o&&o.endsWith("/"),p=(l||"."===o)&&a.endsWith("/");return u.pathname.endsWith("/")||!m&&!p||(u.pathname+="/"),u}const P=e=>e.join("/").replace(/\/\/+/g,"/"),H=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),B=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",O=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";class I extends Error{}class T{constructor(e,t,a,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,a instanceof Error?(this.data=a.toString(),this.error=a):this.data=a}}function F(e){return e instanceof T}const U=["post","put","patch","delete"],D=(new Set(U),["get",...U]);new Set(D),new Set([301,302,303,307,308]),new Set([307,308]),"undefined"!=typeof window&&void 0!==window.document&&window.document.createElement},1113:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(6087);const c=(0,n.forwardRef)((function({icon:e,size:t=24,...a},c){return(0,n.cloneElement)(e,{width:t,height:t,...a,ref:c})}))},6955:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"m16.5 13.5-3.7 3.7V4h-1.5v13.2l-3.8-3.7-1 1 5.5 5.6 5.5-5.6z"})})},7474:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M20 11.2H6.8l3.7-3.7-1-1L3.9 12l5.6 5.5 1-1-3.7-3.7H20z"})})},2510:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M12 3.9 6.5 9.5l1 1 3.8-3.7V20h1.5V6.8l3.7 3.7 1-1z"})})},3883:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"})})},4969:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,c.jsx)(n.Path,{d:"M17.5 11.6L12 16l-5.5-4.4.9-1.2L12 14l4.5-3.6 1 1.2z"})})},1249:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"})})},991:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"})})},6994:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,c.jsx)(n.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M6.68822 16.625L5.5 17.8145L5.5 5.5L18.5 5.5L18.5 16.625L6.68822 16.625ZM7.31 18.125L19 18.125C19.5523 18.125 20 17.6773 20 17.125L20 5C20 4.44772 19.5523 4 19 4H5C4.44772 4 4 4.44772 4 5V19.5247C4 19.8173 4.16123 20.086 4.41935 20.2237C4.72711 20.3878 5.10601 20.3313 5.35252 20.0845L7.31 18.125ZM16 9.99997H8V8.49997H16V9.99997ZM8 14H13V12.5H8V14Z"})})},3512:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"})})},748:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M12 4.75a7.25 7.25 0 100 14.5 7.25 7.25 0 000-14.5zM3.25 12a8.75 8.75 0 1117.5 0 8.75 8.75 0 01-17.5 0zM12 8.75a1.5 1.5 0 01.167 2.99c-.465.052-.917.44-.917 1.01V14h1.5v-.845A3 3 0 109 10.25h1.5a1.5 1.5 0 011.5-1.5zM11.25 15v1.5h1.5V15h-1.5z"})})},9783:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z"})})},7827:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:(0,c.jsx)(n.Path,{d:"M17 10h-1.2V7c0-2.1-1.7-3.8-3.8-3.8-2.1 0-3.8 1.7-3.8 3.8v3H7c-.6 0-1 .4-1 1v8c0 .6.4 1 1 1h10c.6 0 1-.4 1-1v-8c0-.6-.4-1-1-1zM9.8 7c0-1.2 1-2.2 2.2-2.2 1.2 0 2.2 1 2.2 2.2v3H9.8V7zm6.7 11.5h-9v-7h9v7z"})})},2778:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsxs)(n.SVG,{viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",children:[(0,c.jsx)(n.Path,{d:"M7.5 12C7.5 11.1716 6.82843 10.5 6 10.5C5.17157 10.5 4.5 11.1716 4.5 12C4.5 12.8284 5.17157 13.5 6 13.5C6.82843 13.5 7.5 12.8284 7.5 12Z"}),(0,c.jsx)(n.Path,{d:"M13.5 12C13.5 11.1716 12.8284 10.5 12 10.5C11.1716 10.5 10.5 11.1716 10.5 12C10.5 12.8284 11.1716 13.5 12 13.5C12.8284 13.5 13.5 12.8284 13.5 12Z"}),(0,c.jsx)(n.Path,{d:"M19.5 12C19.5 11.1716 18.8284 10.5 18 10.5C17.1716 10.5 16.5 11.1716 16.5 12C16.5 12.8284 17.1716 13.5 18 13.5C18.8284 13.5 19.5 12.8284 19.5 12Z"})]})},5788:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M15.5 9.5a1 1 0 100-2 1 1 0 000 2zm0 1.5a2.5 2.5 0 100-5 2.5 2.5 0 000 5zm-2.25 6v-2a2.75 2.75 0 00-2.75-2.75h-4A2.75 2.75 0 003.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0120.25 15zM9.5 8.5a1 1 0 11-2 0 1 1 0 012 0zm1.5 0a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0z",fillRule:"evenodd"})})},5459:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{d:"M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"})})},1871:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,c.jsx)(n.Path,{fillRule:"evenodd",d:"M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",clipRule:"evenodd"})})},311:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(5573),c=a(790);const r=(0,c.jsx)(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"-2 -2 24 24",children:(0,c.jsx)(n.Path,{d:"M10 2c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8zm1.13 9.38l.35-6.46H8.52l.35 6.46h2.26zm-.09 3.36c.24-.23.37-.55.37-.96 0-.42-.12-.74-.36-.97s-.59-.35-1.06-.35-.82.12-1.07.35-.37.55-.37.97c0 .41.13.73.38.96.26.23.61.34 1.06.34s.8-.11 1.05-.34z"})})},8767:(e,t)=>{"use strict";t.parse=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},r=t||{},i=e.split(c),l=r.decode||a,o=0;o{t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const a="color: "+this.color;t.splice(1,0,a,"color: inherit");let n=0,c=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(n++,"%c"===e&&(c=n))})),t.splice(c,0,a)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=a(3212)(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},3212:(e,t,a)=>{e.exports=function(e){function t(e){let a,c,r,s=null;function i(...e){if(!i.enabled)return;const n=i,c=Number(new Date),r=c-(a||c);n.diff=r,n.prev=a,n.curr=c,a=c,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let s=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((a,c)=>{if("%%"===a)return"%";s++;const r=t.formatters[c];if("function"==typeof r){const t=e[s];a=r.call(n,t),e.splice(s,1),s--}return a})),t.formatArgs.call(n,e);(n.log||t.log).apply(n,e)}return i.namespace=e,i.useColors=t.useColors(),i.color=t.selectColor(e),i.extend=n,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==s?s:(c!==t.namespaces&&(c=t.namespaces,r=t.enabled(e)),r),set:e=>{s=e}}),"function"==typeof t.init&&t.init(i),i}function n(e,a){const n=t(this.namespace+(void 0===a?":":a)+e);return n.log=this.log,n}function c(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(c),...t.skips.map(c).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let a;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").split(/[\s,]+/),c=n.length;for(a=0;a{t[a]=e[a]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let a=0;for(let t=0;t{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}t.A=void 0;var c,r=function(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!==n(e)&&"function"!=typeof e)return{default:e};var a=l(t);if(a&&a.has(e))return a.get(e);var c={},r=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e)if("default"!=s&&Object.prototype.hasOwnProperty.call(e,s)){var i=r?Object.getOwnPropertyDescriptor(e,s):null;i&&(i.get||i.set)?Object.defineProperty(c,s,i):c[s]=e[s]}return c.default=e,a&&a.set(e,c),c}(a(1609)),s=(c=a(5739))&&c.__esModule?c:{default:c},i=["size","onClick","icon","className"];function l(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,a=new WeakMap;return(l=function(e){return e?a:t})(e)}function o(){return o=Object.assign||function(e){for(var t,a=1;a{"use strict";a.d(t,{A:()=>n});const n={error:"TcCZnGE6mad8Dvz9pCZi",button:"_mn6o2Dtm5pfFWc8_A1K"}},2021:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"admin-page":"sexr0jUxC1jVixdKiDnC",background:"vKQ11sLeAM45M04P1ccj"}},654:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={section:"cAbGtJDGgLubucBnz7vM"}},6888:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"section-hero":"vMa4i_Dza2t5Zi_Bw9Nf"}},6588:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"demNsMJjhi7BLY7xhjU5","icon-wrapper":"QiUjdjJSkqh6nH7YMG5A","is-error":"Q080AHcq29J2fc68Hhk5",icon:"hYWbIwhppukXmGnsiT9H","is-warning":"JjHuxWly0HI9C60gorbq","is-info":"Cm8ZFHi3mngl4cj9Gatx","is-success":"ytGBsU015p3LGwOPwFDx"}},6552:()=>{},2258:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={button:"zI5tJ_qhWE6Oe6Lk75GY","is-icon-button":"tuBt2DLqimiImoqVzPqo",small:"Na39I683LAaSA99REg14",normal:"ipS7tKy9GntCS4R3vekF",icon:"paGLQwtPEaJmtArCcmyK",regular:"lZAo6_oGfclXOO9CC6Rd","full-width":"xJDOiJxTt0R_wSl8Ipz_",loading:"q_tVWqMjl39RcY6WtQA6","external-icon":"CDuBjJp_8jxzx5j6Nept"}},3689:()=>{},4803:()=>{},2300:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"star-icon":"cuoSlhSNrqf1dozY22Xb",jetpack:"lAIiifeLMmZAPlQ9n9ZR","checkmark-icon":"JLquNpQVlysAamuh5lJO",socialIcon:"cbOwD8Y4tFjwimmtchQI",bluesky:"aLWBKY0yRghEk7tNCgK3",facebook:"aHOlEBGD5EA8NKRw3xTw",instagram:"cL3m0xBYTYhIKI7lCqDB",twitter:"af4Y_zItXvLAOEoSDPSv",linkedin:"f68aqF3XSD1OBvXR1get",tumblr:"xFI0dt3UiXRlRQdqPWkx",google:"q7JEoyymveP6kF747M43",mastodon:"DKOBOTVmTLbh26gUH_73",nextdoor:"n5XodNsuMfMAAvqHFmbw",whatsapp:"fftumuc_lJ6v0tq4UMVR",threads:"inzgC27qxdt7hSdhTWRI"}},4206:()=>{},8403:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)"}},7371:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)",smCols:"4",mdCols:"8",lgCols:"12","col-sm-1":"RuVLl3q4lxTQa3wbhBJB","col-sm-1-start":"f9LZTRG4MMK42rS89afW","col-sm-1-end":"bHe_zKxjjpUwHw_MdYE1","col-sm-2":"QZbNrOqE2aNSn50xVhpU","col-sm-2-start":"ev7W3z7zVYPeHAlYqZjf","col-sm-2-end":"NJWd1m_e7lOiPYru2ZMP","col-sm-3":"Xc6nt1Qc1DI0Z2A3gt1r","col-sm-3-start":"UIcN_GXiPRoIsin8Kohg","col-sm-3-end":"GRKCyqb5LufCSCgykKFc","col-sm-4":"i_qTq8gqhhC3vIUepVRB","col-sm-4-start":"G3qaZ3Jpbvam_1XvGxgc","col-sm-4-end":"VRCNYKZtO9zukEwmgP1y","col-md-1":"tRm008K_WJL79WoNZTNL","col-md-1-start":"l5T2P_bgKts4tdaRkS1d","col-md-1-end":"zOCxfLZpF6BlgC7a_Yq1","col-md-2":"F80DdgVn0m5OpvtSQWka","col-md-2-start":"oI1c7JYfiJtMQHbhngtU","col-md-2-end":"pMQtA_4jh1_1lVknqEP5","col-md-3":"VenqMpdgyKQVUNNQcfqd","col-md-3-start":"seNYL99uoczf9V4MxBxT","col-md-3-end":"YKfF1HFhI9KygA5l3b2J","col-md-4":"yAi0Cv1xDWkoqsaUhvhR","col-md-4-start":"ubhnyZOnkgxNhh6XtVWv","col-md-4-end":"RGOPGQbWMJ9Ei5oFxS7X","col-md-5":"Sz1E2aWbX483ijdi6yge","col-md-5-start":"tku6_bRYrX9tMbgYGmIl","col-md-5-end":"b5JHttOhSEcI1WBlqAjk","col-md-6":"FboSx5MoKTAWbxXyYlCw","col-md-6-start":"Jhs8yEEmodG30edbJvag","col-md-6-end":"IpzbbKVqEqPcfIGkXkwt","col-md-7":"mhCPwfAZ4Kmm_empzJAq","col-md-7-start":"x034ilrJF7rO9UJB2rI1","col-md-7-end":"Wt8t2e16viRrOJ1lLA5v","col-md-8":"S6pIrEy9AMLKx9bgh_Ae","col-md-8-start":"kEfI4tGyuWfHTlRnvIab","col-md-8-end":"PUzX4RRsKq1dnsz3gebS","col-lg-1":"X_pdcLJikd8LS_YAdJlB","col-lg-1-start":"tl936d14Huby4khYp05X","col-lg-1-end":"hnge0LnR69d3NXEtEE1t","col-lg-2":"fj0NUMuyZQcPNgKcjp5Z","col-lg-2-start":"R2ncBX7a2NigdYCcV1OX","col-lg-2-end":"t8vMSDVYno9k9itRwnXb","col-lg-3":"wsDuEN2GqHx6qzo8dUdk","col-lg-3-start":"cIEVPUweWtLBy3xaXnMx","col-lg-3-end":"fajUWBwu1m2B479j3jmz","col-lg-4":"YR0c7fQTgMkDdWzwSyLp","col-lg-4-start":"xlwp8BmplxkKNMI7gamo","col-lg-4-end":"_C4O1w9DUqx1m3gPf8aA","col-lg-5":"Z54F1hAErckAIrKlxnXW","col-lg-5-start":"ezSDWkRHmKSxDJXxuiOH","col-lg-5-end":"T0ChoeAjGJjkkNrYhD4g","col-lg-6":"qtMoMPF6yHvGJnWHSsde","col-lg-6-start":"gdoywN5VPiWERfIBqkph","col-lg-6-end":"wUev_VH5uf_pwFFlbnAU","col-lg-7":"egIPDFJsOpownTClq9XP","col-lg-7-start":"yGhp9yoAW7k0kQik9AB7","col-lg-7-end":"SJ43U9mR5wUg5V2qBeQA","col-lg-8":"cTuyHfMwSUJxN_HdIEgd","col-lg-8-start":"smCr8DaIagcumdvdldiK","col-lg-8-end":"T03NHzQJvzwL6wAfIiTL","col-lg-9":"pMvxM3RJGjqyNdf9qg1Y","col-lg-9-start":"iIVpNRwEnQ_JI5gpp9EN","col-lg-9-end":"ZbQ4u4vGSX5rJOje4uGL","col-lg-10":"gKb5wuIDAlKGbrjK2vxy","col-lg-10-start":"Z7pINdImE2WJiYnZBTqm","col-lg-10-end":"ZTxp6qpvwurMdOnLLSz1","col-lg-11":"NnQTlbfnxPDR6cQ7rygg","col-lg-11-start":"O137wZd6Yl0olSA9PsXR","col-lg-11-end":"zf2OJtQ2MPz6SDoh6CB0","col-lg-12":"U3H6UHW6HqRt9hdzVg3O","col-lg-12-start":"zynnNeS_ZBTxABcVpUQH","col-lg-12-end":"vI8tltFZtFUNAy9Iag9s"}},2420:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={sm:"(max-width: 599px)",md:"(min-width: 600px) and (max-width: 959px)",lg:"(min-width: 960px)",container:"SqdhUZkXCRuIpErj1B3z",fluid:"OZC_9a1LhpWF9dv15Gdh"}},7410:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"VHYulMcpzbr10HWR0iSE","icon-wrapper":"FGpSkMCiIHQjszcV0dbn","close-button":"KoWZcCwhW13xvkEb0QON","main-content":"smrfczkC53EaFM8OJUXs",title:"IKYRWoPwt9xOVEx1wzNS","action-bar":"qM0qY6mPYp1MPN54A3Kg","is-error":"A5YkDkkXuiYgavrY6Nux",icon:"y_IPyP1wIAOhyNaqvXJq","is-warning":"cT5rwuPMZzWvi5o6shMl","is-info":"yo0O3uvNomPsYUXFCpAS","is-success":"oZdDFf1jBLkzn5ICCC6x"}},3142:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"p4qz2tkq0p9hxucJ6Qk2",table:"lbNDyXioOwvyvbALtCBm","is-viewport-large":"s2Lsn4kbm6BrS3DSndRB",card:"cLaNK_XcbTGlRQ4Tp43Q","is-primary":"CYt1X0eH1icRjhtJ28jx",header:"DAkZc1P9A3K12fjEliMg",item:"WUBuYABl8nymjs9NnCEL","last-feature":"ANtCFeb41NhA8PA3H7ZN",value:"Ql2gy_148yW8Vw5vhaKD",icon:"EAQrAnQEW1z1BfdY5gbC","icon-check":"JDSTlLoOC_4aUoH2oNM2","icon-cross":"zNdQRJ1w7BvaQOYyqzHK",popover:"lr7vbX95SKtoe7DarJcZ","popover-icon":"KRrGp2xdkeBOxLZeuQ6X",tos:"H_ZJiRVJg0LiMXPGOcmt","tos-container":"x21z_DixObRDsDaWotP1"}},3407:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"dovianZYLKhnbnh9I06o","price-container":"lljtQMhW7lq5tE5SDJEf","promo-label":"NubApIV1vQCRUNprfm6b",price:"dhFQXpZfMwVI8vuYHnwC","is-not-off-price":"eD7hzxFmdtG_MgmBtl_k",footer:"C64ZjjUAqJC1T2Sa7apS",legend:"UpZDGew6Ay1hPoP6eI7b",symbol:"TDiiPbuW1Z0_05u_pvcK"}},8325:()=>{},9634:()=>{},4495:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={reset:"WQVtrU6q0L1Igcj7wCrQ","headline-medium":"UujoBFTnQNY2cWU2SIsH","headline-small":"TeGO5V_thHw5lDAm1_2M","headline-small-regular":"WolQzb2MsSgiNmLtc7_j","title-medium":"hUB0JT8p1T2Hw28N6qC8","title-medium-semi-bold":"gKZWDv5chz3_O3Syp74H","title-small":"zY2No8Ga4b8shbOQGhnv",body:"tIj0D1t8Cc892ikmgFPZ","body-small":"KdcN0BnOaVeVhyLRKqhS","body-extra-small":"dso3Rh3tl3Xv1GumBktz","body-extra-small-bold":"mQ1UlbN9u4Mg9byO8m7v",label:"PItlW5vRExLnTj4a8eLE","m-0":"TwRpPlktzxhmFVeua7P5","mx-0":"zVfqx7gyb3o9mxfGynn1","my-0":"iSHVzNiB9iVleGljaQxy","mt-0":"xqDIp6cNVr_E6RXaiPyD","mr-0":"S8EwaXk1kyPizt6x4WH2","mb-0":"ODX5Vr1TARoLFkDDFooD","ml-0":"cphJ8dCpfimnky7P2FHg","m-1":"PFgIhNxIyiSuNvQjAIYj","mx-1":"M2jKmUzDxvJjjVEPU3zn","my-1":"io15gAh8tMTNbSEfwJKk","mt-1":"rcTN5uw9xIEeMEGL3Xi_","mr-1":"CQSkybjq2TcRM1Xo9COV","mb-1":"hfqOWgq6_MEGdFE82eOY","ml-1":"I8MxZQYTbuu595yfesWA","m-2":"kQkc6rmdpvLKPkyoJtVQ","mx-2":"j6vFPxWuu4Jan2ldoxpp","my-2":"hqr39dC4H_AbactPAkCG","mt-2":"c3dQnMi16C6J6Ecy4283","mr-2":"YNZmHOuRo6hU7zzKfPdP","mb-2":"Db8lbak1_wunpPk8NwKU","ml-2":"ftsYE5J9hLzquQ0tA5dY","m-3":"Det4MHzLUW7EeDnafPzq","mx-3":"h_8EEAztC29Vve1datb5","my-3":"YXIXJ0h1k47u6hzK8KcM","mt-3":"soADBBkcIKCBXzCTuV9_","mr-3":"zSX59ziEaEWGjnpZa4uV","mb-3":"yrVTnq_WBMbejg89c2ZQ","ml-3":"UKtHPJnI2cXBWtPDm5hM","m-4":"guexok_Tqd5Tf52hRlbT","mx-4":"oS1E2KfTBZkJ3F0tN7T6","my-4":"DN1OhhXi6AoBgEdDSbGd","mt-4":"ot2kkMcYHv53hLZ4LSn0","mr-4":"A1krOZZhlQ6Sp8Cy4bly","mb-4":"pkDbXXXL32237M0hokEh","ml-4":"XXv4kDTGvEnQeuGKOPU3","m-5":"yGqHk1a57gaISwkXwXe6","mx-5":"X8cghM358X3DkXLc9aNK","my-5":"GdfSmGwHlFnN2S6xBn1f","mt-5":"yqeuzwyGQ7zG0avrGqi_","mr-5":"g9emeCkuHvYhveiJbfXO","mb-5":"Lvk3dqcyHbZ07QCRlrUQ","ml-5":"r3yQECDQ9qX0XZzXlVAg","m-6":"aQhlPwht2Cz1X_63Miw0","mx-6":"JyHb0vK3wJgpblL9s5j8","my-6":"cY2gULL1lAv6WPNIRuf3","mt-6":"NBWQ9Lwhh_fnry3lg_p7","mr-6":"yIOniNe5E40C8fWvBm5V","mb-6":"t30usboNSyqfQWIwHvT3","ml-6":"Nm_TyFkYCMhOoghoToKJ","m-7":"C4qJKoBXpgKtpmrqtEKB","mx-7":"S93Srbu6NQ_PBr7DmTiD","my-7":"fJj8k6gGJDks3crUZxOS","mt-7":"cW6D6djs7Ppm7fD7TeoV","mr-7":"DuCnqNfcxcP3Z__Yo5Ro","mb-7":"im8407m2fw5vOg7O2zsw","ml-7":"G0fbeBgvz2sh3uTP9gNl","m-8":"kvW3sBCxRxUqz1jrVMJl","mx-8":"tOjEqjLONQdkiYx_XRnw","my-8":"op5hFSx318zgxsoZZNLN","mt-8":"c9WfNHP6TFKWIfLxv52J","mr-8":"sBA75QqcqRwwYSHJh2wc","mb-8":"GpL6idrXmSOM6jB8Ohsf","ml-8":"HbtWJoQwpgGycz8dGzeT","p-0":"uxX3khU88VQ_Ah49Ejsa","px-0":"KX0FhpBKwKzs9fOUdbNz","py-0":"PfK8vKDyN32dnimlzYjz","pt-0":"emxLHRjQuJsImnPbQIzE","pr-0":"kJ8WzlpTVgdViXt8ukP9","pb-0":"tg_UIUI11VBzrTAn2AzJ","pl-0":"uczvl8kaz84oPQJ2DB2R","p-1":"o7UHPcdVK3lt7q3lqV4o","px-1":"IDqEOxvDoYrFYxELPmtX","py-1":"DdywPW2qSYlu2pt8tpO2","pt-1":"npy3hw4A5QSkDicb2CJJ","pr-1":"LgbptTApNY5NwLQvEFAt","pb-1":"WZQy2SZuZso59bUsXXyl","pl-1":"o331apInxNunbYB3SfPE","p-2":"fMPIyD9Vqki1Lrc_yJnG","px-2":"i2pMcTcdrr10IQoiSm_L","py-2":"eA702gn32kwptiI1obXH","pt-2":"o9bGieUKcYc8o0Ij9oZX","pr-2":"SwZcFez1RDqWsOFjB5iG","pb-2":"eHpLc_idmuEqeqCTvqkN","pl-2":"vU39i2B4P1fUTMB2l6Vo","p-3":"JHWNzBnE29awhdu5BEh1","px-3":"X72lGbb56L3KFzC2xQ9N","py-3":"BzfNhRG8wXdCEB5ocQ6e","pt-3":"srV0KSDC83a2fiimSMMQ","pr-3":"lUWfkmbQjCskhcNwkyCm","pb-3":"Ts0dIlc3aTSL7V4cIHis","pl-3":"CzlqQXXhX6MvorArFZ8B","p-4":"TqMPkQtR_DdZuKb5vBoV","px-4":"a7UrjhI69Vetlcj9ZVzz","py-4":"StEhBzGs2Gi5dDEkjhAv","pt-4":"FGneZfZyvYrt1dG0zcnm","pr-4":"APEH216rpdlJWgD2fHc8","pb-4":"oGwXC3ohCic9XnAj6x69","pl-4":"U6gnT9y42ViPNOcNzBwb","p-5":"IpdRLBwnHqbqFrixgbYC","px-5":"HgNeXvkBa9o3bQ5fvFZm","py-5":"tJtFZM3XfPG9v9TSDfN1","pt-5":"PdifHW45QeXYfK568uD8","pr-5":"mbLkWTTZ0Za_BBbFZ5b2","pb-5":"vVWpZpLlWrkTt0hMk8XU","pl-5":"RxfaJj5a1Nt6IavEo5Zl","p-6":"SppJULDGdnOGcjZNCYBy","px-6":"palY2nLwdoyooPUm9Hhk","py-6":"WYw1JvZC0ppLdvSAPhr_","pt-6":"YEEJ9b90ueQaPfiU8aeN","pr-6":"QE0ssnsKvWJMqlhPbY5u","pb-6":"n8yA3jHlMRyLd5UIfoND","pl-6":"tXHmxYnHzbwtfxEaG51n","p-7":"kBTsPKkO_3g_tLkj77Um","px-7":"RyhrFx6Y1FGDrGAAyaxm","py-7":"CBwRpB0bDN3iEdQPPMJO","pt-7":"vQVSq6SvWKbOMu6r4H6b","pr-7":"oBy5__aEADMsH46mrgFX","pb-7":"KVEXoJqf1s92j0JMdNmN","pl-7":"ZMXGNrNaKW3k_3TLz0Fq","p-8":"tuiR9PhkHXhGyEgzRZRI","px-8":"U7454qyWkQNa2iaSJziu","py-8":"VLYIv2GVocjuN93e8HC8","pt-8":"X1rm9DQ1zLGLfogja5Gn","pr-8":"JS7G6kAuqJo5GIuF8S5t","pb-8":"Y8F9ga1TDCMbM1lj4gUz","pl-8":"AJuyNGrI63BOWql719H8"}},9422:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={global:"_fUXxnSp5pagKBp9gSN7"}},8170:()=>{},2980:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"jp-wrap":"EiaNctK1_P9pPqOeiaSI","jp-row":"ogHZg_sJCljylz3VJfsf","sm-col-span-1":"zv7eGvijKRkbPVakubHw","sm-col-span-2":"VoJNoiya_1ck3_kXS6_C","sm-col-span-3":"ecv0NO526NoTNbpALA1A","sm-col-span-4":"OfBdkceMzeHvRbzhqDlP","md-col-span-1":"JLb3NpEKN8pOaWd7K1bu","md-col-span-2":"fsMPGqPKE4mjMIPFwl77","md-col-span-3":"DIK_zdaGAQ09eKspBJ4E","md-col-span-4":"shXYpxPu3WCJsR8aOHtz","md-col-span-5":"s7ElrOqG_yGd5SIfwqOR","md-col-span-6":"Cxml9uzGvArAL8_RDs_p","md-col-span-7":"aANxBKDGx72eDqU0iUPj","md-col-span-8":"XxyzuTY3mnQcl9EGZadm","lg-col-span-1":"Sfo4WaSNIWInJ93Abd3w","lg-col-span-2":"tQS7SKUGrU4THhWMysbo","lg-col-span-3":"I94U7mpY4h16pcOksZNF","lg-col-span-4":"uWMb9k77kQxBdS5MTt0s","lg-col-span-5":"rKwEEZQxK9s_POMg5Jss","lg-col-span-6":"UcPXX_s06IPCkF7ZjH3D","lg-col-span-7":"CrQdtiCFkRbzY6K2dFvt","lg-col-span-8":"rEUALOmOdUBXO0Us871z","lg-col-span-9":"NqXa9TlcTEviVsB53hBV","lg-col-span-10":"OnWVeiQiwgQ9lzdGPW66","lg-col-span-11":"D2PkTcy7b8u2K9QXY6VQ","lg-col-span-12":"EcqBhzAyxo5RDc2Y6m7K","md-col-span-0":"gB1mWzHOM38d80lrhBRX","sm-col-span-0":"KNQXLP78ejczOkour3zg","jp-cut":"rBVbaVWBnBRtTMrUKZxm",modal:"gfM_DIJrVbRhmKdAphIm","jetpack-logo":"zfJfONxRAw0fHjXUS7LN",animating:"pnwbCuWbV0PNQr1LFpRh",button:"_j4GWTmW5psCHFYh6R0x",headline:"saSAjv8yulVXQDoqDJEI",paragraph:"O_hcdbeMivIhBn7ApDnS","jetpack-logo-triangles":"FCnyb_xCK7DhJ63p6TEd","video-wrap":"Qn5xayjI_jH2m1d6BEoq",videoMove:"OmAVpCQ270MqI4IsT9Ky",slidein:"Axe8f2LgqEBZHVcsRgY5","content-wrap":"iBMDoShSmqpt72YfJb36","hi-user":"eQG1KKK8jjKtQyzfv573","content-wrap-text":"l35bIyiqYJiZ6tVYvJtC","powers-wrap":"HQVDZ6J3x6SJNYFX5khS","jetpack-products":"KdvmPIjelQIFiPQGuIYf"}},9958:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"OpMBda4vebhRbW8Fm6YC","is-link":"BghJAx9hSagUdHWOUaYE","has-error":"IWsEW5nnNWUqqcT3K5L1",title:"r3UCwgwCthua6lDCvIBI",name:"vpluqUMgmwx9_f8wCVIn"}},4600:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={icon:"rV_5QyvhDnsVjCX4pb0h",link:"MO1jDNY8VPqeNS9xL8jE"}},9696:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"relative-col":"zvd4dCB_bBDiXJKKDqXm","close-link":"ly4o9lSswAGHFXqGUEIO","account-description":"u64Go3kwEZ7MD9eji0H1","account-images":"_RT41NE3LU4R0ubcij2y",wordpress:"cFGWJeRiGHjAr8D7CWJW",google:"Iz3l7a05TP6HK9S92TIL",apple:"lmQ0wFmnk4kKkGVjokPA",github:"ZSFTmY3zE3VP4w0QeaqV","all-features":"AoIs8wD92wKR8RpQj6Uc"}},7193:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"connection-status-card":"kezuOHNvu9vdvlJ86Fwg",status:"qJizORs2q_CVCj9L6XLe","avatar-wrapper":"VmtuLc2xRqmsO6cK8qjF",cloud:"MdTRfQ3eo5qZKChZlzNj",jetpack:"PbEpL02SEH9VNAlbKCfV",avatar:"TD4AUM9gcTVAB6JHB5ZR",line:"yjl73qv0VWoPP8IhGreh",error:"J0GIu2rNR7rXocQTyd8p",warning:"rAV2E93SG8WpokuGk9jh",info:"YZ7FNKEm9qpvQ4ZkbAz5","connect-action":"TYNMsILey2vUwnyZSjJU","list-item":"oH9tzGE80LnB6Og69RFz","list-item-text":"xXVEWvQllVsFGmJY8WEp",success:"q4_FOHifGawULuFBZke9"}},6225:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={title:"iG63b_J1HNfT8xEIq619","dropdown-menu":"T8UhA3lZQjpZsyaah9J6","recommendations-list":"g69ZGQc9wey1u1beD0IP"}},8870:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={icon:"hdasSNj9k3Sc5PwXK4uE",link:"eWN8Hj0SBRDq1F48n_Fg"}},4800:()=>{},9331:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"jp-wrap":"yWUvvF4WJLNDSpMgBMfm","jp-row":"ka1fVHj2HOkHjhdoEFOZ","sm-col-span-1":"JMOO4Y_9yhTO9lwLnRUx","sm-col-span-2":"PFDPAqk51qox_ChLqJwm","sm-col-span-3":"ault0jHVfWpShqOGooIP","sm-col-span-4":"GqpvdRzmzPJELtSm4FEN","md-col-span-1":"Ym4_YneEGD_iZD6W1C2o","md-col-span-2":"NbvHnnDtWw8n9BEUQ0Oy","md-col-span-3":"ElMT7rhxe5ZJKO41MnhW","md-col-span-4":"yKjnqjibn_wW_1tWWt5Q","md-col-span-5":"Pb30lOcQFpzUX57GwflS","md-col-span-6":"pC1wxc_R8y4pNILHsiiY","md-col-span-7":"pChscSCnudQoWGjMFKI_","md-col-span-8":"qw1H2gAgF3lDCI2Tbkmb","lg-col-span-1":"VzcA_rrxBK3g4ozA0oD9","lg-col-span-2":"pNAa7O2adRZD8Slgk9iR","lg-col-span-3":"tlIMLlipexblj8CeOx4B","lg-col-span-4":"Dvt0u5l2Rr1BhBmvYAzl","lg-col-span-5":"BiUsgNTc0tyc7tC5jnzE","lg-col-span-6":"ulJXAsj7G2ROJ1g3_s28","lg-col-span-7":"HsoVlyVLsXYClx9Atox0","lg-col-span-8":"oXxjRQNNj2cfIpFBqC1W","lg-col-span-9":"qXgUn4Adg9xE_JnbuDio","lg-col-span-10":"xMpqTLiLfYFEJiRPQQQq","lg-col-span-11":"IiGo3Sz2FDZN7_eGElwA","lg-col-span-12":"Om8BNCjfgqQ_wmPQjfOY","md-col-span-0":"t10ZWzP7ADjJnR4tqxRS","sm-col-span-0":"eOUlZG8Pelh_Xj0aSoHG","jp-cut":"l546LrwBEePz434NFK5Q",logo:"Q7w4fcEcemZ2nlwaYNog",wrapper:"AoNQsOaTt6gSf0H6Yasz",helper:"v13ZwGzUnecPA7Y3URAl",container:"EeDbu9pXFWTsCzfTpv2v",title:"BmSvoIi3rErkcrRiOi2W",content:"mojRoVuWdDJo0E6LEjJw"}},146:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={modal:"HeJe1crc9XaWWpLvIPit",container:"or0JUScxkJPmNsfrxkEK"}},6632:()=>{},5055:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={heading:"jErCC9oKHSM15BxzFyQK",notice:"oVoYbwbFB6U2o90Njusk","bigger-than-medium":"Snc8NEmDelsbhlH4285s",cta:"R5tvcsARTGN0A_z3DygA",message:"wBVXH4OTNwLHPRpN4nsq",nofill:"F1qvEnFfHs5nz3zFZUOV",separator:"SrQxAOBa5ZaSKP8wlut9"}},4334:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"wiobThfXJCuhGNrbFIT6","expire-date":"VgAxgahF9bC2M__FiIgV","expire-date--with-icon":"dbRwkMLqcMF67njPoAF7","actions-list-item":"Doju0RxvvN9JS12mf489"}},1208:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"pIsYsXFAJ9KX2VrS5rmY",description:"gmPKCDKZcfQt9WieTyKS",actions:"fDBaV7I4yUO6w5AWVEtr",buttons:"SelsBZT7eIWRQyl1dasZ",title:"LHYJUrOej3toDvOAiz4k","action-button":"JFjbc0JgC4qC92ehOiUr","dropdown-chevron":"NBZgqk_CGGfY3Q16OHjT",primary:"Jh6TlOGQNgBwU_fFxPrm",secondary:"VBxTkBZVxHaVoyhMRJcz","action-button-dropdown":"UZ3NDyOSbGY9NZWb3bUD","dropdown-item":"IpJGe_nvXXUiBOsAOkaV","dropdown-item-label":"SjzpxiAAVsU_xRrw55ub","active-action-checkmark":"GQy61X1G7Wv3L3erNwxR","has-additional-actions":"QSePbRSFylCvM2cX8nN_",priceContainer:"aZvwqVNw6rvImSxn0DM9",price:"R4OXFRkmlHAH8ScIgYXh",discounted:"g0_8bbVjnVh0D_pS264j",term:"nqFgW_S2jbHPu9yPq9E_",status:"f5VJYwuJmjxH8PVxEbbv",active:"ry3pxoGtmQ0ZeSwp7F_3",inactive:"LZzE3EG7m3CDR46wwwEr",warning:"TZUP7W6QYGajITiMNYas",error:"Vx_jpT02r8W6NfsRSB02","is-fetching":"PdsJCfyyjSgrNDheF2qi","blink-animation":"dWP7ypkVXudMbAa38W5Z"}},3649:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"no-backup-stats":"wI7QgVzPXvVVu6kfnTT8","main-stats":"eqyxcUmdF0s3gmmlZGyD","main-stat":"gxY6D0PeVtGk9iSB5E_u","visual-stat":"D_uE0LD5CvpfM2FNp55k","more-stats":"VTBUdi1D4DW34F0yixMk",activity:"BXQQYCO_pEmYmzBBwYxR",summary:"qdvOzzbrd3KQK7DNg8eg",description:"PFbMp_gtGLBMWbbYtO0q",time:"ZFCNMiywyFvaifoIQI5w"}},2106:()=>{},538:()=>{},1218:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"single-contextual-info":"g4lyov8aMDggdD4yOi1p","main-value":"Ys5ScZ_dYn2O2AzDE5Yi","single-contextual-info-placeholder":"sUNg_b7XteVXOrpHAkJg","contextual-percentage-change":"cF6QAJf1vXXAMuutXPcq",neutral:"coY634LconQ7gzDDNJeu",positive:"kyqpwKaL2FyQ8CtxJQ0f",negative:"aXf37lEOcjpNV8ImLaYK","change-icon":"OyGdoGzsQ48VaVVR99_H","change-values":"cKLicfMCaDSGPlX222jF",cardListTitle:"ZaPXoMGC_e8NfFoBgA95",fullStatsCard:"gb2kSZHPauLu96D9HAIg",cardlist:"qpN923qyxjI06NCgFC8j",valueSectionHeading:"hpd1bQCLIZYXpZJa22qw"}},6101:()=>{},9084:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={card:"q0T8YyQxRawhpDtvJjxI",container:"B7JDqI_vtKxSy5GjvqA1","card-header":"zj7xadmhIWeuf7ZwvVTS","product-bundle-icon":"GsioW6IsC8EMYE3U6788","product-bundle-icons":"dbz07JqxOlivjKO4vBEF","product-icon":"cfEO8udWbRGPFJzW8Jg5","plus-icon":"zlh3zbjUe4Z8cBs7uVVe","product-has-required-plan":"qoZuzG5EcDa231hC6t0P","checkout-button":"Q6uUUQCPWS6_6nLxIn68","components-spinner":"YU4iBCRze09ZP3iCsdcb","free-product-checkout-button":"OrQG7DjDd9Ha2Xj1Mx3L",features:"Q1jaYDpa2AVfJpA29wT0","highlight-last-feature":"HL4gSxsF0skYGhGuqH90",disclaimers:"sEcLfpWjo0GF7QrxD3Lt","price-container":"xgv3jRkeF39aEQELCwru",price:"twlleZ5Ehq4bB7CvKVSW","is-old":"Qg4rPEvXsqmod1s_31d8","price-description":"ApsgxIornVy_3KnciVeJ","supporting-info":"NMxcZL17aEP7v81uG3zD","tos-container":"gCTKfAPzJqZas7CaRbKN"}},1298:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"svE2cJL5t2FarzcDQYNe",imageContainer:"dvEJEDNTnmVfVxtLa4uU",aiImageContainer:"K1VY4DNP8PHMWAEVBC_h","product-interstitial__header":"nk_COGPrkBNLp7lVt4sQ","product-interstitial__license-activation-link":"ukgQ5TmLablG3svUKjdw","not-strong":"Vofm70ADXSe43GamWEaF",card:"EUcF2LKeC2GyhWD2FKCP","buttons-row":"Bm21LIBQtpRo3ZhOxXBG","product-interstitial__product-header":"jwIGzADCnBI_ai9xYYiS","product-interstitial__product-header-name":"fTbxuhh_SfMgenyWvGN0","product-interstitial__hero-section":"eR56lApoP14RIBAhO1UN","product-interstitial__hero-content":"vHnITd5JOCOgxCgXTgoD","product-interstitial__hero-heading":"vAGLpjIGi6GA8ghbumN7","product-interstitial__hero-sub-heading":"oag8YaslCEiUVu8GKKL3","product-interstitial__hero-cta":"FhH03GPt9FK1VH9NZhYA","product-interstitial__hero-side":"VUXAtah2JvUCNc4cXjPp","stats-card":"dyPAjc3M4y3Q6gJfWnjw","stats-card-icon-check":"Ll1l9bEuf5G5oh3AENep","product-interstitial__stats-card-text":"WrzTysWiqUiuEPvpFqau","product-interstitial__stats-card-value":"d4faYkf9yL7oW7pwcjmP","product-interstitial__section":"acffvOSYc5S8x4P_AYnQ","product-interstitial__section-wrapper":"M5YNmgy60Q_UtaxKgQcv","product-interstitial__section-wrapper-wide":"HJiOvun8sHkiFpNL0sl6","product-interstitial__section-heading":"mXinUJfpSTS9EVB8M8K_","product-interstitial__section-sub-heading":"QKjsnliPyLu4n08yVUUM","product-interstitial__section-emoji":"xQJJkJ4v7Jm8iSJ0z0Dj","product-interstitial__usage-videos":"VWIBGwuHqtAKg_5Hch92","product-interstitial__usage-videos-item":"mnkNhprYIatxfziERMwM","product-interstitial__usage-videos-video":"WEiaYLqJwV2IzC8LD9Fs","product-interstitial__usage-videos-content":"GJlowVsJybna1MFcIiIU","product-interstitial__usage-videos-heading":"_OeUvI9GrP00qh6Uk7Tg","product-interstitial__usage-videos-text":"C6I5jYHW2IJSDBoKvhcB","product-interstitial__usage-videos-link":"XdnAdAwkxAW5yvUx3NRr","product-interstitial__ai-notice":"MCKgMfLVZtkgWu5m5u6L","product-interstitial__new-badge":"c0SItK48SRkWfZUCECbZ"}},7899:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={container:"SWwV4Pw6OZ5vU3PqPXmr",imageContainer:"r7tUofa9Z3A5ziKVR1H7",aiImageContainer:"i_AnOR3MaQLraGvb2QU5","product-interstitial__header":"YcYvLvdvWrb1EUZoVsE8","product-interstitial__license-activation-link":"uGTTsKoIOoZdYhk6uPnl","not-strong":"NzDTsxhX8D1mlckNpewR"}},3747:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={"section-stats-highlights":"Jvb1njqMy7ML1zikhbWn","section-title":"mpr8_ygU8woV4bVR1xvw","section-description":"gwO_Q0L0jbwMARVlBezu","cards-list":"qwy7CsLeEbXvaPwgC9WV","stats-card":"Hrbg7DeSJs6gas9zdPDR","stats-card-icon":"NFpbo5AINn6I6avKFGby","stats-card-heading":"aoQZCG0JeyWmy2J6vVxF","stats-card-count":"M6ApyXg79vuXo6GwDkbO","is-pointer":"DYHb5e6QhgXejWyo9s78","stats-card-count-value":"OlInbY5YnDO06MEQHv98","stats-card-difference":"EtbKbd5m85w7oYT4stIs","stats-card-difference--positive":"Awr7zl75sfAsFPHK9kDG","stats-card-difference--negative":"QFSZbIKFdWO3HEPBZyhc","stats-card-difference-icon":"GgJAnS4gaEEGmRCP5n8y","stats-card-difference-absolute-value":"mjiNtwdbKpfo9edGVes4",actions:"pAt4v_KG9Ir19wNcEtEj"}},5225:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={banner:"jrGNTKcgeXk9HKzolut9","banner-card":"wg3mZsoPekZWlBgOvdZ6","is-mandatory":"aDxB89WgtARQqNWd4ZeK",dismiss:"sGP8lxDpRSjt0Fh7wxoR","banner-content":"z5EQSkU36nsjxHEBSfNN","banner-description":"MwBwVaEj6u_zRgfrFR9b","banner-image-evaluation":"UgPNtuFW7lTJ06k39EsK","is-selected":"ilVOud0_OCGK4HciazB_","banner-image":"EtcggGK0Bk8POQD986Og",form:"TSiu5sC6MdANROjUkUJM","form-checkbox":"iqJfpZM9IYXuFSXvuoEe","form-actions":"Vozbq8Inlk5SxoVnn2G5","form-link-action":"s_V1BM1Wtt3He4eF2TCu","banner-evaluation":"wXWt0uFLFkFT7CqgOijQ","banner-loader":"m_muvynofDds3hoh9u5m"}},4118:()=>{},4997:e=>{var t=1e3,a=60*t,n=60*a,c=24*n,r=7*c,s=365.25*c;function i(e,t,a,n){var c=t>=1.5*a;return Math.round(e/a)+" "+n+(c?"s":"")}e.exports=function(e,l){l=l||{};var o=typeof e;if("string"===o&&e.length>0)return function(e){if((e=String(e)).length>100)return;var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!i)return;var l=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return l*s;case"weeks":case"week":case"w":return l*r;case"days":case"day":case"d":return l*c;case"hours":case"hour":case"hrs":case"hr":case"h":return l*n;case"minutes":case"minute":case"mins":case"min":case"m":return l*a;case"seconds":case"second":case"secs":case"sec":case"s":return l*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return l;default:return}}(e);if("number"===o&&isFinite(e))return l.long?function(e){var r=Math.abs(e);if(r>=c)return i(e,r,c,"day");if(r>=n)return i(e,r,n,"hour");if(r>=a)return i(e,r,a,"minute");if(r>=t)return i(e,r,t,"second");return e+" ms"}(e):function(e){var r=Math.abs(e);if(r>=c)return Math.round(e/c)+"d";if(r>=n)return Math.round(e/n)+"h";if(r>=a)return Math.round(e/a)+"m";if(r>=t)return Math.round(e/t)+"s";return e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},5762:(e,t,a)=>{"use strict";var n=a(3761);function c(){}function r(){}r.resetWarningCache=c,e.exports=function(){function e(e,t,a,c,r,s){if(s!==n){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var a={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:c};return a.PropTypes=a,a}},8120:(e,t,a)=>{e.exports=a(5762)()},3761:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},3381:(e,t,a)=>{"use strict";var n=a(6142);function c(){}function r(){}r.resetWarningCache=c,e.exports=function(){function e(e,t,a,c,r,s){if(s!==n){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:c};return a.PropTypes=a,a}},5739:(e,t,a)=>{e.exports=a(3381)()},6142:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},28:(e,t,a)=>{"use strict";a.d(t,{I9:()=>u,N_:()=>m,ok:()=>h});var n=a(1609),c=a(9539),r=a(6992);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0||(c[a]=e[a]);return c}function l(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,a)=>{let n=e[a];return t.concat(Array.isArray(n)?n.map((e=>[a,e])):[[a,n]])}),[]))}const o=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset"];function u(e){let{basename:t,children:a,window:s}=e,i=n.useRef();null==i.current&&(i.current=(0,r.TM)({window:s,v5Compat:!0}));let l=i.current,[o,u]=n.useState({action:l.action,location:l.location});return n.useLayoutEffect((()=>l.listen(u)),[l]),n.createElement(c.Ix,{basename:t,children:a,location:o.location,navigationType:o.action,navigator:l})}const m=n.forwardRef((function(e,t){let{onClick:a,relative:l,reloadDocument:u,replace:m,state:d,target:p,to:h,preventScrollReset:g}=e,v=i(e,o),f=(0,c.$P)(h,{relative:l}),w=function(e,t){let{target:a,replace:s,state:i,preventScrollReset:l,relative:o}=void 0===t?{}:t,u=(0,c.Zp)(),m=(0,c.zy)(),d=(0,c.x$)(e,{relative:o});return n.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,a)){t.preventDefault();let a=void 0!==s?s:(0,r.AO)(m)===(0,r.AO)(d);u(e,{replace:a,state:i,preventScrollReset:l,relative:o})}}),[m,u,d,s,i,a,e,l,o])}(h,{replace:m,state:d,target:p,preventScrollReset:g,relative:l});return n.createElement("a",s({},v,{href:f,onClick:u?a:function(e){a&&a(e),e.defaultPrevented||w(e)},ref:t,target:p}))}));var d,p;function h(e){let t=n.useRef(l(e)),a=(0,c.zy)(),r=n.useMemo((()=>function(e,t){let a=l(e);for(let e of t.keys())a.has(e)||t.getAll(e).forEach((t=>{a.append(e,t)}));return a}(a.search,t.current)),[a.search]),s=(0,c.Zp)(),i=n.useCallback(((e,t)=>{const a=l("function"==typeof e?e(r):e);s("?"+a,t)}),[s,r]);return[r,i]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmitImpl="useSubmitImpl",e.UseFetcher="useFetcher"})(d||(d={})),function(e){e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(p||(p={}))},9539:(e,t,a)=>{"use strict";a.d(t,{$P:()=>E,BV:()=>H,C5:()=>L,Ix:()=>P,Zp:()=>A,g:()=>b,qh:()=>V,x$:()=>j,zy:()=>y});var n=a(6992),c=a(1609);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{c.value=n,c.getSnapshot=t,m(c)&&r({inst:c})}),[e,n,t]),l((()=>{m(c)&&r({inst:c});return e((()=>{m(c)&&r({inst:c})}))}),[e]),u(n),n};"useSyncExternalStore"in c&&c.useSyncExternalStore;const p=c.createContext(null);const h=c.createContext(null);const g=c.createContext(null);const v=c.createContext(null);const f=c.createContext({outlet:null,matches:[]});const w=c.createContext(null);function E(e,t){let{relative:a}=void 0===t?{}:t;k()||(0,n.V1)(!1);let{basename:r,navigator:s}=c.useContext(g),{hash:i,pathname:l,search:o}=j(e,{relative:a}),u=l;return"/"!==r&&(u="/"===l?r:(0,n.HS)([r,l])),s.createHref({pathname:u,search:o,hash:i})}function k(){return null!=c.useContext(v)}function y(){return k()||(0,n.V1)(!1),c.useContext(v).location}function A(){k()||(0,n.V1)(!1);let{basename:e,navigator:t}=c.useContext(g),{matches:a}=c.useContext(f),{pathname:r}=y(),s=JSON.stringify((0,n.sd)(a).map((e=>e.pathnameBase))),i=c.useRef(!1);return c.useEffect((()=>{i.current=!0})),c.useCallback((function(a,c){if(void 0===c&&(c={}),!i.current)return;if("number"==typeof a)return void t.go(a);let l=(0,n.Gh)(a,JSON.parse(s),r,"path"===c.relative);"/"!==e&&(l.pathname="/"===l.pathname?e:(0,n.HS)([e,l.pathname])),(c.replace?t.replace:t.push)(l,c.state,c)}),[e,t,s,r])}function b(){let{matches:e}=c.useContext(f),t=e[e.length-1];return t?t.params:{}}function j(e,t){let{relative:a}=void 0===t?{}:t,{matches:r}=c.useContext(f),{pathname:s}=y(),i=JSON.stringify((0,n.sd)(r).map((e=>e.pathnameBase)));return c.useMemo((()=>(0,n.Gh)(e,JSON.parse(i),s,"path"===a)),[e,i,s,a])}function R(){let e=function(){var e;let t=c.useContext(w),a=M(z.UseRouteError),n=S(z.UseRouteError);if(t)return t;return null==(e=a.errors)?void 0:e[n]}(),t=(0,n.pX)(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),a=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r};return c.createElement(c.Fragment,null,c.createElement("h2",null,"Unhandled Thrown Error!"),c.createElement("h3",{style:{fontStyle:"italic"}},t),a?c.createElement("pre",{style:s},a):null,c.createElement("p",null,"💿 Hey developer 👋"),c.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",c.createElement("code",{style:i},"errorElement")," props on ",c.createElement("code",{style:i},"")))}class C extends c.Component{constructor(e){super(e),this.state={location:e.location,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location?{error:e.error,location:e.location}:{error:e.error||t.error,location:t.location}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return this.state.error?c.createElement(f.Provider,{value:this.props.routeContext},c.createElement(w.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function _(e){let{routeContext:t,match:a,children:n}=e,r=c.useContext(p);return r&&r.static&&r.staticContext&&a.route.errorElement&&(r.staticContext._deepestRenderedBoundaryId=a.route.id),c.createElement(f.Provider,{value:t},n)}function x(e,t,a){if(void 0===t&&(t=[]),null==e){if(null==a||!a.errors)return null;e=a.matches}let r=e,s=null==a?void 0:a.errors;if(null!=s){let e=r.findIndex((e=>e.route.id&&(null==s?void 0:s[e.route.id])));e>=0||(0,n.V1)(!1),r=r.slice(0,Math.min(r.length,e+1))}return r.reduceRight(((e,n,i)=>{let l=n.route.id?null==s?void 0:s[n.route.id]:null,o=a?n.route.errorElement||c.createElement(R,null):null,u=t.concat(r.slice(0,i+1)),m=()=>c.createElement(_,{match:n,routeContext:{outlet:e,matches:u}},l?o:void 0!==n.route.element?n.route.element:e);return a&&(n.route.errorElement||0===i)?c.createElement(C,{location:a.location,component:o,error:l,children:m(),routeContext:{outlet:null,matches:u}}):m()}),null)}var N,z;function M(e){let t=c.useContext(h);return t||(0,n.V1)(!1),t}function S(e){let t=function(){let e=c.useContext(f);return e||(0,n.V1)(!1),e}(),a=t.matches[t.matches.length-1];return a.route.id||(0,n.V1)(!1),a.route.id}!function(e){e.UseRevalidator="useRevalidator"}(N||(N={})),function(e){e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator"}(z||(z={}));function L(e){let{to:t,replace:a,state:r,relative:s}=e;k()||(0,n.V1)(!1);let i=c.useContext(h),l=A();return c.useEffect((()=>{i&&"idle"!==i.navigation.state||l(t,{replace:a,state:r,relative:s})})),null}function V(e){(0,n.V1)(!1)}function P(e){let{basename:t="/",children:a=null,location:r,navigationType:s=n.rc.Pop,navigator:i,static:l=!1}=e;k()&&(0,n.V1)(!1);let o=t.replace(/^\/*/,"/"),u=c.useMemo((()=>({basename:o,navigator:i,static:l})),[o,i,l]);"string"==typeof r&&(r=(0,n.Rr)(r));let{pathname:m="/",search:d="",hash:p="",state:h=null,key:f="default"}=r,w=c.useMemo((()=>{let e=(0,n.pb)(m,o);return null==e?null:{pathname:e,search:d,hash:p,state:h,key:f}}),[o,m,d,p,h,f]);return null==w?null:c.createElement(g.Provider,{value:u},c.createElement(v.Provider,{children:a,value:{location:w,navigationType:s}}))}function H(e){let{children:t,location:a}=e,s=c.useContext(p);return function(e,t){k()||(0,n.V1)(!1);let{navigator:a}=c.useContext(g),s=c.useContext(h),{matches:i}=c.useContext(f),l=i[i.length-1],o=l?l.params:{},u=(l&&l.pathname,l?l.pathnameBase:"/");l&&l.route;let m,d=y();if(t){var p;let e="string"==typeof t?(0,n.Rr)(t):t;"/"===u||(null==(p=e.pathname)?void 0:p.startsWith(u))||(0,n.V1)(!1),m=e}else m=d;let w=m.pathname||"/",E="/"===u?w:w.slice(u.length)||"/",A=(0,n.ue)(e,{pathname:E}),b=x(A&&A.map((e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:(0,n.HS)([u,a.encodeLocation?a.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?u:(0,n.HS)([u,a.encodeLocation?a.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),i,s||void 0);return t&&b?c.createElement(v.Provider,{value:{location:r({pathname:"/",search:"",hash:"",state:null,key:"default"},m),navigationType:n.rc.Pop}},b):b}(s&&!t?s.router.routes:O(t),a)}var B;!function(e){e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error"}(B||(B={}));new Promise((()=>{}));c.Component;function O(e,t){void 0===t&&(t=[]);let a=[];return c.Children.forEach(e,((e,r)=>{if(!c.isValidElement(e))return;if(e.type===c.Fragment)return void a.push.apply(a,O(e.props.children,t));e.type!==V&&(0,n.V1)(!1),e.props.index&&e.props.children&&(0,n.V1)(!1);let s=[...t,r],i={id:e.props.id||s.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,hasErrorBoundary:null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle};e.props.children&&(i.children=O(e.props.children,s)),a.push(i)})),a}},372:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(6941);const c=a.n(n)()("dops:analytics");let r,s;window._tkq=window._tkq||[],window.ga=window.ga||function(){(window.ga.q=window.ga.q||[]).push(arguments)},window.ga.l=+new Date;const i={initialize:function(e,t,a){i.setUser(e,t),i.setSuperProps(a),i.identifyUser()},setGoogleAnalyticsEnabled:function(e,t=null){this.googleAnalyticsEnabled=e,this.googleAnalyticsKey=t},setMcAnalyticsEnabled:function(e){this.mcAnalyticsEnabled=e},setUser:function(e,t){s={ID:e,username:t}},setSuperProps:function(e){r=e},assignSuperProps:function(e){r=Object.assign(r||{},e)},mc:{bumpStat:function(e,t){const a=function(e,t){let a="";if("object"==typeof e){for(const t in e)a+="&x_"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Bumping stats %o",e)}else a="&x_"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Bumping stat "%s" in group "%s"',t,e);return a}(e,t);i.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom-no-pv"+a+"&t="+Math.random())},bumpStatWithPageView:function(e,t){const a=function(e,t){let a="";if("object"==typeof e){for(const t in e)a+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t]);c("Built stats %o",e)}else a="&"+encodeURIComponent(e)+"="+encodeURIComponent(t),c('Built stat "%s" in group "%s"',t,e);return a}(e,t);i.mcAnalyticsEnabled&&((new Image).src=document.location.protocol+"//pixel.wp.com/g.gif?v=wpcom"+a+"&t="+Math.random())}},pageView:{record:function(e,t){i.tracks.recordPageView(e),i.ga.recordPageView(e,t)}},purchase:{record:function(e,t,a,n,c,r,s){i.ga.recordPurchase(e,t,a,n,c,r,s)}},tracks:{recordEvent:function(e,t){t=t||{},0===e.indexOf("akismet_")||0===e.indexOf("jetpack_")?(r&&(c("- Super Props: %o",r),t=Object.assign(t,r)),c('Record event "%s" called with props %s',e,JSON.stringify(t)),window._tkq.push(["recordEvent",e,t])):c('- Event name must be prefixed by "akismet_" or "jetpack_"')},recordJetpackClick:function(e){const t="object"==typeof e?e:{target:e};i.tracks.recordEvent("jetpack_wpa_click",t)},recordPageView:function(e){i.tracks.recordEvent("akismet_page_view",{path:e})},setOptOut:function(e){c("Pushing setOptOut: %o",e),window._tkq.push(["setOptOut",e])}},ga:{initialized:!1,initialize:function(){let e={};i.ga.initialized||(s&&(e={userId:"u-"+s.ID}),window.ga("create",this.googleAnalyticsKey,"auto",e),i.ga.initialized=!0)},recordPageView:function(e,t){i.ga.initialize(),c("Recording Page View ~ [URL: "+e+"] [Title: "+t+"]"),this.googleAnalyticsEnabled&&(window.ga("set","page",e),window.ga("send",{hitType:"pageview",page:e,title:t}))},recordEvent:function(e,t,a,n){i.ga.initialize();let r="Recording Event ~ [Category: "+e+"] [Action: "+t+"]";void 0!==a&&(r+=" [Option Label: "+a+"]"),void 0!==n&&(r+=" [Option Value: "+n+"]"),c(r),this.googleAnalyticsEnabled&&window.ga("send","event",e,t,a,n)},recordPurchase:function(e,t,a,n,c,r,s){window.ga("require","ecommerce"),window.ga("ecommerce:addTransaction",{id:e,revenue:n,currency:s}),window.ga("ecommerce:addItem",{id:e,name:t,sku:a,price:c,quantity:r}),window.ga("ecommerce:send")}},identifyUser:function(){s&&window._tkq.push(["identifyUser",s.ID,s.username])},setProperties:function(e){window._tkq.push(["setProperties",e])},clearedIdentity:function(){window._tkq.push(["clearIdentity"])}},l=i},5932:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>m});var n=a(6439),c=a(3832);function r(e){class t extends Error{constructor(...t){super(...t),this.name=e}}return t}const s=r("JsonParseError"),i=r("JsonParseAfterRedirectError"),l=r("Api404Error"),o=r("Api404AfterRedirectError"),u=r("FetchNetworkError");const m=new function(e,t){let a=e,r=e,s={"X-WP-Nonce":t},i={credentials:"same-origin",headers:s},l={method:"post",credentials:"same-origin",headers:Object.assign({},s,{"Content-type":"application/json"})},o=function(e){const t=e.split("?"),a=t.length>1?t[1]:"",n=a.length?a.split("&"):[];return n.push("_cacheBuster="+(new Date).getTime()),t[0]+"?"+n.join("&")};const u={setApiRoot(e){a=e},setWpcomOriginApiUrl(e){r=e},setApiNonce(e){s={"X-WP-Nonce":e},i={credentials:"same-origin",headers:s},l={method:"post",credentials:"same-origin",headers:Object.assign({},s,{"Content-type":"application/json"})}},setCacheBusterCallback:e=>{o=e},registerSite:(e,t,c)=>{const r={registration_nonce:e,no_iframe:!0};return(0,n.jetpackConfigHas)("consumer_slug")&&(r.plugin_slug=(0,n.jetpackConfigGet)("consumer_slug")),null!==t&&(r.redirect_uri=t),c&&(r.from=c),h(`${a}jetpack/v4/connection/register`,l,{body:JSON.stringify(r)}).then(d).then(p)},fetchAuthorizationUrl:e=>m((0,c.addQueryArgs)(`${a}jetpack/v4/connection/authorize_url`,{no_iframe:"1",redirect_uri:e}),i).then(d).then(p),fetchSiteConnectionData:()=>m(`${a}jetpack/v4/connection/data`,i).then(p),fetchSiteConnectionStatus:()=>m(`${a}jetpack/v4/connection`,i).then(p),fetchSiteConnectionTest:()=>m(`${a}jetpack/v4/connection/test`,i).then(d).then(p),fetchUserConnectionData:()=>m(`${a}jetpack/v4/connection/data`,i).then(p),fetchUserTrackingSettings:()=>m(`${a}jetpack/v4/tracking/settings`,i).then(d).then(p),updateUserTrackingSettings:e=>h(`${a}jetpack/v4/tracking/settings`,l,{body:JSON.stringify(e)}).then(d).then(p),disconnectSite:()=>h(`${a}jetpack/v4/connection`,l,{body:JSON.stringify({isActive:!1})}).then(d).then(p),fetchConnectUrl:()=>m(`${a}jetpack/v4/connection/url`,i).then(d).then(p),unlinkUser:()=>h(`${a}jetpack/v4/connection/user`,l,{body:JSON.stringify({linked:!1})}).then(d).then(p),reconnect:()=>h(`${a}jetpack/v4/connection/reconnect`,l).then(d).then(p),fetchConnectedPlugins:()=>m(`${a}jetpack/v4/connection/plugins`,i).then(d).then(p),setHasSeenWCConnectionModal:()=>h(`${a}jetpack/v4/seen-wc-connection-modal`,l).then(d).then(p),fetchModules:()=>m(`${a}jetpack/v4/module/all`,i).then(d).then(p),fetchModule:e=>m(`${a}jetpack/v4/module/${e}`,i).then(d).then(p),activateModule:e=>h(`${a}jetpack/v4/module/${e}/active`,l,{body:JSON.stringify({active:!0})}).then(d).then(p),deactivateModule:e=>h(`${a}jetpack/v4/module/${e}/active`,l,{body:JSON.stringify({active:!1})}),updateModuleOptions:(e,t)=>h(`${a}jetpack/v4/module/${e}`,l,{body:JSON.stringify(t)}).then(d).then(p),updateSettings:e=>h(`${a}jetpack/v4/settings`,l,{body:JSON.stringify(e)}).then(d).then(p),getProtectCount:()=>m(`${a}jetpack/v4/module/protect/data`,i).then(d).then(p),resetOptions:e=>h(`${a}jetpack/v4/options/${e}`,l,{body:JSON.stringify({reset:!0})}).then(d).then(p),activateVaultPress:()=>h(`${a}jetpack/v4/plugins`,l,{body:JSON.stringify({slug:"vaultpress",status:"active"})}).then(d).then(p),getVaultPressData:()=>m(`${a}jetpack/v4/module/vaultpress/data`,i).then(d).then(p),installPlugin:(e,t)=>{const n={slug:e,status:"active"};return t&&(n.source=t),h(`${a}jetpack/v4/plugins`,l,{body:JSON.stringify(n)}).then(d).then(p)},activateAkismet:()=>h(`${a}jetpack/v4/plugins`,l,{body:JSON.stringify({slug:"akismet",status:"active"})}).then(d).then(p),getAkismetData:()=>m(`${a}jetpack/v4/module/akismet/data`,i).then(d).then(p),checkAkismetKey:()=>m(`${a}jetpack/v4/module/akismet/key/check`,i).then(d).then(p),checkAkismetKeyTyped:e=>h(`${a}jetpack/v4/module/akismet/key/check`,l,{body:JSON.stringify({api_key:e})}).then(d).then(p),fetchStatsData:e=>m(function(e){let t=`${a}jetpack/v4/module/stats/data`;-1!==t.indexOf("?")?t+=`&range=${encodeURIComponent(e)}`:t+=`?range=${encodeURIComponent(e)}`;return t}(e),i).then(d).then(p).then(v),getPluginUpdates:()=>m(`${a}jetpack/v4/updates/plugins`,i).then(d).then(p),getPlans:()=>m(`${a}jetpack/v4/plans`,i).then(d).then(p),fetchSettings:()=>m(`${a}jetpack/v4/settings`,i).then(d).then(p),updateSetting:e=>h(`${a}jetpack/v4/settings`,l,{body:JSON.stringify(e)}).then(d).then(p),fetchSiteData:()=>m(`${a}jetpack/v4/site`,i).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteFeatures:()=>m(`${a}jetpack/v4/site/features`,i).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteProducts:()=>m(`${a}jetpack/v4/site/products`,i).then(d).then(p),fetchSitePurchases:()=>m(`${a}jetpack/v4/site/purchases`,i).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteBenefits:()=>m(`${a}jetpack/v4/site/benefits`,i).then(d).then(p).then((e=>JSON.parse(e.data))),fetchSiteDiscount:()=>m(`${a}jetpack/v4/site/discount`,i).then(d).then(p).then((e=>e.data)),fetchSetupQuestionnaire:()=>m(`${a}jetpack/v4/setup/questionnaire`,i).then(d).then(p),fetchRecommendationsData:()=>m(`${a}jetpack/v4/recommendations/data`,i).then(d).then(p),fetchRecommendationsProductSuggestions:()=>m(`${a}jetpack/v4/recommendations/product-suggestions`,i).then(d).then(p),fetchRecommendationsUpsell:()=>m(`${a}jetpack/v4/recommendations/upsell`,i).then(d).then(p),fetchRecommendationsConditional:()=>m(`${a}jetpack/v4/recommendations/conditional`,i).then(d).then(p),saveRecommendationsData:e=>h(`${a}jetpack/v4/recommendations/data`,l,{body:JSON.stringify({data:e})}).then(d),fetchProducts:()=>m(`${a}jetpack/v4/products`,i).then(d).then(p),fetchRewindStatus:()=>m(`${a}jetpack/v4/rewind`,i).then(d).then(p).then((e=>JSON.parse(e.data))),fetchScanStatus:()=>m(`${a}jetpack/v4/scan`,i).then(d).then(p).then((e=>JSON.parse(e.data))),dismissJetpackNotice:e=>h(`${a}jetpack/v4/notice/${e}`,l,{body:JSON.stringify({dismissed:!0})}).then(d).then(p),fetchPluginsData:()=>m(`${a}jetpack/v4/plugins`,i).then(d).then(p),fetchIntroOffers:()=>m(`${a}jetpack/v4/intro-offers`,i).then(d).then(p),fetchVerifySiteGoogleStatus:e=>m(null!==e?`${a}jetpack/v4/verify-site/google/${e}`:`${a}jetpack/v4/verify-site/google`,i).then(d).then(p),verifySiteGoogle:e=>h(`${a}jetpack/v4/verify-site/google`,l,{body:JSON.stringify({keyring_id:e})}).then(d).then(p),submitSurvey:e=>h(`${a}jetpack/v4/marketing/survey`,l,{body:JSON.stringify(e)}).then(d).then(p),saveSetupQuestionnaire:e=>h(`${a}jetpack/v4/setup/questionnaire`,l,{body:JSON.stringify(e)}).then(d).then(p),updateLicensingError:e=>h(`${a}jetpack/v4/licensing/error`,l,{body:JSON.stringify(e)}).then(d).then(p),updateLicenseKey:e=>h(`${a}jetpack/v4/licensing/set-license`,l,{body:JSON.stringify({license:e})}).then(d).then(p),getUserLicensesCounts:()=>m(`${a}jetpack/v4/licensing/user/counts`,i).then(d).then(p),getUserLicenses:()=>m(`${a}jetpack/v4/licensing/user/licenses`,i).then(d).then(p),updateLicensingActivationNoticeDismiss:e=>h(`${a}jetpack/v4/licensing/user/activation-notice-dismiss`,l,{body:JSON.stringify({last_detached_count:e})}).then(d).then(p),updateRecommendationsStep:e=>h(`${a}jetpack/v4/recommendations/step`,l,{body:JSON.stringify({step:e})}).then(d),confirmIDCSafeMode:()=>h(`${a}jetpack/v4/identity-crisis/confirm-safe-mode`,l).then(d),startIDCFresh:e=>h(`${a}jetpack/v4/identity-crisis/start-fresh`,l,{body:JSON.stringify({redirect_uri:e})}).then(d).then(p),migrateIDC:()=>h(`${a}jetpack/v4/identity-crisis/migrate`,l).then(d),attachLicenses:e=>h(`${a}jetpack/v4/licensing/attach-licenses`,l,{body:JSON.stringify({licenses:e})}).then(d).then(p),fetchSearchPlanInfo:()=>m(`${r}jetpack/v4/search/plan`,i).then(d).then(p),fetchSearchSettings:()=>m(`${r}jetpack/v4/search/settings`,i).then(d).then(p),updateSearchSettings:e=>h(`${r}jetpack/v4/search/settings`,l,{body:JSON.stringify(e)}).then(d).then(p),fetchSearchStats:()=>m(`${r}jetpack/v4/search/stats`,i).then(d).then(p),fetchWafSettings:()=>m(`${a}jetpack/v4/waf`,i).then(d).then(p),updateWafSettings:e=>h(`${a}jetpack/v4/waf`,l,{body:JSON.stringify(e)}).then(d).then(p),fetchWordAdsSettings:()=>m(`${a}jetpack/v4/wordads/settings`,i).then(d).then(p),updateWordAdsSettings:e=>h(`${a}jetpack/v4/wordads/settings`,l,{body:JSON.stringify(e)}),fetchSearchPricing:()=>m(`${r}jetpack/v4/search/pricing`,i).then(d).then(p),fetchMigrationStatus:()=>m(`${a}jetpack/v4/migration/status`,i).then(d).then(p),fetchBackupUndoEvent:()=>m(`${a}jetpack/v4/site/backup/undo-event`,i).then(d).then(p),fetchBackupPreflightStatus:()=>m(`${a}jetpack/v4/site/backup/preflight`,i).then(d).then(p)};function m(e,t){return fetch(o(e),t)}function h(e,t,a){return fetch(e,Object.assign({},t,a)).catch(g)}function v(e){return e.general&&void 0===e.general.response||e.week&&void 0===e.week.response||e.month&&void 0===e.month.response?e:{}}Object.assign(this,u)};function d(e){return e.status>=200&&e.status<300?e:404===e.status?new Promise((()=>{throw e.redirected?new o(e.redirected):new l})):e.json().catch((e=>h(e))).then((t=>{const a=new Error(`${t.message} (Status ${e.status})`);throw a.response=t,a.name="ApiError",a}))}function p(e){return e.json().catch((t=>h(t,e.redirected,e.url)))}function h(e,t,a){throw t?new i(a):new s}function g(){throw new u}},1197:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(7723),c=a(5289),r=a(4144);const __=n.__;class s extends Error{constructor(e,t,a){super(),this.httpCode=e,this.body=t,this.parseError=a}get message(){switch(this.httpCode){case 403:return this.getRestApiErrorMessage();case 200:if(this.parseError)return(0,n.sprintf)(/* Translators: %s refers to a browser-supplied error message (hopefully already in the right language) */
+__("Received invalid response while communicating with your WordPress site: %s","jetpack-my-jetpack"),this.parseError.message)}return(0,n.sprintf)(/* Translators: %d refers to numeric HTTP error code */
+__("HTTP %d error received while communicating with the server.","jetpack-my-jetpack"),this.httpCode)}getDisplayBody(){return(0,r.O)(this.body)?JSON.stringify(this.body,null," "):(0,c.w)(this.body,"").substring(0,1e3)}getRestApiErrorMessage(){return __("Your site's REST API does not seem to be accessible. Jetpack Boost requires access to your REST API in order to receive site performance scores. Please make sure that your site's REST API is active and accessible, and try again.","jetpack-my-jetpack")}}},5098:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7723),c=a(1197),r=a(8882);const __=n.__;async function s(e,t,a,c=null,s){const i={method:e,mode:"cors",headers:{"X-WP-Nonce":s}};"post"!==e&&"delete"!==e||!c||(i.body=JSON.stringify(c),i.headers["Content-Type"]="application/json");const l=function(e,t){return t+r.K+r.L+e}(a,t);let o;try{o=await fetch(l,i)}catch(e){const t=i;delete t.body,delete t.headers["X-WP-Nonce"];const a={requestInitiator:window.location.href,requestUrl:l,requestArgs:t,originalErrorMessage:e.toString()};throw new Error((0,n.sprintf)(/* Translators: %s refers to a string representation of an error object containing useful debug information */
+__("An error occurred while trying to communicate with the site REST API. Extra debug info: %s","jetpack-my-jetpack"),JSON.stringify(a)))}return o}async function i(e,t,a,n=null,r){const i=await s(e,t,a,n,r);let l,o;try{l=await i.text()}catch(e){throw new c.h(i.status,null,e)}try{o=JSON.parse(l)}catch(e){throw new c.h(i.status,l,e)}if(!i.ok)throw new c.h(i.status,o,null);return o}const l={get:function(e,t,a){return i("get",e,t,null,a)},post:function(e,t,a=null,n){return i("post",e,t,a,n)}}},8882:(e,t,a)=>{"use strict";a.d(t,{K:()=>n,L:()=>c});const n="jetpack-boost/v1",c=""},8454:(e,t,a)=>{"use strict";a.d(t,{T:()=>h,US:()=>g,sE:()=>d});var n=a(7723),c=a(5098),r=a(4753),s=a(5289),i=a(4144),l=a(8991),o=a(3470);const __=n.__,u=12e4,m=5e3;async function d(e=!1,t,a,n){const r=p(await c.A.post(t,e?"/speed-scores/refresh":"/speed-scores",{url:a},n));return r.scores?r.scores:await async function(e,t,a){return(0,l.A)({timeout:u,interval:m,timeoutError:__("Timed out while waiting for speed-score.","jetpack-my-jetpack"),callback:async n=>{const r=p(await c.A.post(e,"/speed-scores",{url:t},a));r.scores&&n(r.scores)}})}(t,a,n)}function p(e){if(e.error){const t=__("An unknown error occurred while requesting metrics","jetpack-my-jetpack");throw(0,o.g)(e.error,t)}if((0,i.O)(e.scores))return{status:"success",scores:{current:(0,i.O)(e.scores.current)?{mobile:(0,r.G)(e.scores.current.mobile,0),desktop:(0,r.G)(e.scores.current.desktop,0)}:{mobile:0,desktop:0},noBoost:(0,i.O)(e.scores.noBoost)?{mobile:(0,r.G)(e.scores.noBoost.mobile,0),desktop:(0,r.G)(e.scores.noBoost.desktop,0)}:null,isStale:!!e.scores.isStale}};const t=(0,s.w)(e.status);if(!t)throw new Error(__("Invalid response while requesting metrics","jetpack-my-jetpack"));return{status:t}}function h(e,t){const a=(e+t)/2;return a>90?"A":a>75?"B":a>50?"C":a>35?"D":a>25?"E":"F"}function g(e){const t=new Date(e),a=(new Date).valueOf()-t.valueOf();return Math.floor(a/864e5)}},4753:(e,t,a)=>{"use strict";function n(e,t=void 0){if("number"==typeof e)return e;if("string"==typeof e){const t=parseFloat(e);if(!isNaN(t))return t}return t}a.d(t,{G:()=>n})},5289:(e,t,a)=>{"use strict";function n(e,t=void 0){return"string"==typeof e?e:e&&e.toString instanceof Function?e.toString():t}a.d(t,{w:()=>n})},4144:(e,t,a)=>{"use strict";function n(e){return!!e&&e instanceof Object&&!(e instanceof Array)}a.d(t,{O:()=>n})},8991:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(7723);const __=n.__;async function c({interval:e,callback:t,timeout:a,timeoutError:n}){let c,r;return new Promise(((s,i)=>{c=setTimeout((()=>{i(new Error(n||__("Timed out","jetpack-my-jetpack")))}),a||12e4),r=setInterval((async()=>{try{await Promise.resolve(t(s))}catch(e){i(e)}}),e)})).finally((()=>{clearTimeout(c),clearInterval(r)}))}},3470:(e,t,a)=>{"use strict";function n(e,t){return e instanceof Error?e:"string"==typeof e||e instanceof String?new Error(e.toString()):e.message?new Error(e.message):t?new Error(t):new Error(JSON.stringify(e))}a.d(t,{g:()=>n})},8089:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(6427),c=a(7723),r=a(3022),s=a(5739),i=a.n(s),l=a(1609),o=a.n(l),u=a(1112),m=a(7689);const __=c.__,d=e=>{const{label:t,onClick:a,isLoading:c=!1,loadingText:s,isDisabled:i,displayError:l=!1,errorMessage:d=__("An error occurred. Please try again.","jetpack-my-jetpack"),customClass:p}=e,h=s||o().createElement(n.Spinner,null);return o().createElement(o().Fragment,null,o().createElement(u.A,{className:(0,r.A)(m.A.button,"jp-action-button--button",p),label:t,onClick:a,variant:"primary",disabled:c||i},c?h:t),l&&o().createElement("p",{className:(0,r.A)(m.A.error,"jp-action-button__error")},d))};d.propTypes={label:i().string.isRequired,onClick:i().func,isLoading:i().bool,isDisabled:i().bool,displayError:i().bool,errorMessage:i().oneOfType([i().string,i().element])};const p=d},2947:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(7723),c=a(3022),r=a(8250),s=a(7142),i=a(8509),l=a(5918),o=a(2021);const __=n.__,u=({children:e,moduleName:t=__("Jetpack","jetpack-my-jetpack"),moduleNameHref:a,showHeader:n=!0,showFooter:u=!0,showBackground:m=!0,header:d})=>{const p=(0,c.A)(o.A["admin-page"],{[o.A.background]:m});return React.createElement("div",{className:p},n&&React.createElement(l.A,{horizontalSpacing:5},React.createElement(i.A,null,d||React.createElement(s.A,null))),React.createElement(l.A,{fluid:!0,horizontalSpacing:0},React.createElement(i.A,null,e)),u&&React.createElement(l.A,{horizontalSpacing:5},React.createElement(i.A,null,React.createElement(r.A,{moduleName:t,moduleNameHref:a}))))}},5640:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(1609),c=a.n(n),r=a(654);const s=({children:e})=>c().createElement("div",{className:r.A.section},e)},766:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(1609),c=a.n(n),r=a(6888);const s=({children:e})=>c().createElement("div",{className:r.A["section-hero"]},e)},2266:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var n=a(311),c=a(9783),r=a(3883),s=a(1113),i=a(3022),l=a(1609),o=a.n(l),u=a(6588);const m=e=>{switch(e){case"error":case"warning":default:return n.A;case"info":return c.A;case"success":return r.A}},d=({level:e="warning",children:t,showIcon:a=!0,className:n})=>{const c=(0,i.A)(u.A.container,u.A[`is-${e}`],n);return o().createElement("div",{className:c},a&&o().createElement("div",{className:u.A["icon-wrapper"]},o().createElement(s.A,{icon:m(e),className:u.A.icon})),o().createElement("div",null,t))}},8907:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(6072),c=a.n(n),r=a(7723),s=a(3022),i=a(1609),l=a.n(i);const __=r.__,o=({title:e=__("An Automattic Airline","jetpack-my-jetpack"),height:t=7,className:a,...n})=>l().createElement("svg",c()({role:"img",x:"0",y:"0",viewBox:"0 0 935 38.2",enableBackground:"new 0 0 935 38.2","aria-labelledby":"jp-automattic-byline-logo-title",height:t,className:(0,s.A)("jp-automattic-byline-logo",a)},n),l().createElement("desc",{id:"jp-automattic-byline-logo-title"},e),l().createElement("path",{d:"M317.1 38.2c-12.6 0-20.7-9.1-20.7-18.5v-1.2c0-9.6 8.2-18.5 20.7-18.5 12.6 0 20.8 8.9 20.8 18.5v1.2C337.9 29.1 329.7 38.2 317.1 38.2zM331.2 18.6c0-6.9-5-13-14.1-13s-14 6.1-14 13v0.9c0 6.9 5 13.1 14 13.1s14.1-6.2 14.1-13.1V18.6zM175 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7L157 1.3h5.5L182 36.8H175zM159.7 8.2L152 23.1h15.7L159.7 8.2zM212.4 38.2c-12.7 0-18.7-6.9-18.7-16.2V1.3h6.6v20.9c0 6.6 4.3 10.5 12.5 10.5 8.4 0 11.9-3.9 11.9-10.5V1.3h6.7V22C231.4 30.8 225.8 38.2 212.4 38.2zM268.6 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H268.6zM397.3 36.8V8.7l-1.8 3.1 -14.9 25h-3.3l-14.7-25 -1.8-3.1v28.1h-6.5V1.3h9.2l14 24.4 1.7 3 1.7-3 13.9-24.4h9.1v35.5H397.3zM454.4 36.8l-4.7-8.8h-20.9l-4.5 8.8h-7l19.2-35.5h5.5l19.5 35.5H454.4zM439.1 8.2l-7.7 14.9h15.7L439.1 8.2zM488.4 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H488.4zM537.3 6.8v30h-6.7v-30h-15.5V1.3h37.7v5.5H537.3zM569.3 36.8V4.6c2.7 0 3.7-1.4 3.7-3.4h2.8v35.5L569.3 36.8 569.3 36.8zM628 11.3c-3.2-2.9-7.9-5.7-14.2-5.7 -9.5 0-14.8 6.5-14.8 13.3v0.7c0 6.7 5.4 13 15.3 13 5.9 0 10.8-2.8 13.9-5.7l4 4.2c-3.9 3.8-10.5 7.1-18.3 7.1 -13.4 0-21.6-8.7-21.6-18.3v-1.2c0-9.6 8.9-18.7 21.9-18.7 7.5 0 14.3 3.1 18 7.1L628 11.3zM321.5 12.4c1.2 0.8 1.5 2.4 0.8 3.6l-6.1 9.4c-0.8 1.2-2.4 1.6-3.6 0.8l0 0c-1.2-0.8-1.5-2.4-0.8-3.6l6.1-9.4C318.7 11.9 320.3 11.6 321.5 12.4L321.5 12.4z"}),l().createElement("path",{d:"M37.5 36.7l-4.7-8.9H11.7l-4.6 8.9H0L19.4 0.8H25l19.7 35.9H37.5zM22 7.8l-7.8 15.1h15.9L22 7.8zM82.8 36.7l-23.3-24 -2.3-2.5v26.6h-6.7v-36H57l22.6 24 2.3 2.6V0.8h6.7v35.9H82.8z"}),l().createElement("path",{d:"M719.9 37l-4.8-8.9H694l-4.6 8.9h-7.1l19.5-36h5.6l19.8 36H719.9zM704.4 8l-7.8 15.1h15.9L704.4 8zM733 37V1h6.8v36H733zM781 37c-1.8 0-2.6-2.5-2.9-5.8l-0.2-3.7c-0.2-3.6-1.7-5.1-8.4-5.1h-12.8V37H750V1h19.6c10.8 0 15.7 4.3 15.7 9.9 0 3.9-2 7.7-9 9 7 0.5 8.5 3.7 8.6 7.9l0.1 3c0.1 2.5 0.5 4.3 2.2 6.1V37H781zM778.5 11.8c0-2.6-2.1-5.1-7.9-5.1h-13.8v10.8h14.4c5 0 7.3-2.4 7.3-5.2V11.8zM794.8 37V1h6.8v30.4h28.2V37H794.8zM836.7 37V1h6.8v36H836.7zM886.2 37l-23.4-24.1 -2.3-2.5V37h-6.8V1h6.5l22.7 24.1 2.3 2.6V1h6.8v36H886.2zM902.3 37V1H935v5.6h-26v9.2h20v5.5h-20v10.1h26V37H902.3z"}))},580:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7723),c=a(3022),r=a(1883);a(6552);const __=n.__,s=({score:e,isLoading:t,showPrevScores:a,active:n,prevScore:s=0,scoreBarType:i,noBoostScoreTooltip:l})=>{if(!n)return null;const o=s/e*100,u=__("Desktop score","jetpack-my-jetpack"),m=__("Mobile score","jetpack-my-jetpack");return React.createElement("div",{className:(0,c.A)("jb-score-bar",`jb-score-bar--${i}`)},React.createElement("div",{className:"jb-score-bar__label"},"desktop"===i?React.createElement(r.A,{icon:"computer",size:24}):React.createElement(r.A,{icon:"phone",size:24}),React.createElement("div",null,"desktop"===i?u:m)),React.createElement("div",{className:"jb-score-bar__bounds"},React.createElement("div",{className:(0,c.A)("jb-score-bar__filler",t&&!e?"fill-loading":e>70?"fill-good":e>50?"fill-mediocre":"fill-bad"),style:{width:`${e}%`}},t?React.createElement("div",{className:"jb-score-bar__loading"},React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 128 128"},React.createElement("g",null,React.createElement("path",{d:"M64 0a7 7 0 11-7 7 7 7 0 017-7zm29.86 12.2a2.8 2.8 0 11-3.83 1.02 2.8 2.8 0 013.83-1.02zm22.16 21.68a3.15 3.15 0 11-4.3-1.15 3.15 3.15 0 014.3 1.15zm.87 60.53a4.2 4.2 0 11-1.57-5.7 4.2 4.2 0 011.54 5.73zm7.8-30.5a3.85 3.85 0 11-3.85-3.85 3.85 3.85 0 013.85 3.84zm-30 53.2a4.55 4.55 0 111.66-6.23 4.55 4.55 0 01-1.67 6.22zM64 125.9a4.9 4.9 0 114.9-4.9 4.9 4.9 0 01-4.9 4.9zm-31.06-8.22a5.25 5.25 0 117.17-1.93 5.25 5.25 0 01-7.14 1.93zM9.9 95.1a5.6 5.6 0 117.65 2.06A5.6 5.6 0 019.9 95.1zM1.18 63.9a5.95 5.95 0 115.95 5.94 5.95 5.95 0 01-5.96-5.94zm8.1-31.6a6.3 6.3 0 112.32 8.6 6.3 6.3 0 01-2.3-8.6zM32.25 8.87a6.65 6.65 0 11-2.44 9.1 6.65 6.65 0 012.46-9.1z"}),React.createElement("animateTransform",{attributeName:"transform",type:"rotate",values:"0 64 64;30 64 64;60 64 64;90 64 64;120 64 64;150 64 64;180 64 64;210 64 64;240 64 64;270 64 64;300 64 64;330 64 64",calcMode:"discrete",dur:"1080ms",repeatCount:"indefinite"})))):React.createElement("div",{className:"jb-score-bar__score"},e),a&&!!s&&s{"use strict";a.d(t,{A:()=>h});var n=a(6072),c=a.n(n),r=a(6427),s=a(7723),i=a(1113),l=a(3512),o=a(3022),u=a(1609),m=a.n(u),d=a(2258);const __=s.__,p=(0,u.forwardRef)(((e,t)=>{const{children:a,variant:n="primary",size:s="normal",weight:u="bold",icon:p,iconSize:h,disabled:g,isDestructive:v,isLoading:f,isExternalLink:w,className:E,text:k,fullWidth:y,...A}=e,b=(0,o.A)(d.A.button,E,{[d.A.normal]:"normal"===s,[d.A.small]:"small"===s,[d.A.icon]:Boolean(p),[d.A.loading]:f,[d.A.regular]:"regular"===u,[d.A["full-width"]]:y,[d.A["is-icon-button"]]:Boolean(p)&&!a});A.ref=t;const j="normal"===s?20:16,R=w&&m().createElement(m().Fragment,null,m().createElement(i.A,{size:j,icon:l.A,className:d.A["external-icon"]}),m().createElement(r.VisuallyHidden,{as:"span"},/* translators: accessibility text */
+__("(opens in a new tab)","jetpack-my-jetpack"))),C=w?"_blank":void 0,_=a?.[0]&&null!==a[0]&&"components-tooltip"!==a?.[0]?.props?.className;return m().createElement(r.Button,c()({target:C,variant:n,className:(0,o.A)(b,{"has-text":!!p&&_}),icon:w?void 0:p,iconSize:h,disabled:g,"aria-disabled":g,isDestructive:v,text:k},A),f&&m().createElement(r.Spinner,null),m().createElement("span",null,a),R)}));p.displayName="Button";const h=p},1883:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(7723),c=a(3022),r=a(1609);a(3689);const __=n.__;class s extends r.Component{static defaultProps={"aria-hidden":"false",focusable:"true"};needsOffset(e,t){return["gridicons-arrow-left","gridicons-arrow-right","gridicons-calendar","gridicons-cart","gridicons-folder","gridicons-info","gridicons-info-outline","gridicons-posts","gridicons-star-outline","gridicons-star"].indexOf(e)>=0&&t%18==0}getSVGDescription(e){if("description"in this.props)return this.props.description;switch(e){default:return"";case"gridicons-audio":return __("Has audio.","jetpack-my-jetpack");case"gridicons-arrow-left":return __("Arrow left","jetpack-my-jetpack");case"gridicons-arrow-right":return __("Arrow right","jetpack-my-jetpack");case"gridicons-calendar":return __("Is an event.","jetpack-my-jetpack");case"gridicons-cart":return __("Is a product.","jetpack-my-jetpack");case"chevron-down":return __("Show filters","jetpack-my-jetpack");case"gridicons-comment":return __("Matching comment.","jetpack-my-jetpack");case"gridicons-cross":return __("Close.","jetpack-my-jetpack");case"gridicons-filter":return __("Toggle search filters.","jetpack-my-jetpack");case"gridicons-folder":return __("Category","jetpack-my-jetpack");case"gridicons-info":case"gridicons-info-outline":return __("Information.","jetpack-my-jetpack");case"gridicons-image-multiple":return __("Has multiple images.","jetpack-my-jetpack");case"gridicons-image":return __("Has an image.","jetpack-my-jetpack");case"gridicons-page":return __("Page","jetpack-my-jetpack");case"gridicons-post":return __("Post","jetpack-my-jetpack");case"gridicons-jetpack-search":case"gridicons-search":return __("Magnifying Glass","jetpack-my-jetpack");case"gridicons-tag":return __("Tag","jetpack-my-jetpack");case"gridicons-video":return __("Has a video.","jetpack-my-jetpack")}}renderIcon(e){switch(e){default:return null;case"gridicons-audio":return React.createElement("g",null,React.createElement("path",{d:"M8 4v10.184C7.686 14.072 7.353 14 7 14c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3V7h7v4.184c-.314-.112-.647-.184-1-.184-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3V4H8z"}));case"gridicons-arrow-left":return React.createElement("g",null,React.createElement("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}));case"gridicons-arrow-right":return React.createElement("g",null,React.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8-8-8z"}));case"gridicons-block":return React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zM4 12c0-4.418 3.582-8 8-8 1.848 0 3.545.633 4.9 1.686L5.686 16.9C4.633 15.545 4 13.848 4 12zm8 8c-1.848 0-3.546-.633-4.9-1.686L18.314 7.1C19.367 8.455 20 10.152 20 12c0 4.418-3.582 8-8 8z"}));case"gridicons-calendar":return React.createElement("g",null,React.createElement("path",{d:"M19 4h-1V2h-2v2H8V2H6v2H5c-1.105 0-2 .896-2 2v13c0 1.104.895 2 2 2h14c1.104 0 2-.896 2-2V6c0-1.104-.896-2-2-2zm0 15H5V8h14v11z"}));case"gridicons-cart":return React.createElement("g",null,React.createElement("path",{d:"M9 20c0 1.1-.9 2-2 2s-1.99-.9-1.99-2S5.9 18 7 18s2 .9 2 2zm8-2c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm.396-5c.937 0 1.75-.65 1.952-1.566L21 5H7V4c0-1.105-.895-2-2-2H3v2h2v11c0 1.105.895 2 2 2h12c0-1.105-.895-2-2-2H7v-2h10.396z"}));case"gridicons-checkmark":return React.createElement("g",null,React.createElement("path",{d:"M11 17.768l-4.884-4.884 1.768-1.768L11 14.232l8.658-8.658C17.823 3.39 15.075 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-1.528-.353-2.97-.966-4.266L11 17.768z"}));case"gridicons-chevron-left":return React.createElement("g",null,React.createElement("path",{d:"M16.443 7.41L15.0399 6L9.06934 12L15.0399 18L16.443 16.59L11.8855 12L16.443 7.41Z"}));case"gridicons-chevron-right":return React.createElement("g",null,React.createElement("path",{d:"M10.2366 6L8.8335 7.41L13.391 12L8.8335 16.59L10.2366 18L16.2072 12L10.2366 6Z"}));case"gridicons-chevron-down":return React.createElement("g",null,React.createElement("path",{d:"M20 9l-8 8-8-8 1.414-1.414L12 14.172l6.586-6.586"}));case"gridicons-comment":return React.createElement("g",null,React.createElement("path",{d:"M3 6v9c0 1.105.895 2 2 2h9v5l5.325-3.804c1.05-.75 1.675-1.963 1.675-3.254V6c0-1.105-.895-2-2-2H5c-1.105 0-2 .895-2 2z"}));case"gridicons-computer":return React.createElement("g",null,React.createElement("path",{d:"M20 2H4c-1.104 0-2 .896-2 2v12c0 1.104.896 2 2 2h6v2H7v2h10v-2h-3v-2h6c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm0 14H4V4h16v12z"}));case"gridicons-cross":return React.createElement("g",null,React.createElement("path",{d:"M18.36 19.78L12 13.41l-6.36 6.37-1.42-1.42L10.59 12 4.22 5.64l1.42-1.42L12 10.59l6.36-6.36 1.41 1.41L13.41 12l6.36 6.36z"}));case"gridicons-filter":return React.createElement("g",null,React.createElement("path",{d:"M10 19h4v-2h-4v2zm-4-6h12v-2H6v2zM3 5v2h18V5H3z"}));case"gridicons-folder":return React.createElement("g",null,React.createElement("path",{d:"M18 19H6c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2h7c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2z"}));case"gridicons-image":return React.createElement("g",null,React.createElement("path",{d:"M13 9.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5-.672 1.5-1.5 1.5-1.5-.672-1.5-1.5zM22 6v12c0 1.105-.895 2-2 2H4c-1.105 0-2-.895-2-2V6c0-1.105.895-2 2-2h16c1.105 0 2 .895 2 2zm-2 0H4v7.444L8 9l5.895 6.55 1.587-1.85c.798-.932 2.24-.932 3.037 0L20 15.426V6z"}));case"gridicons-image-multiple":return React.createElement("g",null,React.createElement("path",{d:"M15 7.5c0-.828.672-1.5 1.5-1.5s1.5.672 1.5 1.5S17.328 9 16.5 9 15 8.328 15 7.5zM4 20h14c0 1.105-.895 2-2 2H4c-1.1 0-2-.9-2-2V8c0-1.105.895-2 2-2v14zM22 4v12c0 1.105-.895 2-2 2H8c-1.105 0-2-.895-2-2V4c0-1.105.895-2 2-2h12c1.105 0 2 .895 2 2zM8 4v6.333L11 7l4.855 5.395.656-.73c.796-.886 2.183-.886 2.977 0l.513.57V4H8z"}));case"gridicons-info":return React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}));case"gridicons-info-outline":return React.createElement("g",null,React.createElement("path",{d:"M13 9h-2V7h2v2zm0 2h-2v6h2v-6zm-1-7c-4.411 0-8 3.589-8 8s3.589 8 8 8 8-3.589 8-8-3.589-8-8-8m0-2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z"}));case"gridicons-jetpack-search":return React.createElement("g",null,React.createElement("path",{d:"M0 9.257C0 4.15 4.151 0 9.257 0c5.105 0 9.256 4.151 9.256 9.257a9.218 9.218 0 01-2.251 6.045l.034.033h1.053L24 22.01l-1.986 1.989-6.664-6.662v-1.055l-.033-.033a9.218 9.218 0 01-6.06 2.264C4.15 18.513 0 14.362 0 9.257zm4.169 1.537h4.61V1.82l-4.61 8.973zm5.547-3.092v8.974l4.61-8.974h-4.61z"}));case"gridicons-phone":return React.createElement("g",null,React.createElement("path",{d:"M16 2H8c-1.104 0-2 .896-2 2v16c0 1.104.896 2 2 2h8c1.104 0 2-.896 2-2V4c0-1.104-.896-2-2-2zm-3 19h-2v-1h2v1zm3-2H8V5h8v14z"}));case"gridicons-pages":return React.createElement("g",null,React.createElement("path",{d:"M16 8H8V6h8v2zm0 2H8v2h8v-2zm4-6v12l-6 6H6c-1.105 0-2-.895-2-2V4c0-1.105.895-2 2-2h12c1.105 0 2 .895 2 2zm-2 10V4H6v16h6v-4c0-1.105.895-2 2-2h4z"}));case"gridicons-posts":return React.createElement("g",null,React.createElement("path",{d:"M16 19H3v-2h13v2zm5-10H3v2h18V9zM3 5v2h11V5H3zm14 0v2h4V5h-4zm-6 8v2h10v-2H11zm-8 0v2h5v-2H3z"}));case"gridicons-search":return React.createElement("g",null,React.createElement("path",{d:"M21 19l-5.154-5.154C16.574 12.742 17 11.42 17 10c0-3.866-3.134-7-7-7s-7 3.134-7 7 3.134 7 7 7c1.42 0 2.742-.426 3.846-1.154L19 21l2-2zM5 10c0-2.757 2.243-5 5-5s5 2.243 5 5-2.243 5-5 5-5-2.243-5-5z"}));case"gridicons-star-outline":return React.createElement("g",null,React.createElement("path",{d:"M12 6.308l1.176 3.167.347.936.997.042 3.374.14-2.647 2.09-.784.62.27.963.91 3.25-2.813-1.872-.83-.553-.83.552-2.814 1.87.91-3.248.27-.962-.783-.62-2.648-2.092 3.374-.14.996-.04.347-.936L12 6.308M12 2L9.418 8.953 2 9.257l5.822 4.602L5.82 21 12 16.89 18.18 21l-2.002-7.14L22 9.256l-7.418-.305L12 2z"}));case"gridicons-star":return React.createElement("g",null,React.createElement("path",{d:"M12 2l2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304"}));case"gridicons-tag":return React.createElement("g",null,React.createElement("path",{d:"M20 2.007h-7.087c-.53 0-1.04.21-1.414.586L2.592 11.5c-.78.78-.78 2.046 0 2.827l7.086 7.086c.78.78 2.046.78 2.827 0l8.906-8.906c.376-.374.587-.883.587-1.413V4.007c0-1.105-.895-2-2-2zM17.007 9c-1.105 0-2-.895-2-2s.895-2 2-2 2 .895 2 2-.895 2-2 2z"}));case"gridicons-video":return React.createElement("g",null,React.createElement("path",{d:"M20 4v2h-2V4H6v2H4V4c-1.105 0-2 .895-2 2v12c0 1.105.895 2 2 2v-2h2v2h12v-2h2v2c1.105 0 2-.895 2-2V6c0-1.105-.895-2-2-2zM6 16H4v-3h2v3zm0-5H4V8h2v3zm4 4V9l4.5 3-4.5 3zm10 1h-2v-3h2v3zm0-5h-2V8h2v3z"}));case"gridicons-lock":return React.createElement(React.Fragment,null,React.createElement("g",{id:"lock"},React.createElement("path",{d:"M18,8h-1V7c0-2.757-2.243-5-5-5S7,4.243,7,7v1H6c-1.105,0-2,0.895-2,2v10c0,1.105,0.895,2,2,2h12c1.105,0,2-0.895,2-2V10 C20,8.895,19.105,8,18,8z M9,7c0-1.654,1.346-3,3-3s3,1.346,3,3v1H9V7z M13,15.723V18h-2v-2.277c-0.595-0.346-1-0.984-1-1.723 c0-1.105,0.895-2,2-2s2,0.895,2,2C14,14.738,13.595,15.376,13,15.723z"})),React.createElement("g",{id:"Layer_1"}));case"gridicons-external":return React.createElement("g",null,React.createElement("path",{d:"M19 13v6c0 1.105-.895 2-2 2H5c-1.105 0-2-.895-2-2V7c0-1.105.895-2 2-2h6v2H5v12h12v-6h2zM13 3v2h4.586l-7.793 7.793 1.414 1.414L19 6.414V11h2V3h-8z"}))}}render(){const{size:e=24,className:t=""}=this.props,a=this.props.height||e,n=this.props.width||e,r=this.props.style||{height:a,width:n},s="gridicons-"+this.props.icon,i=(0,c.A)("gridicon",s,t,{"needs-offset":this.needsOffset(s,e)}),l=this.getSVGDescription(s);return React.createElement("svg",{className:i,focusable:this.props.focusable,height:a,onClick:this.props.onClick,style:r,viewBox:"0 0 24 24",width:n,xmlns:"http://www.w3.org/2000/svg","aria-hidden":this.props["aria-hidden"]},l?React.createElement("desc",null,l):null,this.renderIcon(s))}}const i=s},597:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6427),c=a(3022),r=a(1609),s=a.n(r),i=a(1112),l=a(1883);a(4803);const o=e=>({"top-end":"top left",top:"top center","top-start":"top right","bottom-end":"bottom left",bottom:"bottom center","bottom-start":"bottom right"}[e]),u=({className:e="",iconClassName:t="",placement:a="bottom-end",animate:u=!0,iconCode:m="info-outline",iconSize:d=18,offset:p=10,title:h,children:g,popoverAnchorStyle:v="icon",forceShow:f=!1,wide:w=!1,inline:E=!0,shift:k=!1})=>{const[y,A]=(0,r.useState)(!1),b=(0,r.useCallback)((()=>A(!1)),[A]),j=(0,r.useCallback)((e=>{e.preventDefault(),A(!y)}),[y,A]),R={position:o(a),placement:a,animate:u,noArrow:!1,resize:!1,flip:!1,offset:p,focusOnMount:"container",onClose:b,className:"icon-tooltip-container",inline:E,shift:k},C="wrapper"===v,_=(0,c.A)("icon-tooltip-wrapper",e),x={left:C?0:-(62-d/2)+"px"},N=C&&f;return s().createElement("div",{className:_,"data-testid":"icon-tooltip_wrapper"},!C&&s().createElement(i.A,{variant:"link",onMouseDown:j},s().createElement(l.A,{className:t,icon:m,size:d})),s().createElement("div",{className:(0,c.A)("icon-tooltip-helper",{"is-wide":w}),style:x},(N||y)&&s().createElement(n.Popover,R,s().createElement("div",null,h&&s().createElement("div",{className:"icon-tooltip-title"},h),s().createElement("div",{className:"icon-tooltip-content"},g)))))}},8478:(e,t,a)=>{"use strict";a.d(t,{Gg:()=>o,KH:()=>d,Nr:()=>u,Wy:()=>h,sT:()=>m});var n=a(6072),c=a.n(n),r=a(6427),s=a(3022),i=(a(4705),a(2300));const l=({className:e,size:t=24,viewBox:a="0 0 24 24",opacity:n=1,color:l="#2C3338",children:o})=>{const u={className:(0,s.A)(i.A.iconWrapper,e),width:t,height:t,viewBox:a,opacity:n,fill:void 0};return l&&(u.fill=l),React.createElement(r.SVG,c()({},u,{fillRule:"evenodd",clipRule:"evenodd",xmlns:"http://www.w3.org/2000/svg"}),React.createElement(r.G,{opacity:n},o))},o=({size:e,className:t=i.A["star-icon"],color:a})=>React.createElement(l,{className:t,size:e,color:a},React.createElement(r.Path,{d:"M12 2l2.582 6.953L22 9.257l-5.822 4.602L18.18 21 12 16.89 5.82 21l2.002-7.14L2 9.256l7.418-.304"})),u=({size:e,className:t=i.A["checkmark-icon"],color:a})=>React.createElement(l,{className:t,size:e,color:a},React.createElement(r.Path,{d:"M11 17.768l-4.884-4.884 1.768-1.768L11 14.232l8.658-8.658C17.823 3.39 15.075 2 12 2 6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10c0-1.528-.353-2.97-.966-4.266L11 17.768z"})),m=({size:e,className:t=i.A.jetpack,color:a})=>React.createElement(l,{className:t,size:e,color:a,viewBox:"0 0 32 32"},React.createElement(r.Path,{className:"jetpack-logo__icon-circle",d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z"}),React.createElement(r.Polygon,{fill:"#fff",points:"15,19 7,19 15,3"}),React.createElement(r.Polygon,{fill:"#fff",points:"17,29 17,13 25,13"})),d=({size:e=24,color:t="#069e08"})=>React.createElement(l,{color:t,size:e,viewBox:"0 0 32 32"},React.createElement(r.Path,{className:"spark-first",d:"M9.33301 5.33325L10.4644 8.20188L13.333 9.33325L10.4644 10.4646L9.33301 13.3333L8.20164 10.4646L5.33301 9.33325L8.20164 8.20188L9.33301 5.33325Z"}),React.createElement(r.Path,{className:"spark-second",d:"M21.3333 5.33333L22.8418 9.15817L26.6667 10.6667L22.8418 12.1752L21.3333 16L19.8248 12.1752L16 10.6667L19.8248 9.15817L21.3333 5.33333Z"}),React.createElement(r.Path,{className:"spark-third",d:"M14.6667 13.3333L16.5523 18.1144L21.3333 20L16.5523 21.8856L14.6667 26.6667L12.781 21.8856L8 20L12.781 18.1144L14.6667 13.3333Z"})),p={...{"anti-spam":({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M13.2,4.7l4.7,12.8c0.4,1.1,1,1.5,2.1,1.6c0.1,0,0.1,0,0.1,0l0.1,0.1l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1 s0,0.1-0.1,0.1c-0.1,0-0.1,0.1-0.1,0.1s-0.1,0-0.2,0h-5.1c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1 c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1l0.1-0.1c0,0,0.1,0,0.2,0c0.5,0,1.1-0.2,1.1-0.8c0-0.3-0.1-0.5-0.2-0.8l-1.1-3.1 c-0.1-0.2-0.1-0.2-0.2-0.2h-4.3c-0.7,0-1.5,0-1.9,0.9l-1.1,2.4C7.1,17.6,7,17.8,7,18.1c0,0.8,1,0.9,1.6,0.9c0.1,0,0.1,0,0.2,0 L8.8,19l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1s-0.1,0.1-0.1,0.1l-0.1,0.1c-0.1,0-0.1,0-0.2,0H4.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1L4,19c0,0,0.1,0,0.1,0C5.2,19,5.5,18.5,6,17.5 l5.4-12.4c0.2-0.5,0.8-1,1.3-1C13,4.2,13.1,4.4,13.2,4.7z M9.1,13.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0.1,0.1,0.1,0.1h4.4 c0.3,0,0.4-0.1,0.4-0.3c0-0.1,0-0.2-0.1-0.3l-1.2-3.5c-0.3-0.8-0.8-1.9-0.8-2.7c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.1,0.1 c-0.1,0.6-0.4,1.2-0.7,1.7L9.1,13.1z"}),React.createElement(r.Path,{d:"M13.2,4.7l4.7,12.8c0.4,1.1,1,1.5,2.1,1.6c0.1,0,0.1,0,0.1,0l0.1,0.1l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1 s0,0.1-0.1,0.1c-0.1,0-0.1,0.1-0.1,0.1s-0.1,0-0.2,0h-5.1c-0.1,0-0.1,0-0.2,0c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1 c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1l0.1-0.1c0,0,0.1,0,0.2,0c0.5,0,1.1-0.2,1.1-0.8c0-0.3-0.1-0.5-0.2-0.8l-1.1-3.1 c-0.1-0.2-0.1-0.2-0.2-0.2h-4.3c-0.7,0-1.5,0-1.9,0.9l-1.1,2.4C7.1,17.6,7,17.8,7,18.1c0,0.8,1,0.9,1.6,0.9c0.1,0,0.1,0,0.2,0 L8.8,19l0.1,0.1c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.1s-0.1,0.1-0.1,0.1l-0.1,0.1c-0.1,0-0.1,0-0.2,0H4.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.1-0.1-0.1-0.1l-0.1-0.1c0-0.1,0-0.1,0-0.1c0-0.1,0-0.1,0-0.2s0-0.1,0.1-0.1L4,19c0,0,0.1,0,0.1,0C5.2,19,5.5,18.5,6,17.5 l5.4-12.4c0.2-0.5,0.8-1,1.3-1C13,4.2,13.1,4.4,13.2,4.7z M9.1,13.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1,0.1,0.1,0.1,0.1h4.4 c0.3,0,0.4-0.1,0.4-0.3c0-0.1,0-0.2-0.1-0.3l-1.2-3.5c-0.3-0.8-0.8-1.9-0.8-2.7c0-0.1,0-0.1-0.1-0.1c0,0-0.1,0-0.1,0.1 c-0.1,0.6-0.4,1.2-0.7,1.7L9.1,13.1z"}),React.createElement(r.Path,{d:"M21.6,12.5c0,0.6-0.3,1-0.9,1c-0.6,0-0.8-0.3-0.8-0.8c0-0.6,0.4-1,0.9-1C21.3,11.7,21.6,12.1,21.6,12.5z"}),React.createElement(r.Path,{d:"M4.1,12.5c0,0.6-0.3,1-0.9,1s-0.8-0.3-0.8-0.8c0-0.6,0.4-1,0.9-1S4.1,12.1,4.1,12.5z"})),backup:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M2.1,5.8c0-0.1,0-0.1,0-0.2c0-0.2,0.1-0.5,0.1-0.7c0.1-0.4,0.4-0.6,0.7-0.8l8.3-2.9c0.1-0.1,0.3-0.1,0.4-0.1l0.5,0.1 l8.3,2.9c0.3,0.2,0.5,0.4,0.7,0.7c0.2,0.2,0.2,0.4,0.2,0.7c0,0.1,0,0.1,0,0.2v0.1c-0.1,0.5-0.2,0.9-0.3,1.4 c-0.2,0.4-0.3,1.2-0.7,2.2c-0.3,1-0.7,2.1-1.1,3.1c-0.5,1-1,2.1-1.6,3.3s-1.4,2.3-2.2,3.5c-0.9,1.1-1.8,2.2-2.8,3.1 c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4c-1.2-1.1-2.4-2.4-3.5-4c-1-1.6-1.9-3-2.5-4.3c-0.6-1.3-1.1-2.7-1.6-4 C2.8,8.7,2.5,7.6,2.3,7C2.3,6.5,2.1,6.1,2.1,5.8z M2.9,5.9c0,0.2,0.1,0.4,0.1,0.8C3.1,7,3.2,7.5,3.5,8.2C3.7,9,3.9,9.7,4.2,10.6 c0.3,0.7,0.7,1.7,1.1,2.7c0.4,1,1,2,1.5,2.9c0.5,1,1.2,1.9,1.9,2.9c0.8,1,1.6,1.9,2.4,2.6c0.2,0.2,0.4,0.2,0.5,0.2 c0.2,0,0.4-0.1,0.5-0.2c1.2-1,2.2-2.3,3.2-3.8c1-1.5,1.8-2.8,2.3-4c0.6-1.3,1.1-2.5,1.5-3.9c0.4-1.3,0.7-2.2,0.9-2.8 c0.1-0.5,0.2-1,0.3-1.3c0-0.1,0-0.1,0-0.1c0-0.2,0-0.3-0.1-0.4C20.3,5.2,20.2,5.1,20,5L12,2.1c0,0-0.1,0-0.2,0s-0.1,0-0.1,0h-0.2 l-8,2.8C3.2,5,3.1,5.2,3,5.3C2.9,5.5,2.9,5.6,2.9,5.8C2.9,5.8,2.9,5.8,2.9,5.9z M5.9,6.7h3l2.8,7l2.8-7h3c-0.1,0.1-0.2,0.5-0.3,0.8 C17,7.8,17,8.2,16.8,8.4c-0.1,0.3-0.2,0.5-0.4,0.8c0,0.1-0.1,0.1-0.1,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.1,0 c-0.1,0-0.2,0.1-0.2,0.2c0,0-0.1,0.1-0.1,0.1s-0.1,0.1-0.1,0.1c0,0,0,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.1l-0.4,1.1 c-1.3,3.3-2.1,5.2-2.3,5.8h-2.2l-1-2.4c-0.1-0.3-0.3-0.8-0.5-1.3c-0.1-0.3-0.3-0.8-0.5-1.3L8,10.8c-0.1-0.1-0.1-0.2-0.1-0.4 C7.8,10.2,7.7,10,7.7,9.8C7.6,9.7,7.5,9.5,7.4,9.4C7.3,9.3,7.3,9.3,7.3,9.3c-0.1,0-0.2,0-0.2,0s-0.1,0-0.1,0 C6.6,8.5,6.3,7.6,5.9,6.7z"})),boost:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.19505 16.2545C4.47368 16.561 4.94802 16.5836 5.25451 16.3049L10.2595 11.7549L14.2842 15.2765L19 10.5607V13.75H20.5V9.5V8.75239V8.7476V8H19.7529H19.7471H19H14.75V9.5H17.9393L14.2158 13.2235L10.2405 9.74507L4.2455 15.195C3.93901 15.4737 3.91642 15.948 4.19505 16.2545Z"})),crm:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M15.5 9.5a1 1 0 1 0 0-2 1 1 0 0 0 0 2Zm0 1.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5Zm-2.25 6v-2a2.75 2.75 0 0 0-2.75-2.75h-4A2.75 2.75 0 0 0 3.75 15v2h1.5v-2c0-.69.56-1.25 1.25-1.25h4c.69 0 1.25.56 1.25 1.25v2h1.5Zm7-2v2h-1.5v-2c0-.69-.56-1.25-1.25-1.25H15v-1.5h2.5A2.75 2.75 0 0 1 20.25 15ZM9.5 8.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Zm1.5 0a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z"})),extras:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M18.5 5.5V8H20V5.5h2.5V4H20V1.5h-1.5V4H16v1.5h2.5ZM12 4H6a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-6h-1.5v6a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h6V4Z"})),protect:({opacity:e=1,size:t,className:a,color:n})=>React.createElement(l,{className:a,size:t,opacity:e,color:n},React.createElement(r.Path,{d:"M12 3.17627L18.75 6.24445V10.8183C18.75 14.7173 16.2458 18.4089 12.7147 19.5735C12.2507 19.7265 11.7493 19.7265 11.2853 19.5735C7.75416 18.4089 5.25 14.7173 5.25 10.8183V6.24445L12 3.17627ZM6.75 7.21032V10.8183C6.75 14.1312 8.89514 17.2057 11.7551 18.149C11.914 18.2014 12.086 18.2014 12.2449 18.149C15.1049 17.2057 17.25 14.1312 17.25 10.8183V7.21032L12 4.82396L6.75 7.21032Z"}),React.createElement(r.Path,{d:"M15.5291 10.0315L11.1818 14.358L8.47095 11.66L9.52907 10.5968L11.1818 12.2417L14.4709 8.96826L15.5291 10.0315Z"})),scan:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"m12 3.176 6.75 3.068v4.574c0 3.9-2.504 7.59-6.035 8.755a2.283 2.283 0 0 1-1.43 0c-3.53-1.164-6.035-4.856-6.035-8.755V6.244L12 3.176ZM6.75 7.21v3.608c0 3.313 2.145 6.388 5.005 7.33.159.053.331.053.49 0 2.86-.942 5.005-4.017 5.005-7.33V7.21L12 4.824 6.75 7.21Z"})),search:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M17.5 11.5a4 4 0 1 1-8 0 4 4 0 0 1 8 0Zm1.5 0a5.5 5.5 0 0 1-9.142 4.121l-3.364 2.943-.988-1.128 3.373-2.952A5.5 5.5 0 1 1 19 11.5Z"})),social:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{d:"M15.5 3.97809V18.0219L7.5 15.5977V20H6V15.1431L3.27498 14.3173C2.22086 13.9979 1.5 13.0262 1.5 11.9248V10.0752C1.5 8.97375 2.22087 8.00207 3.27498 7.68264L15.5 3.97809ZM14 16L7.5 14.0303L7.5 7.96969L14 5.99999V16ZM6 8.42423L6 13.5757L3.70999 12.8818C3.28835 12.754 3 12.3654 3 11.9248V10.0752C3 9.63462 3.28835 9.24595 3.70999 9.11818L6 8.42423ZM17.5 11.75H21.5V10.25H17.5V11.75ZM21.5 16L17.5 15V13.5L21.5 14.5V16ZM17.5 8.5L21.5 7.5V6L17.5 7V8.5Z"})),star:o,videopress:({opacity:e=1,size:t,color:a})=>React.createElement(l,{size:t,opacity:e,color:a},React.createElement(r.Path,{fillRule:"evenodd",clipRule:"evenodd",d:"M4.3,6.2c0.8,0,1.6,0.6,1.8,1.4l2.3,7.9c0,0,0,0,0,0l2.7-9.3h1.5h4.2c2.9,0,4.9,1.9,4.9,4.7c0,2.9-2,4.7-5,4.7 h-2h-2.5l-0.5,1.5c-0.4,1.4-1.7,2.3-3.2,2.3c-1.4,0-2.7-0.9-3.2-2.3L2.5,8.7C2.1,7.4,3,6.2,4.3,6.2z M13,12.8h2.9c1.3,0,2-0.7,2-1.9 c0-1.2-0.8-1.8-2-1.8h-1.7L13,12.8z"})),jetpack:m,share:({size:e=16,className:t,color:a})=>React.createElement(l,{className:t,size:e,color:a,viewBox:"0 0 16 16"},React.createElement(r.Path,{fill:"#161722",fillRule:"evenodd",d:"M8.3 4.66C3.85 5.308.727 9.75.034 13.69l-.02.117c-.137.842.809 1.232 1.446.68 2.013-1.745 3.648-2.475 5.318-2.719a10.482 10.482 0 011.524-.103v2.792c0 .694.82 1.041 1.3.55l6.176-6.307a.79.79 0 00.012-1.088L9.614 1.004C9.14.496 8.301.84 8.301 1.542v3.117zm1.525-1.175v1.85a.773.773 0 01-.654.77l-.655.096c-2.133.311-3.987 1.732-5.295 3.672-.472.7-.854 1.44-1.143 2.18a12.32 12.32 0 011.675-.972c1.58-.75 3.048-.972 4.548-.972h.762a.77.77 0 01.762.779v1.69l4.347-4.44-4.347-4.653z",clipRule:"evenodd"})),ai:d}};function h(e){return p[e]?p[e]:null}},8250:(e,t,a)=>{"use strict";a.d(t,{A:()=>k});var n=a(6072),c=a.n(n),r=a(7143),s=a(7723),i=a(1113),l=a(3512),o=a(3022),u=a(1609),m=a.n(u),d=a(3924),p=a(4293),h=a(1069),g=a(8907),v=(a(4206),a(7142)),f=a(442);const __=s.__,_x=s._x,w=()=>m().createElement(v.A,{logoColor:"#000",showText:!1,height:16,"aria-hidden":"true"}),E=()=>m().createElement(m().Fragment,null,m().createElement(i.A,{icon:l.A,size:16}),m().createElement("span",{className:"jp-dashboard-footer__accessible-external-link"},/* translators: accessibility text */
+__("(opens in a new tab)","jetpack-my-jetpack"))),k=({moduleName:e=__("Jetpack","jetpack-my-jetpack"),className:t,moduleNameHref:a="https://jetpack.com",menu:n,onAboutClick:s,onPrivacyClick:i,onTermsClick:l,...u})=>{const[v]=(0,f.A)("sm","<="),[k]=(0,f.A)("md","<="),[y]=(0,f.A)("lg",">"),{isActive:A,connectedPlugins:b}=(0,r.useSelect)((e=>{const t=e(p.a);return{connectedPlugins:t?.getConnectedPlugins(),...t.getConnectionStatus()}}),[p.a]),j=(0,h.A)(),R=j&&A&&b?.some((({slug:e})=>"jetpack"===e));let C=[{label:_x("About","Link to learn more about Jetpack.","jetpack-my-jetpack"),title:__("About Jetpack","jetpack-my-jetpack"),href:R?new URL("admin.php?page=jetpack_about",j).href:(0,d.A)("jetpack-about"),target:R?"_self":"_blank",onClick:s},{label:_x("Privacy","Shorthand for Privacy Policy.","jetpack-my-jetpack"),title:__("Automattic's Privacy Policy","jetpack-my-jetpack"),href:R?new URL("admin.php?page=jetpack#/privacy",j).href:(0,d.A)("a8c-privacy"),target:R?"_self":"_blank",onClick:i},{label:_x("Terms","Shorthand for Terms of Service.","jetpack-my-jetpack"),title:__("WordPress.com Terms of Service","jetpack-my-jetpack"),href:(0,d.A)("wpcom-tos"),target:"_blank",onClick:l}];n&&(C=[...C,...n]);const _=m().createElement(m().Fragment,null,m().createElement(w,null),e);return m().createElement("footer",c()({className:(0,o.A)("jp-dashboard-footer",{"is-sm":v,"is-md":k,"is-lg":y},t),"aria-label":__("Jetpack","jetpack-my-jetpack")},u),m().createElement("ul",null,m().createElement("li",{className:"jp-dashboard-footer__jp-item"},a?m().createElement("a",{href:a},_):_),C.map((e=>{const t="button"===e.role,a=!t&&"_blank"===e.target;return m().createElement("li",{key:e.label},m().createElement("a",{href:e.href,title:e.title,target:e.target,onClick:e.onClick,onKeyDown:e.onKeyDown,className:(0,o.A)("jp-dashboard-footer__menu-item",{"is-external":a}),role:e.role,rel:a?"noopener noreferrer":void 0,tabIndex:t?0:void 0},e.label,a&&m().createElement(E,null)))})),m().createElement("li",{className:"jp-dashboard-footer__a8c-item"},m().createElement("a",{href:R?new URL("admin.php?page=jetpack_about",j).href:(0,d.A)("a8c-about"),"aria-label":__("An Automattic Airline","jetpack-my-jetpack")},m().createElement(g.A,{"aria-hidden":"true"})))))}},7142:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(6072),c=a.n(n),r=a(7723),s=a(3022),i=a(1609),l=a.n(i);const __=r.__,o=({logoColor:e="#069e08",showText:t=!0,className:a,height:n=32,...r})=>{const i=t?"0 0 118 32":"0 0 32 32";return l().createElement("svg",c()({xmlns:"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:i,className:(0,s.A)("jetpack-logo",a),"aria-labelledby":"jetpack-logo-title",height:n},r,{role:"img"}),l().createElement("title",{id:"jetpack-logo-title"},__("Jetpack Logo","jetpack-my-jetpack")),l().createElement("path",{fill:e,d:"M16,0C7.2,0,0,7.2,0,16s7.2,16,16,16s16-7.2,16-16S24.8,0,16,0z M15,19H7l8-16V19z M17,29V13h8L17,29z"}),t&&l().createElement(l().Fragment,null,l().createElement("path",{d:"M41.3,26.6c-0.5-0.7-0.9-1.4-1.3-2.1c2.3-1.4,3-2.5,3-4.6V8h-3V6h6v13.4C46,22.8,45,24.8,41.3,26.6z"}),l().createElement("path",{d:"M65,18.4c0,1.1,0.8,1.3,1.4,1.3c0.5,0,2-0.2,2.6-0.4v2.1c-0.9,0.3-2.5,0.5-3.7,0.5c-1.5,0-3.2-0.5-3.2-3.1V12H60v-2h2.1V7.1 H65V10h4v2h-4V18.4z"}),l().createElement("path",{d:"M71,10h3v1.3c1.1-0.8,1.9-1.3,3.3-1.3c2.5,0,4.5,1.8,4.5,5.6s-2.2,6.3-5.8,6.3c-0.9,0-1.3-0.1-2-0.3V28h-3V10z M76.5,12.3 c-0.8,0-1.6,0.4-2.5,1.2v5.9c0.6,0.1,0.9,0.2,1.8,0.2c2,0,3.2-1.3,3.2-3.9C79,13.4,78.1,12.3,76.5,12.3z"}),l().createElement("path",{d:"M93,22h-3v-1.5c-0.9,0.7-1.9,1.5-3.5,1.5c-1.5,0-3.1-1.1-3.1-3.2c0-2.9,2.5-3.4,4.2-3.7l2.4-0.3v-0.3c0-1.5-0.5-2.3-2-2.3 c-0.7,0-2.3,0.5-3.7,1.1L84,11c1.2-0.4,3-1,4.4-1c2.7,0,4.6,1.4,4.6,4.7L93,22z M90,16.4l-2.2,0.4c-0.7,0.1-1.4,0.5-1.4,1.6 c0,0.9,0.5,1.4,1.3,1.4s1.5-0.5,2.3-1V16.4z"}),l().createElement("path",{d:"M104.5,21.3c-1.1,0.4-2.2,0.6-3.5,0.6c-4.2,0-5.9-2.4-5.9-5.9c0-3.7,2.3-6,6.1-6c1.4,0,2.3,0.2,3.2,0.5V13 c-0.8-0.3-2-0.6-3.2-0.6c-1.7,0-3.2,0.9-3.2,3.6c0,2.9,1.5,3.8,3.3,3.8c0.9,0,1.9-0.2,3.2-0.7V21.3z"}),l().createElement("path",{d:"M110,15.2c0.2-0.3,0.2-0.8,3.8-5.2h3.7l-4.6,5.7l5,6.3h-3.7l-4.2-5.8V22h-3V6h3V15.2z"}),l().createElement("path",{d:"M58.5,21.3c-1.5,0.5-2.7,0.6-4.2,0.6c-3.6,0-5.8-1.8-5.8-6c0-3.1,1.9-5.9,5.5-5.9s4.9,2.5,4.9,4.9c0,0.8,0,1.5-0.1,2h-7.3 c0.1,2.5,1.5,2.8,3.6,2.8c1.1,0,2.2-0.3,3.4-0.7C58.5,19,58.5,21.3,58.5,21.3z M56,15c0-1.4-0.5-2.9-2-2.9c-1.4,0-2.3,1.3-2.4,2.9 C51.6,15,56,15,56,15z"})))}},8509:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(3022),c=a(1609),r=a(7371);const s=Number(r.A.smCols),i=Number(r.A.mdCols),l=Number(r.A.lgCols),o=e=>{const{children:t,tagName:a="div",className:o}=e,u=Math.min(s,"number"==typeof e.sm?e.sm:s),m=Math.min(s,"object"==typeof e.sm?e.sm.start:0),d=Math.min(s,"object"==typeof e.sm?e.sm.end:0),p=Math.min(i,"number"==typeof e.md?e.md:i),h=Math.min(i,"object"==typeof e.md?e.md.start:0),g=Math.min(i,"object"==typeof e.md?e.md.end:0),v=Math.min(l,"number"==typeof e.lg?e.lg:l),f=Math.min(l,"object"==typeof e.lg?e.lg.start:0),w=Math.min(l,"object"==typeof e.lg?e.lg.end:0),E=(0,n.A)(o,{[r.A[`col-sm-${u}`]]:!(m&&d),[r.A[`col-sm-${m}-start`]]:m>0,[r.A[`col-sm-${d}-end`]]:d>0,[r.A[`col-md-${p}`]]:!(h&&g),[r.A[`col-md-${h}-start`]]:h>0,[r.A[`col-md-${g}-end`]]:g>0,[r.A[`col-lg-${v}`]]:!(f&&w),[r.A[`col-lg-${f}-start`]]:f>0,[r.A[`col-lg-${w}-end`]]:w>0});return(0,c.createElement)(a,{className:E},t)}},5918:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(3022),c=a(1609),r=a(2420);const s=({children:e,fluid:t=!1,tagName:a="div",className:s,horizontalGap:i=1,horizontalSpacing:l=1})=>{const o=(0,c.useMemo)((()=>{const e=`calc( var(--horizontal-spacing) * ${l} )`;return{paddingTop:e,paddingBottom:e,rowGap:`calc( var(--horizontal-spacing) * ${i} )`}}),[i,l]),u=(0,n.A)(s,r.A.container,{[r.A.fluid]:t});return(0,c.createElement)(a,{className:u,style:o},e)}},442:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(9491),c=a(8403);const r=["sm","md","lg"],s=(e,t)=>{const a=Array.isArray(e)?e:[e],s=Array.isArray(t)?t:[t],[i,l,o]=r,u={sm:(0,n.useMediaQuery)(c.A[i]),md:(0,n.useMediaQuery)(c.A[l]),lg:(0,n.useMediaQuery)(c.A[o])};return a.map(((e,t)=>{const a=s[t];return a?((e,t,a)=>{const n=r.indexOf(e),c=n+1,s=t.includes("=");let i=[];return t.startsWith("<")&&(i=r.slice(0,s?c:n)),t.startsWith(">")&&(i=r.slice(s?n:c)),i?.length?i.some((e=>a[e])):a[e]})(e,a,u):u[e]}))}},7656:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(311),c=a(9783),r=a(3883),s=a(1113),i=a(991),l=a(3022),o=a(1609),u=a.n(o),m=a(7410);const d=e=>{switch(e){case"error":case"warning":default:return n.A;case"info":return c.A;case"success":return r.A}},p=({level:e="info",title:t,children:a,actions:n,hideCloseButton:c=!1,onClose:r})=>{const o=(0,l.A)(m.A.container,m.A[`is-${e}`]);return u().createElement("div",{className:o},u().createElement("div",{className:m.A["icon-wrapper"]},u().createElement(s.A,{icon:d(e),className:m.A.icon})),u().createElement("div",{className:m.A["main-content"]},t&&u().createElement("div",{className:m.A.title},t),a,n&&n.length>0&&u().createElement("div",{className:m.A["action-bar"]},n.map(((e,t)=>u().createElement("div",{key:t,className:m.A.action},e))))),!c&&u().createElement("button",{"aria-label":"close",className:m.A["close-button"],onClick:r},u().createElement(s.A,{icon:i.A})))}},7975:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(1437);const c=(e,t={})=>{const a=(0,n.Y)();return new Intl.NumberFormat(a,t).format(e)}},9245:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>A,N0:()=>y,eY:()=>E,i7:()=>k});var n=a(7723),c=a(1113),r=a(3883),s=a(1249),i=a(3022),l=a(1609),o=a.n(l),u=a(597),m=a(442),d=a(5879),p=a(7425),h=a(3142);const __=n.__,g=__("Included","jetpack-my-jetpack"),v=__("Not included","jetpack-my-jetpack"),f=__("Coming soon","jetpack-my-jetpack"),w=(0,l.createContext)(void 0),E=({isIncluded:e=!1,isComingSoon:t=!1,index:a=0,label:d=null,tooltipInfo:E,tooltipTitle:k,tooltipClassName:y=""})=>{const[A]=(0,m.A)("lg"),b=(0,l.useContext)(w)[a],j=t||e,R=b.name,C=b.tooltipInfo,_=b.tooltipTitle,x=E||!A&&C,N=((e,t,a)=>e?{lg:f,
+// translators: Name of the current feature
+default:(0,n.sprintf)(__("%s coming soon","jetpack-my-jetpack"),a)}:{lg:t?g:v,default:t?a:(0,n.sprintf)(/* translators: Name of the current feature */
+__("%s not included","jetpack-my-jetpack"),a)})(t,e,R),z=A?N.lg:N.default;return o().createElement("div",{className:(0,i.A)(h.A.item,h.A.value)},o().createElement(c.A,{className:(0,i.A)(h.A.icon,j?h.A["icon-check"]:h.A["icon-cross"]),size:32,icon:j?r.A:s.A}),o().createElement(p.Ay,{variant:"body-small"},d||z),x&&o().createElement(u.A,{title:k||_,iconClassName:h.A["popover-icon"],className:(0,i.A)(h.A.popover,y),placement:"bottom-end",iconSize:14,offset:4,wide:Boolean(k&&E)},o().createElement(p.Ay,{variant:"body-small",component:"div"},E||C)))},k=({children:e})=>o().createElement("div",{className:h.A.header},e),y=({primary:e=!1,children:t})=>{let a=0;return o().createElement("div",{className:(0,i.A)(h.A.card,{[h.A["is-primary"]]:e})},l.Children.map(t,(e=>{const t=e;return t.type===E?(a++,(0,l.cloneElement)(t,{index:a-1})):t})))},A=({title:e,items:t,children:a,showIntroOfferDisclaimer:n=!1})=>{const[c]=(0,m.A)("lg");return o().createElement(w.Provider,{value:t},o().createElement("div",{className:(0,i.A)(h.A.container,{[h.A["is-viewport-large"]]:c}),style:{"--rows":t.length+1,"--columns":l.Children.toArray(a).length+1}},o().createElement("div",{className:h.A.table},o().createElement(p.Ay,{variant:"headline-small"},e),c&&t.map(((e,a)=>o().createElement("div",{className:(0,i.A)(h.A.item,{[h.A["last-feature"]]:a===t.length-1}),key:a},o().createElement(p.Ay,{variant:"body-small"},o().createElement("strong",null,e.name)),e.tooltipInfo&&o().createElement(u.A,{title:e.tooltipTitle,iconClassName:h.A["popover-icon"],className:h.A.popover,placement:e.tooltipPlacement?e.tooltipPlacement:"bottom-end",iconSize:14,offset:4,wide:Boolean(e.tooltipTitle&&e.tooltipInfo)},o().createElement(p.Ay,{variant:"body-small"},e.tooltipInfo))))),a)),o().createElement("div",{className:h.A["tos-container"]},o().createElement("div",{className:h.A.tos},n&&o().createElement(p.Ay,{variant:"body-small"},__("Reduced pricing is a limited offer for the first year and renews at regular price.","jetpack-my-jetpack")),o().createElement(d.A,{multipleButtons:!0}))))}},489:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7723),c=a(3022),r=a(7425),s=a(2746),i=a(3407);const __=n.__,l=({price:e,offPrice:t,currency:a="",showNotOffPrice:n=!0,hideDiscountLabel:l=!0,promoLabel:o="",legend:u=__("/month, paid yearly","jetpack-my-jetpack"),isNotConvenientPrice:m=!1,hidePriceFraction:d=!1,children:p})=>{if(null==e&&null==t||!a)return null;n=n&&null!=t;const h="number"==typeof e&&"number"==typeof t?Math.floor((e-t)/e*100):0,g=!l&&h&&h>0?h+__("% off","jetpack-my-jetpack"):null;return React.createElement(React.Fragment,null,React.createElement("div",{className:i.A.container},React.createElement("div",{className:(0,c.A)(i.A["price-container"],"product-price_container")},React.createElement(s.g,{value:t??e,currency:a,isOff:!m,hidePriceFraction:d}),n&&React.createElement(s.g,{value:e,currency:a,isOff:!1,hidePriceFraction:d}),g&&React.createElement(r.Ay,{className:(0,c.A)(i.A["promo-label"],"product-price_promo_label")},g))),React.createElement("div",{className:i.A.footer},p||React.createElement(r.Ay,{className:(0,c.A)(i.A.legend,"product-price_legend")},u),o&&React.createElement(r.Ay,{className:(0,c.A)(i.A["promo-label"],"product-price_promo_label")},o)))}},2746:(e,t,a)=>{"use strict";a.d(t,{g:()=>i});var n=a(7397),c=a(3022),r=a(7425),s=a(3407);const i=({value:e,currency:t,isOff:a,hidePriceFraction:i})=>{const l=(0,c.A)(s.A.price,"product-price_price",{[s.A["is-not-off-price"]]:!a}),{symbol:o,integer:u,fraction:m}=(0,n.vA)(e,t),d=!i||!m.endsWith("00");return React.createElement(r.Ay,{className:l,variant:"headline-medium",component:"p"},React.createElement(r.Ay,{className:s.A.symbol,component:"sup",variant:"title-medium"},o),u,d&&React.createElement(r.Ay,{component:"sup",variant:"body-small","data-testid":"PriceFraction"},React.createElement("strong",null,m)))}},6461:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(5739),c=a.n(n),r=a(1609),s=a.n(r);a(8325);const i=({color:e="#FFFFFF",className:t="",size:a=20})=>{const n=t+" jp-components-spinner",c={width:a,height:a,fontSize:a,borderTopColor:e},r={borderTopColor:e,borderRightColor:e};return s().createElement("div",{className:n},s().createElement("div",{className:"jp-components-spinner__outer",style:c},s().createElement("div",{className:"jp-components-spinner__inner",style:r})))};i.propTypes={color:c().string,className:c().string,size:c().number};const l=i},5879:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(6072),c=a.n(n),r=a(6087),s=a(7723),i=a(3022),l=a(3924),o=a(7425);a(9634);const __=s.__,u=({multipleButtonsLabels:e})=>Array.isArray(e)&&e.length>1?(0,r.createInterpolateElement)((0,s.sprintf)(/* translators: %1$s is button label 1 and %2$s is button label 2 */
+__("By clicking %1$s or %2$s, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-my-jetpack"),e[0],e[1]),{strong:React.createElement("strong",null),tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}):(0,r.createInterpolateElement)(__("By clicking the buttons above, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-my-jetpack"),{tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}),m=({agreeButtonLabel:e})=>(0,r.createInterpolateElement)((0,s.sprintf)(/* translators: %s is a button label */
+__("By clicking %s, you agree to our Terms of Service and to sync your site‘s data with us.","jetpack-my-jetpack"),e),{strong:React.createElement("strong",null),tosLink:React.createElement(d,{slug:"wpcom-tos"}),shareDetailsLink:React.createElement(d,{slug:"jetpack-support-what-data-does-jetpack-sync"})}),d=({slug:e,children:t})=>React.createElement("a",{className:"terms-of-service__link",href:(0,l.A)(e),rel:"noopener noreferrer",target:"_blank"},t),p=({className:e,multipleButtons:t,agreeButtonLabel:a,...n})=>React.createElement(o.Ay,c()({className:(0,i.A)(e,"terms-of-service")},n),t?React.createElement(u,{multipleButtonsLabels:t}):React.createElement(m,{agreeButtonLabel:a}))},110:(e,t,a)=>{"use strict";a.d(t,{Q:()=>n,Z:()=>c});const n={"headline-medium":"h1","headline-small":"h2","headline-small-regular":"h2","title-medium":"h3","title-medium-semi-bold":"h3","title-small":"h4",body:"p","body-small":"p","body-extra-small":"p","body-extra-small-bold":"p",label:"p"},c=["mt","mr","mb","ml","mx","my","m","pt","pr","pb","pl","px","py","p"]},7425:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>m,H3:()=>d,hE:()=>p});var n=a(6072),c=a.n(n),r=a(3022),s=a(1609),i=a.n(s),l=a(110),o=a(4495);const u=(0,s.forwardRef)((({variant:e="body",children:t,component:a,className:n,...u},m)=>{const d=a||l.Q[e]||"span",p=(0,s.useMemo)((()=>l.Z.reduce(((e,t)=>(void 0!==u[t]&&(e+=o.A[`${t}-${u[t]}`]+" ",delete u[t]),e)),"")),[u]);return u.ref=m,i().createElement(d,c()({className:(0,r.A)(o.A.reset,o.A[e],n,p)},u),t)}));u.displayName="Text";const m=u,d=({children:e,weight:t="bold",...a})=>{const n="headline-small"+("bold"===t?"":`-${t}`);return i().createElement(u,c()({variant:n,mb:3},a),e)},p=({children:e,size:t="medium",...a})=>i().createElement(u,c()({variant:`title-${t}`,mb:1},a),e)},723:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>d});var n=a(1609),c=a.n(n),r=a(9422);const s={"--font-headline-medium":"48px","--font-headline-small":"36px","--font-title-medium":"24px","--font-title-small":"20px","--font-body":"16px","--font-body-small":"14px","--font-body-extra-small":"12px","--font-title-large":"var(--font-headline-small)","--font-label":"var(--font-body-extra-small)"},i={"--jp-black":"#000000","--jp-black-80":"#2c3338","--jp-white":"#ffffff","--jp-white-off":"#f9f9f6","--jp-gray":"#dcdcde","--jp-gray-0":"#F6F7F7","--jp-gray-5":"var(--jp-gray)","--jp-gray-10":"#C3C4C7","--jp-gray-20":"#A7AAAD","--jp-gray-40":"#787C82","--jp-gray-50":"#646970","--jp-gray-60":"#50575E","--jp-gray-70":"#3C434A","--jp-gray-80":"#2C3338","--jp-gray-90":"#1d2327","--jp-gray-off":"#e2e2df","--jp-red-0":"#F7EBEC","--jp-red-5":"#FACFD2","--jp-red-40":"#E65054","--jp-red-50":"#D63638","--jp-red-60":"#B32D2E","--jp-red-70":"#8A2424","--jp-red-80":"#691C1C","--jp-red":"#d63639","--jp-yellow-5":"#F5E6B3","--jp-yellow-10":"#F2CF75","--jp-yellow-20":"#F0C930","--jp-yellow-30":"#DEB100","--jp-yellow-40":"#C08C00","--jp-yellow-50":"#9D6E00","--jp-yellow-60":"#7D5600","--jp-blue-20":"#68B3E8","--jp-blue-40":"#1689DB","--jp-pink":"#C9356E","--jp-green-0":"#f0f2eb","--jp-green-5":"#d0e6b8","--jp-green-10":"#9dd977","--jp-green-20":"#64ca43","--jp-green-30":"#2fb41f","--jp-green-40":"#069e08","--jp-green-50":"#008710","--jp-green-60":"#007117","--jp-green-70":"#005b18","--jp-green-80":"#004515","--jp-green-90":"#003010","--jp-green-100":"#001c09","--jp-green":"#069e08","--jp-green-primary":"var( --jp-green-40 )","--jp-green-secondary":"var( --jp-green-30 )"},l={"--jp-border-radius":"4px","--jp-menu-border-height":"1px","--jp-underline-thickness":"2px"},o={"--spacing-base":"8px"},u={},m=(e,t,a)=>{const n={...s,...i,...l,...o};for(const t in n)e.style.setProperty(t,n[t]);a&&e.classList.add(r.A.global),t&&(u[t]={provided:!0,root:e})},d=({children:e=null,targetDom:t,id:a,withGlobalStyles:r=!0})=>{const s=(0,n.useRef)(),i=u?.[a]?.provided;return(0,n.useLayoutEffect)((()=>{if(!i)return t?m(t,a,r):void(s?.current&&m(s.current,a,r))}),[t,s,i,a,r]),t?c().createElement(c().Fragment,null,e):c().createElement("div",{ref:s},e)}},7506:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(1112),c=a(6427),r=a(6087),s=a(1609),i=a.n(s);a(8170);const l=e=>{const{icon:t,title:a,description:s,primaryCtaLabel:l,primaryCtaURL:o,primaryCtaIsExternalLink:u,primaryCtaOnClick:m,secondaryCtaLabel:d,secondaryCtaURL:p,secondaryCtaIsExternalLink:h,secondaryCtaOnClick:g}=e;return i().createElement(c.Card,{isRounded:!0,size:"large"},i().createElement(c.CardBody,{className:"upsell-banner",size:"large"},t&&i().createElement("div",{className:"upsell-banner--icon"},i().createElement("img",{src:t,alt:""})),i().createElement("div",{className:"upsell-banner--content"},i().createElement("div",{className:"upsell-banner--content-info"},i().createElement("h3",null,a),i().createElement("p",null,(0,r.createInterpolateElement)(s,{br:i().createElement("br",null)}))),i().createElement("div",{className:"upsell-banner--content-cta"},d&&p&&i().createElement(n.A,{className:"upsell-banner--content-cta-button secondary",href:p,onClick:g??void 0,isExternalLink:h},d),l&&o&&i().createElement(n.A,{className:"upsell-banner--content-cta-button primary",href:o,onClick:m??void 0,isExternalLink:u},l)))))}},1984:(e,t,a)=>{"use strict";a.d(t,{o:()=>n});const n="d729d42c-b547-4750-a6f6-8b30534a5f12"},8587:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(1609),c=a(1984);const r=({jwt_token:e})=>{const t=(0,n.useCallback)((()=>{"undefined"!=typeof window&&"function"==typeof window.zE&&window.zE("messenger","loginUser",(function(t){t(e)}))}),[e]);return(0,n.useEffect)((()=>{const e=document.createElement("script"),a=document.getElementById("zendesk-chat-container");e.src="https://static.zdassets.com/ekr/snippet.js?key="+encodeURIComponent(c.o),e.type="text/javascript",e.id="ze-snippet",e.onload=()=>{t()},a&&a.appendChild(e)}),[t]),React.createElement("div",{"data-testid":"zendesk-chat-container",id:"zendesk-chat-container"})}},1437:(e,t,a)=>{"use strict";a.d(t,{Y:()=>c});var n=a(8443);const c=()=>{const{l10n:{locale:e}}=(0,n.getSettings)();if(e)return(e=>{const t=e.match(/^([a-z]{2,3})(_[a-z]{2}|_[a-z][a-z0-9]{4,7})?(?:_.*)?$/i);return t?`${t[1]}${t[2]?t[2]:""}`.replace("_","-"):"en-US"})(e);return window?.window?.navigator?.language??"en-US"}},1069:(e,t,a)=>{"use strict";function n(){return window.Initial_State?.adminUrl||window.Jetpack_Editor_Initial_State?.adminUrl||window?.myJetpackInitialState?.adminUrl||null}a.d(t,{A:()=>n})},3924:(e,t,a)=>{"use strict";function n(e,t={}){const a={};let n;if("undefined"!=typeof window&&(n=window?.JP_CONNECTION_INITIAL_STATE?.calypsoEnv),0===e.search("https://")){const t=new URL(e);e=`https://${t.host}${t.pathname}`,a.url=encodeURIComponent(e)}else a.source=encodeURIComponent(e);for(const e in t)a[e]=encodeURIComponent(t[e]);!Object.keys(a).includes("site")&&"undefined"!=typeof jetpack_redirects&&Object.hasOwn(jetpack_redirects,"currentSiteRawUrl")&&(a.site=jetpack_redirects.currentBlogID??jetpack_redirects.currentSiteRawUrl),n&&(a.calypso_env=n);return"https://jetpack.com/redirect/?"+Object.keys(a).map((e=>e+"="+a[e])).join("&")}a.d(t,{A:()=>n})},6439:(e,t,a)=>{let n={};try{n=a(5990)}catch{console.error("jetpackConfig is missing in your webpack config file. See @automattic/jetpack-config"),n={missingConfig:!0}}const c=e=>Object.hasOwn(n,e);e.exports={jetpackConfigHas:c,jetpackConfigGet:e=>{if(!c(e))throw'This app requires the "'+e+'" Jetpack Config to be defined in your webpack configuration file. See details in @automattic/jetpack-config package docs.';return n[e]}}},3935:(e,t,a)=>{"use strict";a.d(t,{A1:()=>l,Ay:()=>A,DO:()=>i,Ij:()=>s,Kl:()=>p,LW:()=>o,MU:()=>h,XY:()=>u,ZO:()=>r,dz:()=>m,gH:()=>d,v_:()=>c});var n=a(5932);const c="SET_CONNECTION_STATUS",r="SET_CONNECTION_STATUS_IS_FETCHING",s="SET_SITE_IS_REGISTERING",i="SET_USER_IS_CONNECTING",l="SET_REGISTRATION_ERROR",o="CLEAR_REGISTRATION_ERROR",u="SET_AUTHORIZATION_URL",m="DISCONNECT_USER_SUCCESS",d="SET_CONNECTED_PLUGINS",p="SET_CONNECTION_ERRORS",h="SET_IS_OFFLINE_MODE",g=e=>({type:c,connectionStatus:e}),v=e=>({type:s,isRegistering:e}),f=e=>({type:i,isConnecting:e}),w=e=>({type:l,registrationError:e}),E=()=>({type:o}),k=e=>({type:u,authorizationUrl:e}),y=e=>({type:d,connectedPlugins:e});const A={setConnectionStatus:g,setConnectionStatusIsFetching:e=>({type:r,isFetching:e}),fetchConnectionStatus:()=>({type:"FETCH_CONNECTION_STATUS"}),fetchAuthorizationUrl:e=>({type:"FETCH_AUTHORIZATION_URL",redirectUri:e}),setSiteIsRegistering:v,setUserIsConnecting:f,setRegistrationError:w,clearRegistrationError:E,setAuthorizationUrl:k,registerSite:function*({registrationNonce:e,redirectUri:t,from:a=""}){yield E(),yield v(!0);try{const n=yield{type:"REGISTER_SITE",registrationNonce:e,redirectUri:t,from:a};return yield g({isRegistered:!0}),yield k(n.authorizeUrl),yield v(!1),Promise.resolve(n)}catch(e){return yield w(e),yield v(!1),Promise.reject(e)}},connectUser:function*({from:e,redirectFunc:t,redirectUri:a}={}){yield f(!0),yield{type:"CONNECT_USER",from:e,redirectFunc:t,redirectUri:a}},disconnectUserSuccess:()=>({type:m}),setConnectedPlugins:y,refreshConnectedPlugins:()=>async({dispatch:e})=>await new Promise((t=>n.Ay.fetchConnectedPlugins().then((a=>{e(y(a)),t(a)})))),setConnectionErrors:e=>({type:p,connectionErrors:e}),setIsOfflineMode:e=>({type:h,isOfflineMode:e})}},2494:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(5932),c=a(7143),r=a(2279);const s={FETCH_AUTHORIZATION_URL:({redirectUri:e})=>n.Ay.fetchAuthorizationUrl(e),REGISTER_SITE:({registrationNonce:e,redirectUri:t,from:a})=>n.Ay.registerSite(e,t,a),CONNECT_USER:(0,c.createRegistryControl)((({resolveSelect:e})=>({from:t,redirectFunc:a,redirectUri:n}={})=>new Promise(((c,s)=>{e(r.A).getAuthorizationUrl(n).then((e=>{const n=a||(e=>window.location.assign(e)),r=new URL(e);t&&r.searchParams.set("from",encodeURIComponent(t));const s=r.toString();n(s),c(s)})).catch((e=>{s(e)}))}))))}},5051:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(7143),c=a(3935);const r=(0,n.combineReducers)({connectionStatus:(e={},t)=>{switch(t.type){case c.v_:return{...e,...t.connectionStatus};case c.dz:return{...e,isUserConnected:!1}}return e},connectionStatusIsFetching:(e=!1,t)=>t.type===c.ZO?t.isFetching:e,siteIsRegistering:(e=!1,t)=>t.type===c.Ij?t.isRegistering:e,userIsConnecting:(e=!1,t)=>t.type===c.DO?t.isConnecting:e,registrationError:(e,t)=>{switch(t.type){case c.LW:return!1;case c.A1:return t.registrationError;default:return e}},authorizationUrl:(e,t)=>t.type===c.XY?t.authorizationUrl:e,userConnectionData:(e,t)=>(t.type,e),connectedPlugins:(e={},t)=>t.type===c.gH?t.connectedPlugins:e,connectionErrors:(e={},t)=>t.type===c.Kl?t.connectionErrors:e,isOfflineMode:(e=!1,t)=>t.type===c.MU?t.isConnecting:e})},8019:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(7143),c=a(3935),r=a(2279);const s={...{getAuthorizationUrl:{isFulfilled:(e,...t)=>{const a=Boolean(e.authorizationUrl),c=(0,n.select)(r.A).hasFinishedResolution("getAuthorizationUrl",t);return a&&!c&&(0,n.dispatch)(r.A).finishResolution("getAuthorizationUrl",t),a},*fulfill(e){const t=yield c.Ay.fetchAuthorizationUrl(e);yield c.Ay.setAuthorizationUrl(t.authorizeUrl)}}}}},2676:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n={...{getConnectionStatus:e=>e.connectionStatus||{},getConnectionStatusIsFetching:()=>!1,getSiteIsRegistering:e=>e.siteIsRegistering||!1,getUserIsConnecting:e=>e.userIsConnecting||!1,getRegistrationError:e=>e.registrationError||!1,getAuthorizationUrl:e=>e.authorizationUrl||!1,getUserConnectionData:e=>e.userConnectionData||!1,getConnectedPlugins:e=>e.connectedPlugins||[],getConnectionErrors:e=>e.connectionErrors||[],getIsOfflineMode:e=>e.isOfflineMode||!1,getWpcomUser:e=>e?.userConnectionData?.currentUser?.wpcomUser,getBlogId:e=>e?.userConnectionData?.currentUser?.blogId}}},8734:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(7143);class c{static store=null;static mayBeInit(e,t){null===c.store&&(c.store=(0,n.createReduxStore)(e,t),(0,n.register)(c.store))}}const r=c},2279:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n="jetpack-connection"},4293:(e,t,a)=>{"use strict";a.d(t,{a:()=>u.A});var n=a(7999),c=a(3935),r=a(2494),s=a(5051),i=a(8019),l=a(2676),o=a(8734),u=a(2279);const m=window.JP_CONNECTION_INITIAL_STATE||(0,n.getScriptData)()?.connection;m||console.error("Jetpack Connection package: Initial state is missing. Check documentation to see how to use the Connection composer package to set up the initial state."),o.A.mayBeInit(u.A,{__experimentalUseThunks:!0,reducer:s.A,actions:c.Ay,selectors:l.A,resolvers:i.A,controls:r.A,initialState:m||{}})},9534:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(372),c=a(7142),r=a(6461),s=a(6427),i=a(6087),l=a(7723),o=a(1113),u=a(311),m=a(8120),d=a.n(m),p=a(1609),h=a.n(p);const __=l.__,g=e=>{const{className:t,disabled:a,onChange:n,value:c}=e;return h().createElement(s.TextControl,{__nextHasNoMarginBottom:!0,className:t,label:__("License key","jetpack-my-jetpack"),value:c,onChange:n,disabled:a})},v=e=>{const{className:t,availableLicenses:a,disabled:n,onChange:c,value:r}=e,[i,o]=(0,p.useState)(""),u=null===a,m=(0,p.useMemo)((()=>u?[{label:__("Fetching available licenses…","jetpack-my-jetpack"),value:""}]:[...a.map((({product:e,license_key:t})=>({label:(0,l.sprintf)(/* translators: placeholder is the product name and license key */
+__("%1$s - %2$s","jetpack-my-jetpack"),e,t),value:t}))),{label:__("I want to add a license key manually","jetpack-my-jetpack"),value:""}]),[a,u]);(0,p.useEffect)((()=>{o(m?.length?m[0].value:"")}),[m]);const d=(0,p.useCallback)((e=>{o(e),c(e)}),[c]);return h().createElement(h().Fragment,null,h().createElement(s.SelectControl,{__nextHasNoMarginBottom:!0,className:t,disabled:n,label:__("Select a license key","jetpack-my-jetpack"),value:i,options:m,onChange:d}),!u&&!i&&h().createElement(s.TextControl,{__nextHasNoMarginBottom:!0,className:t,label:__("Input a license key","jetpack-my-jetpack"),value:r,onChange:c,disabled:n}))},f=e=>{const{activateLicense:t,availableLicenses:a,fetchingAvailableLicenses:l,isActivating:m,license:d,licenseError:f,onLicenseChange:w}=e,E=null!=f;(0,p.useEffect)((()=>{n.A.tracks.recordEvent("jetpack_wpa_license_key_activation_view")}),[]);const k=E?"jp-license-activation-screen-controls--license-field-with-error":"jp-license-activation-screen-controls--license-field",y=a&&a.length;return h().createElement("div",{className:"jp-license-activation-screen-controls"},h().createElement("div",{className:"jp-license-activation-screen-controls--content"},h().createElement(c.A,{showText:!1,height:48}),h().createElement("h1",null,__("Add a license key","jetpack-my-jetpack")),h().createElement("p",null,(0,i.createInterpolateElement)(__("Check your email for your license key. You should have received it after making your purchase.","jetpack-my-jetpack"),{strong:h().createElement("strong",null)})),l||y?h().createElement(v,{className:k,disabled:l||m,onChange:w,availableLicenses:l?null:a,value:d}):h().createElement(g,{className:k,disabled:m,onChange:w,value:d}),E&&h().createElement("div",{className:"jp-license-activation-screen-controls--license-field-error"},h().createElement(o.A,{icon:u.A}),h().createElement("span",null,f))),h().createElement("div",null,h().createElement(s.Button,{className:"jp-license-activation-screen-controls--button",onClick:t,disabled:!d},m?h().createElement(r.A,null):__("Activate","jetpack-my-jetpack"))))};f.propTypes={activateLicense:d().func.isRequired,availableLicenses:d().array,fetchingAvailableLicenses:d().bool,isActivating:d().bool.isRequired,license:d().string.isRequired,licenseError:d().string,onLicenseChange:d().func.isRequired,siteUrl:d().string.isRequired};const w=f},5986:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var n=a(3924),c=a(6087),r=a(7723),s=a(8120),i=a.n(s),l=a(1609),o=a.n(l);const __=r.__,u=e=>{const{imageUrl:t,showSupportLink:a=!1}=e;return o().createElement("div",{className:"jp-license-activation-screen-illustration"},o().createElement("div",{className:"jp-license-activation-screen-illustration--wrapper"},o().createElement("img",{className:"jp-license-activation-screen-illustration--img",src:t,alt:""})),a&&o().createElement("p",{className:"jp-license-activation-screen-illustration--support-link"},(0,c.createInterpolateElement)(__("Do you need help? Contact us.","jetpack-my-jetpack"),{a:o().createElement("a",{href:(0,n.A)("jetpack-support-license-activation")})})))};u.propTypes={imageUrl:i().string.isRequired,showSupportLink:i().bool};const m=u},3806:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var n=a(7142),c=a(8120),r=a.n(c),s=a(1609),i=a.n(s),l=a(8354),o=a(8560),u=a(8547);const m=e=>{const{productId:t,siteRawUrl:a,siteAdminUrl:c,currentRecommendationsStep:r}=e;return i().createElement("div",{className:"jp-license-activation-screen-success-info"},i().createElement("div",{className:"jp-license-activation-screen-success-info--content"},i().createElement(n.A,{showText:!1,height:48})),i().createElement(o.A,{siteRawUrl:a,productId:t}),i().createElement("div",{className:"jp-license-activation-screen-success-info--buttons"},i().createElement(l.F,{currentRecommendationsStep:r,siteAdminUrl:c,siteRawUrl:a,productId:t}),i().createElement(u.m,{siteRawUrl:a,productId:t})))};m.propTypes={siteRawUrl:r().string,productId:r().number,siteAdminUrl:r().string,currentRecommendationsStep:r().string};const d=m},8354:(e,t,a)=>{"use strict";a.d(t,{F:()=>p});var n=a(6461),c=a(3924),r=a(6427),s=a(7723),i=a(8120),l=a.n(i),o=a(1609),u=a.n(o),m=a(3010),d=a(1183);const __=s.__,p=e=>{const{currentRecommendationsStep:t,siteAdminUrl:a,siteRawUrl:s,productId:i}=e,[l,o]=(0,m.A)(),p=e=>l.map((e=>e.name)).includes(e),h=(0,d.p)(i),g=p("Jetpack"),v=p("Jetpack Social"),f="jetpack_social_advanced"===h||"jetpack_social_basic"===h,w=p("Jetpack Protect");if(o)return u().createElement(r.Button,{className:"jp-license-activation-screen-success-info--button"},u().createElement(n.A,null));if(f&&(g||v))return u().createElement(r.Button,{className:"jp-license-activation-screen-success-info--button",href:a+(g?"admin.php?page=jetpack#/recommendations/"+("jetpack_social_advanced"===h?"welcome-social-advanced":"welcome-social-basic"):"admin.php?page=jetpack-social")},__("Configure my site","jetpack-my-jetpack"));if("jetpack_scan"===h){const e=w?a+"admin.php?page=jetpack-protect":(0,c.A)("jetpack-license-activation-success-scan",{site:s});return u().createElement(r.Button,{className:"jp-license-activation-screen-success-info--button",href:e},__("View scan results","jetpack-my-jetpack"))}return"not-started"===t?u().createElement(r.Button,{className:"jp-license-activation-screen-success-info--button",href:a+"admin.php?page=jetpack#/recommendations"},__("Configure my site","jetpack-my-jetpack")):u().createElement(r.Button,{className:"jp-license-activation-screen-success-info--button",href:(0,c.A)("license-activation-view-my-plans",{site:s})},__("View my plans","jetpack-my-jetpack"))};p.propTypes={siteAdminUrl:l().string.isRequired,currentRecommendationsStep:l().string,siteRawUrl:l().string.isRequired}},8547:(e,t,a)=>{"use strict";a.d(t,{m:()=>m});var n=a(3924),c=a(6427),r=a(7723),s=a(8120),i=a.n(s),l=a(1609),o=a.n(l),u=a(1183);const __=r.__,m=e=>{const{productId:t,siteRawUrl:a}=e,r={jetpack_backup:{text:__("View latest backup","jetpack-my-jetpack"),redirectSource:"jetpack-license-activation-success-backup"},jetpack_complete:{text:__("View latest backup","jetpack-my-jetpack"),redirectSource:"jetpack-license-activation-success-backup"},jetpack_scan:{text:__("View my plans","jetpack-my-jetpack"),redirectSource:"license-activation-view-my-plans"},jetpack_search:{text:__("Configure search","jetpack-my-jetpack"),redirectSource:"jetpack-license-activation-success-search"},jetpack_security:{text:__("View latest backup","jetpack-my-jetpack"),redirectSource:"jetpack-license-activation-success-backup"},default:null}[(0,u.p)(t)];return o().createElement(o().Fragment,null,r&&o().createElement(c.ExternalLink,{className:"jp-license-activation-screen-success-info--external-link",href:(0,n.A)(r.redirectSource,{site:a})},r.text))};m.propTypes={siteRawUrl:i().string,productId:i().number}},9051:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(372),c=a(5932),r=a(6087),s=a(7723),i=a(8120),l=a.n(i),o=a(1609),u=a.n(o),m=a(9534),d=a(5986),p=a(3806),h=a(7129),g=a(6309),v=a(7139);const __=s.__,f=e=>{const{availableLicenses:t=[],currentRecommendationsStep:a,fetchingAvailableLicenses:s=!1,onActivationSuccess:i=()=>null,siteAdminUrl:l,siteRawUrl:f,startingLicense:w,displayName:E=""}=e,[k,y]=(0,o.useState)(w??""),[A,b]=(0,o.useState)(null),[j,R]=(0,o.useState)(!1),[C,_]=(0,o.useState)(null);(0,o.useEffect)((()=>{t&&t[0]&&y(t[0].license_key)}),[t]);const x=(0,o.useCallback)((()=>j?Promise.resolve():k.length<1?(b(__("This is not a valid license key. Please try again.","jetpack-my-jetpack")),Promise.resolve()):(b(null),R(!0),n.A.tracks.recordJetpackClick({target:"license_activation_button"}),c.Ay.attachLicenses([k]).then((e=>{const t=(e=>{let t=e;for(;Array.isArray(t)&&t.length>0;)t=t[0];if(t?.activatedProductId)return t.activatedProductId;if(t?.errors)for(const e in t.errors)if(t.errors[e].length>0)throw new Error(t.errors[e][0]);throw new Error(__("An unknown error occurred during license activation. Please try again.","jetpack-my-jetpack"))})(e);_(t),i(t),n.A.tracks.recordEvent("jetpack_wpa_license_activation_success")})).catch((e=>{n.A.tracks.recordEvent("jetpack_wpa_license_activation_error");"invalid_permission_manage_user_licenses"===e.response?.code?b((0,r.createInterpolateElement)(__("You either do not have permissions to perform this action or a user account needs to be connected. Click here to connect your user account or contact your administrator.","jetpack-my-jetpack"),{connectLink:u().createElement("a",{href:"admin.php?page=my-jetpack#/connection?returnTo=add-license"})})):b(e.message)})).finally((()=>{R(!1)})))),[j,k,i]);return null!==C&&k.startsWith("jetpack-golden-token")?u().createElement(h.A,{tokenRedeemed:!0,displayName:E}):null!==C?u().createElement("div",{className:"jp-license-activation-screen"},u().createElement(p.A,{siteRawUrl:f,productId:C,siteAdminUrl:l,currentRecommendationsStep:a}),u().createElement(d.A,{imageUrl:v,showSupportLink:!1})):u().createElement("div",{className:"jp-license-activation-screen"},u().createElement(m.A,{availableLicenses:t,activateLicense:x,fetchingAvailableLicenses:s,isActivating:j,license:k,licenseError:A,onLicenseChange:y,siteUrl:f}),u().createElement(d.A,{imageUrl:g,showSupportLink:!0}))};f.propTypes={availableLicenses:l().array,currentRecommendationsStep:l().string,fetchingAvailableLicenses:l().bool,onActivationSuccess:l().func,siteAdminUrl:l().string.isRequired,siteRawUrl:l().string.isRequired,startingLicense:l().string,displayName:l().string};const w=f},7129:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(8478),c=a(5918),r=a(8509),s=a(7142),i=a(1112),l=a(6427),o=a(7723),u=a(3022),m=a(8120),d=a.n(m),p=a(1609),h=a.n(p),g=a(2980);const __=o.__,_x=o._x,v=e=>{document.referrer.includes(window.location.host)?(e.preventDefault(),history.back()):(e.preventDefault(),window.location.href=window?.myJetpackInitialState?.myJetpackUrl)};function f({redeemClick:e,displayName:t,onModalClose:a=v,tokenRedeemed:m=!1}){const[d,f]=(0,p.useState)(!1),w=(0,p.useRef)(null);(0,p.useEffect)((()=>{setTimeout((()=>{w?.current?.play()}),500)}),[w]);const E=(0,n.Wy)("scan"),k=(0,n.Wy)("backup"),y=(0,p.useCallback)((t=>{e?.(t),f(!0),w.current.play()}),[w,e]),A=(0,p.useCallback)((()=>{d&&w.current.play()}),[d]),b=(0,u.A)(g.A.modal,{[g.A.animating]:d});return h().createElement("div",null,h().createElement(l.Modal,{className:b,onRequestClose:a,isDismissible:!1,__experimentalHideHeader:!0},h().createElement(c.A,{horizontalSpacing:3,horizontalGap:3},h().createElement(r.A,null,h().createElement(s.A,{className:g.A["jetpack-logo"]}),h().createElement("div",{className:g.A["video-wrap"],onClick:A,role:"presentation"},h().createElement("video",{ref:w,src:"https://videos.files.wordpress.com/oSlNIBQO/jetpack-golden-token.mp4",muted:"muted"})),h().createElement("div",{className:g.A["content-wrap"]},h().createElement("div",{className:g.A["content-wrap-text"]},t.length>0&&h().createElement("p",{className:g.A["hi-user"]},(0,o.sprintf)(/* Translators: %s is the user's display name. */
+__("Hey, %s","jetpack-my-jetpack"),t)),h().createElement("h2",{className:g.A.headline},__("You have been gifted a Jetpack Golden Token.","jetpack-my-jetpack")),h().createElement("p",null,m&&__("This unlocked a lifetime of Jetpack powers for your website. Your exclusive Jetpack Experience is already active.","jetpack-my-jetpack"),!m&&__("This unlocks a lifetime of Jetpack powers for your website. Your exclusive Jetpack Experience awaits.","jetpack-my-jetpack"))),h().createElement(i.A,{variant:"primary",weight:"regular",onClick:y,className:g.A.button},m&&__("Awesome!","jetpack-my-jetpack"),!m&&__("Redeem your token","jetpack-my-jetpack"))),h().createElement("div",{className:`${g.A["powers-wrap"]} ${g.A["content-wrap"]}`},h().createElement("div",{className:g.A["content-wrap-text"]},h().createElement("h2",{className:g.A.headline},__("Super powers are ready!","jetpack-my-jetpack")),h().createElement("p",{className:g.A.paragraph},__("Your Jetpack Golden Token provides a lifetime license for this website and includes the following products:","jetpack-my-jetpack"))),h().createElement("div",{className:g.A["jetpack-products"]},h().createElement("div",null,h().createElement(k,null),h().createElement("h3",null,__("VaultPress Backup","jetpack-my-jetpack")),h().createElement("p",null,__("Save every change and get back online quickly with one‑click restores.","jetpack-my-jetpack"))),h().createElement("div",null,h().createElement(E,null),h().createElement("h3",null,_x("Scan","Plugin name (noun).","jetpack-my-jetpack")),h().createElement("p",null,__("Automated scanning and one‑click fixes to keep your site ahead of security threats.","jetpack-my-jetpack")))),h().createElement(i.A,{variant:"primary",weight:"regular",onClick:y,href:window?.myJetpackInitialState?.myJetpackUrl,className:g.A.button},__("Explore your new powers","jetpack-my-jetpack")))))))}f.propTypes={redeemClick:d().func,tokenRedeemed:d().bool,displayName:d().string,onModalClose:d().func};const w=f},1040:(e,t,a)=>{"use strict";a.d(t,{_:()=>c.A,b:()=>n.A});var n=a(9051),c=a(7129)},4705:(e,t,a)=>{"use strict";a(8992),a(1135)},1135:(e,t,a)=>{"use strict";a.d(t,{$:()=>n});const n=[{name:"amazon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M13.582 8.182c-1.648.185-3.802.308-5.344.984-1.781.769-3.03 2.337-3.03 4.644 0 2.953 1.86 4.429 4.253 4.429 2.02 0 3.125-.477 4.685-2.065.516.747.685 1.109 1.629 1.894a.59.59 0 0 0 .672-.066l.006.006c.567-.505 1.599-1.401 2.18-1.888.231-.188.19-.496.009-.754-.52-.718-1.072-1.303-1.072-2.634V8.305c0-1.876.133-3.599-1.249-4.891C15.23 2.369 13.422 2 12.04 2 9.336 2 6.318 3.01 5.686 6.351c-.068.355.191.542.423.594l2.754.298c.258-.013.445-.266.494-.523.236-1.151 1.2-1.706 2.284-1.706.584 0 1.249.215 1.595.738.398.584.346 1.384.346 2.061zm-.533 5.906c-.451.8-1.169 1.291-1.967 1.291-1.09 0-1.728-.83-1.728-2.061 0-2.42 2.171-2.86 4.227-2.86v.615c.001 1.108.027 2.031-.532 3.015m7.634 5.251C18.329 21.076 14.917 22 11.979 22c-4.118 0-7.826-1.522-10.632-4.057-.22-.199-.024-.471.241-.317 3.027 1.762 6.771 2.823 10.639 2.823 2.608 0 5.476-.541 8.115-1.66.397-.169.73.262.341.55m.653 1.704c-.194.163-.379.076-.293-.139.284-.71.92-2.298.619-2.684s-1.99-.183-2.749-.092c-.23.027-.266-.173-.059-.319 1.348-.946 3.555-.673 3.811-.356.26.32-.066 2.533-1.329 3.59"})))},{name:"behance",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M7.799 5.698c.589 0 1.12.051 1.606.156q.722.155 1.241.507.516.351.804.938c.188.387.281.871.281 1.443q0 .93-.421 1.551-.424.62-1.255 1.014 1.133.328 1.689 1.146.559.822.557 1.975 0 .935-.359 1.612a3.14 3.14 0 0 1-.973 1.114q-.613.432-1.399.637A6.1 6.1 0 0 1 7.963 18H2V5.698zm-.35 4.97q.721 0 1.192-.345.465-.344.463-1.119 0-.43-.152-.707a1.1 1.1 0 0 0-.416-.427 1.7 1.7 0 0 0-.596-.216 3.6 3.6 0 0 0-.697-.06H4.709v2.874zm.151 5.237q.401.001.759-.077c.243-.053.457-.137.637-.261.182-.12.332-.283.441-.491q.164-.31.163-.798-.002-.948-.533-1.357c-.356-.27-.83-.404-1.413-.404H4.709v3.388zm8.562-.041q.552.538 1.583.538.74 0 1.277-.374c.354-.248.571-.514.654-.79h2.155c-.347 1.072-.872 1.838-1.589 2.299-.708.463-1.572.693-2.58.693q-1.05 0-1.899-.337a4 4 0 0 1-1.439-.958 4.4 4.4 0 0 1-.904-1.484 5.4 5.4 0 0 1-.32-1.899q0-1 .329-1.863a4.4 4.4 0 0 1 .933-1.492q.607-.63 1.444-.994a4.6 4.6 0 0 1 1.857-.363q1.131-.001 1.98.44a3.94 3.94 0 0 1 1.389 1.181 4.8 4.8 0 0 1 .783 1.69q.24.947.171 1.983h-6.428c-.001.706.237 1.372.604 1.73m2.811-4.68c-.291-.321-.783-.496-1.384-.496q-.585 0-.973.2a2 2 0 0 0-.621.491 1.8 1.8 0 0 0-.328.628 2.7 2.7 0 0 0-.111.587h3.98c-.058-.625-.271-1.085-.563-1.41m-3.916-3.446h4.985V6.524h-4.985z"})))},{name:"blogger-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.779 9.904h-.981l-.021.001a1.163 1.163 0 0 1-1.16-1.079l-.001-.013A5.813 5.813 0 0 0 11.803 3H8.871a5.813 5.813 0 0 0-5.813 5.813v6.375a5.813 5.813 0 0 0 5.813 5.813h6.257a5.814 5.814 0 0 0 5.813-5.813l.002-4.121a1.164 1.164 0 0 0-1.164-1.163M8.726 7.713h3.291a1.117 1.117 0 1 1 0 2.234H8.726a1.117 1.117 0 1 1 0-2.234m6.601 8.657H8.72a1.057 1.057 0 1 1 0-2.114h6.607a1.057 1.057 0 1 1 0 2.114"})))},{name:"blogger",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M14.722 14.019a.654.654 0 0 1-.654.654H9.977a.654.654 0 0 1 0-1.308h4.091c.361 0 .654.293.654.654m-4.741-3.321h2.038a.692.692 0 0 0 0-1.384H9.981a.692.692 0 0 0 0 1.384M21 5v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2m-3.456 6.39a.72.72 0 0 0-.72-.72h-.607l-.013.001a.72.72 0 0 1-.718-.668l-.001-.008a3.6 3.6 0 0 0-3.599-3.599H10.07a3.6 3.6 0 0 0-3.599 3.599v3.947a3.6 3.6 0 0 0 3.599 3.599h3.874a3.6 3.6 0 0 0 3.599-3.599z"})))},{name:"bluesky",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.2 3.3c-.5-.2-1.4-.5-3.6 1C15.4 6 12.9 9.2 12 11c-.9-1.8-3.4-5-5.7-6.7-2.2-1.6-3-1.3-3.6-1S2 4.6 2 5.1s.3 4.7.5 5.4c.7 2.3 3.1 3.1 5.3 2.8-3.3.5-6.2 1.7-2.4 5.9 4.2 4.3 5.7-.9 6.5-3.6.8 2.7 1.7 7.7 6.4 3.6 3.6-3.6 1-5.4-2.3-5.9 2.2.2 4.6-.5 5.3-2.8.4-.7.7-4.8.7-5.4 0-.5-.1-1.5-.8-1.8"})))},{name:"codepen",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m22.016 8.84-.007-.037q-.006-.037-.015-.072-.007-.022-.013-.042l-.023-.062-.02-.042a.4.4 0 0 0-.03-.057l-.025-.038-.035-.052-.03-.037q-.021-.026-.043-.045-.015-.018-.035-.035a.4.4 0 0 0-.048-.04l-.037-.03-.015-.012-9.161-6.096a.86.86 0 0 0-.955 0L2.359 8.237l-.015.012-.038.028-.048.04a.638.638 0 0 0-.078.082q-.018.018-.03.037-.018.026-.035.052l-.025.038q-.016.031-.03.059l-.02.041a1 1 0 0 0-.034.106q-.01.034-.016.071-.003.02-.006.037a1 1 0 0 0-.009.114v6.093q0 .056.008.112l.007.038q.006.035.015.072a.2.2 0 0 0 .013.04q.01.032.022.063l.02.04a.4.4 0 0 0 .055.096l.035.052.03.037.042.045.035.035q.023.02.048.04l.038.03.013.01 9.163 6.095a.858.858 0 0 0 .959.004l9.163-6.095.015-.01q.02-.015.037-.03l.048-.04q.02-.017.035-.035.025-.024.043-.045l.03-.037.035-.052.025-.038a.4.4 0 0 0 .03-.058l.02-.04.023-.063c.003-.013.01-.027.013-.04q.009-.037.015-.072l.007-.037q.006-.062.007-.117V8.954a1 1 0 0 0-.008-.114m-9.154-4.376 6.751 4.49-3.016 2.013-3.735-2.492zm-1.724 0v4.009l-3.735 2.494-3.014-2.013zm-7.439 6.098L5.853 12l-2.155 1.438zm7.439 8.974-6.749-4.491 3.015-2.011 3.735 2.492zM12 14.035 8.953 12 12 9.966 15.047 12zm.862 5.501v-4.009l3.735-2.492 3.016 2.011zm7.441-6.098L18.147 12l2.156-1.438z"})))},{name:"deezer",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.129 3.662c.222-1.287.548-2.096.909-2.098h.001c.673.002 1.219 2.809 1.219 6.274s-.546 6.274-1.22 6.274c-.276 0-.531-.477-.736-1.276-.324 2.926-.997 4.937-1.776 4.937-.603 0-1.144-1.208-1.507-3.114-.248 3.624-.872 6.195-1.602 6.195-.458 0-.875-1.019-1.184-2.678C13.861 21.6 13.003 24 12.002 24s-1.861-2.399-2.231-5.824c-.307 1.659-.724 2.678-1.184 2.678-.73 0-1.352-2.571-1.602-6.195-.363 1.905-.903 3.114-1.507 3.114-.778 0-1.452-2.011-1.776-4.937-.204.802-.46 1.276-.736 1.276-.674 0-1.22-2.809-1.22-6.274s.546-6.274 1.22-6.274c.362 0 .685.812.91 2.098.357-2.22.94-3.662 1.6-3.662.784 0 1.463 2.04 1.784 5.002.314-2.156.791-3.53 1.325-3.53.749 0 1.385 2.703 1.621 6.474.443-1.933 1.085-3.146 1.795-3.146s1.352 1.214 1.795 3.146c.237-3.771.872-6.474 1.621-6.474.533 0 1.009 1.374 1.325 3.53.321-2.962 1-5.002 1.784-5.002.658 0 1.244 1.443 1.603 3.662M0 7.221c0-1.549.31-2.805.692-2.805s.692 1.256.692 2.805-.31 2.805-.692 2.805S0 8.77 0 7.221m22.616 0c0-1.549.31-2.805.692-2.805S24 5.672 24 7.221s-.31 2.805-.692 2.805-.692-1.256-.692-2.805"})))},{name:"discord",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.33 4.523A20 20 0 0 0 15.379 3a14 14 0 0 0-.634 1.289 18.4 18.4 0 0 0-5.495 0A14 14 0 0 0 8.615 3 20 20 0 0 0 3.66 4.527C.527 9.163-.323 13.684.102 18.141a20 20 0 0 0 6.073 3.049 14.7 14.7 0 0 0 1.301-2.097 13 13 0 0 1-2.048-.978q.258-.189.502-.378a14.27 14.27 0 0 0 12.142 0q.247.202.502.378a13 13 0 0 1-2.052.98 14.5 14.5 0 0 0 1.301 2.095 19.9 19.9 0 0 0 6.076-3.047c.498-5.168-.851-9.648-3.568-13.62M8.013 15.4c-1.183 0-2.161-1.074-2.161-2.395S6.796 10.6 8.01 10.6s2.183 1.083 2.163 2.405S9.22 15.4 8.013 15.4m7.974 0c-1.186 0-2.16-1.074-2.16-2.395s.944-2.405 2.16-2.405 2.178 1.083 2.157 2.405-.951 2.395-2.158 2.395"})))},{name:"dribbble",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10m8.434-8.631c-.292-.092-2.644-.794-5.32-.365 1.117 3.07 1.572 5.57 1.659 6.09a8.56 8.56 0 0 0 3.661-5.725m-5.098 6.507c-.127-.749-.623-3.361-1.822-6.477l-.056.019c-4.818 1.679-6.547 5.02-6.701 5.334A8.5 8.5 0 0 0 12 20.555a8.5 8.5 0 0 0 3.336-.679m-9.682-2.152c.193-.331 2.538-4.213 6.943-5.637q.167-.054.337-.102a29 29 0 0 0-.692-1.45c-4.266 1.277-8.405 1.223-8.778 1.216a8.497 8.497 0 0 0 2.19 5.973m-2.015-7.46c.382.005 3.901.02 7.897-1.041a55 55 0 0 0-3.167-4.94 8.57 8.57 0 0 0-4.73 5.981m6.359-6.555a46 46 0 0 1 3.187 5c3.037-1.138 4.323-2.867 4.477-3.085a8.51 8.51 0 0 0-7.664-1.915m8.614 2.903c-.18.243-1.612 2.078-4.77 3.367a27 27 0 0 1 .751 1.678c2.842-.357 5.666.215 5.948.275a8.5 8.5 0 0 0-1.929-5.32"})))},{name:"dropbox",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 6.134 6.069 9.797 2 6.54l5.883-3.843zm-10 6.92 5.883 3.843L12 13.459 6.069 9.797zm10 .405 4.116 3.439L22 13.054l-4.069-3.257zM22 6.54l-5.884-3.843L12 6.134l5.931 3.663zm-9.989 7.66-4.129 3.426-1.767-1.153v1.291l5.896 3.539 5.897-3.539v-1.291l-1.769 1.153z"})))},{name:"eventbrite",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18.041 3.931 5.959 3A2.96 2.96 0 0 0 3 5.959v12.083A2.96 2.96 0 0 0 5.959 21l12.083-.931C19.699 19.983 21 18.744 21 17.11V6.89c0-1.634-1.259-2.863-2.959-2.959M16.933 8.17c-.082.215-.192.432-.378.551-.188.122-.489.132-.799.132-1.521 0-3.062-.048-4.607-.048q-.23 1.061-.451 2.128c.932-.004 1.873.005 2.81.005.726 0 1.462-.069 1.586.525.04.189-.001.426-.052.615-.105.38-.258.676-.625.783-.185.054-.408.058-.646.058-1.145 0-2.345.017-3.493.02-.169.772-.328 1.553-.489 2.333 1.57-.005 3.067-.041 4.633-.058.627-.007 1.085.194 1.009.85a2.2 2.2 0 0 1-.211.725c-.102.208-.248.376-.488.452-.237.075-.541.064-.862.078-.304.014-.614.008-.924.016-.309.009-.619.022-.919.022-1.253 0-2.429.08-3.683.073-.603-.004-1.014-.249-1.124-.757-.059-.273-.018-.58.036-.841a3543 3543 0 0 1 1.629-7.763c.056-.265.114-.511.225-.714a1.24 1.24 0 0 1 .79-.62c.368-.099.883-.047 1.344-.047.305 0 .612.008.914.016.925.026 1.817.03 2.747.053.304.007.615.016.915.016.621 0 1.17.073 1.245.614.039.288-.051.567-.132.783"})))},{name:"facebook",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10"})))},{name:"fediverse",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 743 743"},React.createElement("g",null,React.createElement("path",{d:"M181.131 275.137a68.9 68.9 0 0 1-29.465 29.328l161.758 162.389 38.998-19.764zm213.363 214.187-38.998 19.764 81.963 82.283a68.9 68.9 0 0 1 29.471-29.332zM581.646 339.391l-91.576 46.41 6.752 43.189 103.616-52.513a68.9 68.9 0 0 1-18.792-37.086m-144.738 73.351L220.383 522.477a68.9 68.9 0 0 1 18.795 37.089L443.66 455.934zM367.275 142.438l-104.48 203.97 30.848 30.967 110.623-215.957a68.9 68.9 0 0 1-36.991-18.98M235.621 399.459l-52.922 103.314a68.9 68.9 0 0 1 36.987 18.979l46.781-91.328zM150.768 304.918a68.9 68.9 0 0 1-34.416 7.195 69 69 0 0 1-6.651-.695l30.903 197.662a68.9 68.9 0 0 1 34.416-7.195 69 69 0 0 1 6.646.695zM239.342 560.545c.707 4.589.949 9.239.72 13.877a68.9 68.9 0 0 1-7.267 27.18l197.629 31.712c-.708-4.59-.95-9.24-.723-13.878a68.9 68.9 0 0 1 7.27-27.178zM601.133 377.199l-91.219 178.082a68.9 68.9 0 0 1 36.994 18.983l91.217-178.08a68.9 68.9 0 0 1-36.992-18.985M476.723 125.33a68.9 68.9 0 0 1-29.471 29.332l141.266 141.811a68.9 68.9 0 0 1 29.468-29.332zM347.787 104.631l-178.576 90.498a68.9 68.9 0 0 1 18.793 37.086l178.574-90.502a68.9 68.9 0 0 1-18.791-37.082M446.926 154.826a68.9 68.9 0 0 1-34.983 7.483 69 69 0 0 1-6.029-.633l15.818 101.291 43.163 6.926zm-16 167.028 37.4 239.482a68.9 68.9 0 0 1 33.914-6.943q3.625.206 7.207.791L474.09 328.777zM188.131 232.975c.734 4.66.988 9.383.758 14.095a68.9 68.9 0 0 1-7.16 26.983l101.369 16.281 19.923-38.908zm173.736 27.9-19.926 38.912 239.514 38.467a69 69 0 0 1-.695-13.719 68.9 68.9 0 0 1 7.349-27.324z"}),React.createElement("path",{fillOpacity:".996",d:"M412.284 156.054c34.538 1.882 64.061-24.592 65.943-59.13s-24.592-64.062-59.131-65.943c-34.538-1.882-64.061 24.592-65.943 59.13s24.593 64.062 59.131 65.943M646.144 390.82c34.538 1.881 64.062-24.593 65.943-59.131s-24.592-64.061-59.13-65.943-64.062 24.593-65.943 59.131 24.592 64.061 59.13 65.943M495.086 685.719c34.538 1.881 64.062-24.592 65.943-59.13s-24.592-64.062-59.13-65.943-64.062 24.592-65.943 59.13 24.592 64.062 59.13 65.943M167.866 633.211c34.538 1.882 64.062-24.592 65.943-59.13s-24.592-64.062-59.13-65.943-64.062 24.592-65.943 59.13 24.592 64.062 59.13 65.943M116.692 305.86c34.538 1.882 64.062-24.592 65.943-59.13s-24.592-64.062-59.131-65.943c-34.538-1.881-64.061 24.592-65.943 59.13s24.593 64.062 59.131 65.943"})))},{name:"feed",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M2 8.667V12c5.515 0 10 4.485 10 10h3.333c0-7.363-5.97-13.333-13.333-13.333M2 2v3.333c9.19 0 16.667 7.477 16.667 16.667H22C22 10.955 13.045 2 2 2m2.5 15a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5"})))},{name:"flickr",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5m11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5"})))},{name:"foursquare",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17.573 2H6.905C5.434 2 5 3.107 5 3.805v16.948c0 .785.422 1.077.66 1.172.238.097.892.177 1.285-.275 0 0 5.035-5.843 5.122-5.93.132-.132.132-.132.262-.132h3.26c1.368 0 1.588-.977 1.732-1.552.078-.318.692-3.428 1.225-6.122l.675-3.368C19.56 2.893 19.14 2 17.573 2m-1.078 5.22c-.053.252-.372.518-.665.518h-4.157c-.467 0-.802.318-.802.787v.508c0 .467.337.798.805.798h3.528c.331 0 .655.362.583.715s-.407 2.102-.448 2.295c-.04.193-.262.523-.655.523h-2.88c-.523 0-.683.068-1.033.503-.35.437-3.505 4.223-3.505 4.223-.032.035-.063.027-.063-.015V4.852c0-.298.26-.648.648-.648h8.562c.315 0 .61.297.528.683z"})))},{name:"ghost",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M10.203 20.997H3.005v-3.599h7.198zm10.792-3.599h-7.193v3.599h7.193zm.003-7.198H3v3.599h17.998zm-7.195-7.197H3.005v3.599h10.798zm7.197 0h-3.599v3.599H21z"})))},{name:"git",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M23.519 10.947 13.053.482a1.543 1.543 0 0 0-2.183 0L8.696 2.656l2.756 2.756a1.83 1.83 0 0 1 1.886.439 1.84 1.84 0 0 1 .436 1.898l2.656 2.657a1.83 1.83 0 0 1 1.899.436 1.837 1.837 0 0 1 0 2.597 1.84 1.84 0 0 1-2.599 0 1.84 1.84 0 0 1-.4-1.998l-2.478-2.477v6.521a1.837 1.837 0 0 1 .485 2.945 1.837 1.837 0 0 1-2.597 0 1.837 1.837 0 0 1 0-2.598 1.8 1.8 0 0 1 .602-.401V8.85a1.8 1.8 0 0 1-.602-.4 1.84 1.84 0 0 1-.395-2.009L7.628 3.723.452 10.898a1.544 1.544 0 0 0 0 2.184l10.467 10.467a1.544 1.544 0 0 0 2.183 0l10.417-10.418a1.546 1.546 0 0 0 0-2.184"})))},{name:"github",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.419 2.865 8.166 6.839 9.489.5.09.682-.218.682-.484 0-.236-.009-.866-.014-1.699-2.782.602-3.369-1.34-3.369-1.34-.455-1.157-1.11-1.465-1.11-1.465-.909-.62.069-.608.069-.608 1.004.071 1.532 1.03 1.532 1.03.891 1.529 2.341 1.089 2.91.833.091-.647.349-1.086.635-1.337-2.22-.251-4.555-1.111-4.555-4.943 0-1.091.39-1.984 1.03-2.682-.103-.254-.447-1.27.097-2.646 0 0 .84-.269 2.75 1.025A9.6 9.6 0 0 1 12 6.836c.85.004 1.705.114 2.504.336 1.909-1.294 2.748-1.025 2.748-1.025.546 1.376.202 2.394.1 2.646.64.699 1.026 1.591 1.026 2.682 0 3.841-2.337 4.687-4.565 4.935.359.307.679.917.679 1.852 0 1.335-.012 2.415-.012 2.741 0 .269.18.579.688.481A10 10 0 0 0 22 12c0-5.523-4.477-10-10-10"})))},{name:"google-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.05 16c-3.312 0-6-2.688-6-6s2.688-6 6-6c1.62 0 2.976.594 4.014 1.566L14.26 9.222c-.432-.408-1.188-.888-2.31-.888-1.986 0-3.606 1.65-3.606 3.672s1.62 3.672 3.606 3.672c2.298 0 3.144-1.59 3.3-2.532h-3.306v-2.238h5.616c.084.378.15.732.15 1.23 0 3.426-2.298 5.862-5.76 5.862"})))},{name:"google-plus-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M8 11h6.61c.06.35.11.7.11 1.16 0 4-2.68 6.84-6.72 6.84-3.87 0-7-3.13-7-7s3.13-7 7-7c1.89 0 3.47.69 4.69 1.83l-1.9 1.83c-.52-.5-1.43-1.08-2.79-1.08-2.39 0-4.34 1.98-4.34 4.42S5.61 16.42 8 16.42c2.77 0 3.81-1.99 3.97-3.02H8zm15 0h-2V9h-2v2h-2v2h2v2h2v-2h2"})))},{name:"google-plus",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-1.919 14.05a4.051 4.051 0 0 1 0-8.1c1.094 0 2.009.401 2.709 1.057l-1.15 1.118a2.23 2.23 0 0 0-1.559-.599c-1.341 0-2.434 1.114-2.434 2.479s1.094 2.479 2.434 2.479c1.551 0 2.122-1.073 2.227-1.709h-2.232v-1.511h3.791c.057.255.101.494.101.83.001 2.312-1.55 3.956-3.887 3.956M19 12.75h-1.25V14h-1.5v-1.25H15v-1.5h1.25V10h1.5v1.25H19z"})))},{name:"google",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.02 10.18v3.73h5.51c-.26 1.57-1.67 4.22-5.5 4.22-3.31 0-6.01-2.75-6.01-6.12s2.7-6.12 6.01-6.12c1.87 0 3.13.8 3.85 1.48l2.84-2.76C16.99 2.99 14.73 2 12.03 2c-5.52 0-10 4.48-10 10s4.48 10 10 10c5.77 0 9.6-4.06 9.6-9.77 0-.83-.11-1.42-.25-2.05z"})))},{name:"instagram",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 4.622c2.403 0 2.688.009 3.637.052.877.04 1.354.187 1.671.31.42.163.72.358 1.035.673s.51.615.673 1.035c.123.317.27.794.31 1.671.043.949.052 1.234.052 3.637s-.009 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.671-.163.42-.358.72-.673 1.035s-.615.51-1.035.673c-.317.123-.794.27-1.671.31-.949.043-1.233.052-3.637.052s-2.688-.009-3.637-.052c-.877-.04-1.354-.187-1.671-.31a2.8 2.8 0 0 1-1.035-.673 2.8 2.8 0 0 1-.673-1.035c-.123-.317-.27-.794-.31-1.671-.043-.949-.052-1.234-.052-3.637s.009-2.688.052-3.637c.04-.877.187-1.354.31-1.671.163-.42.358-.72.673-1.035s.615-.51 1.035-.673c.317-.123.794-.27 1.671-.31.949-.043 1.234-.052 3.637-.052M12 3c-2.444 0-2.751.01-3.711.054-.958.044-1.612.196-2.184.418a4.4 4.4 0 0 0-1.594 1.039c-.5.5-.808 1.002-1.038 1.594-.223.572-.375 1.226-.419 2.184C3.01 9.249 3 9.556 3 12s.01 2.751.054 3.711c.044.958.196 1.612.418 2.185.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.267.054 3.711.054s2.751-.01 3.711-.054c.958-.044 1.612-.196 2.185-.418a4.4 4.4 0 0 0 1.594-1.038c.5-.5.808-1.002 1.038-1.594.222-.572.375-1.227.418-2.185.044-.96.054-1.267.054-3.711s-.01-2.751-.054-3.711c-.044-.958-.196-1.612-.418-2.185A4.4 4.4 0 0 0 19.49 4.51c-.5-.5-1.002-.808-1.594-1.038-.572-.222-1.227-.375-2.185-.418C14.751 3.01 14.444 3 12 3m0 4.378a4.622 4.622 0 1 0 0 9.244 4.622 4.622 0 0 0 0-9.244M12 15a3 3 0 1 1 0-6 3 3 0 0 1 0 6m4.804-8.884a1.08 1.08 0 1 0 .001 2.161 1.08 1.08 0 0 0-.001-2.161"})))},{name:"json-feed",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m8.522 17.424.027.027c1.076-1.076 1.854-.993 3.154.306l2.053 2.053c2.136 2.136 4.131 2.028 6.515-.356l.729-.728-1.548-1.548-.373.373c-1.349 1.349-2.293 1.366-3.585.075l-2.409-2.409c-1.242-1.242-2.475-1.366-3.659-.381l-.232-.232c1.01-1.225.911-2.368-.29-3.568l-2.16-2.162c-1.317-1.317-1.308-2.236.058-3.602l.372-.372-1.54-1.54-.728.729c-2.393 2.393-2.525 4.346-.439 6.433l1.78 1.78c1.3 1.3 1.383 2.095.315 3.163l.008.008a1.384 1.384 0 0 0 1.952 1.951"}),React.createElement("circle",{cx:"13.089",cy:"10.905",r:"1.383"}),React.createElement("circle",{cx:"16.349",cy:"7.644",r:"1.383"}),React.createElement("circle",{cx:"19.61",cy:"4.383",r:"1.383"})))},{name:"line",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M14.255 9.572v3.333c0 .084-.066.15-.15.15h-.534a.16.16 0 0 1-.122-.061l-1.528-2.063v1.978c0 .084-.066.15-.15.15h-.534a.15.15 0 0 1-.15-.15V9.576c0-.084.066-.15.15-.15h.529a.14.14 0 0 1 .122.066l1.528 2.063V9.577c0-.084.066-.15.15-.15h.534a.15.15 0 0 1 .155.145m-3.844-.15h-.534a.15.15 0 0 0-.15.15v3.333c0 .084.066.15.15.15h.534c.084 0 .15-.066.15-.15V9.572c0-.08-.066-.15-.15-.15m-1.289 2.794H7.664V9.572a.15.15 0 0 0-.15-.15H6.98a.15.15 0 0 0-.15.15v3.333q0 .062.042.103a.16.16 0 0 0 .103.042h2.142c.084 0 .15-.066.15-.15v-.534a.15.15 0 0 0-.145-.15m7.945-2.794h-2.142c-.08 0-.15.066-.15.15v3.333c0 .08.066.15.15.15h2.142c.084 0 .15-.066.15-.15v-.534a.15.15 0 0 0-.15-.15h-1.458v-.563h1.458c.084 0 .15-.066.15-.15v-.539a.15.15 0 0 0-.15-.15h-1.458v-.563h1.458c.084 0 .15-.066.15-.15v-.534c-.005-.08-.07-.15-.15-.15M22.5 5.33v13.373c-.005 2.1-1.725 3.802-3.83 3.797H5.297c-2.1-.005-3.802-1.73-3.797-3.83V5.297c.005-2.1 1.73-3.802 3.83-3.797h13.373c2.1.005 3.802 1.725 3.797 3.83m-2.888 5.747c0-3.422-3.431-6.206-7.645-6.206s-7.645 2.784-7.645 6.206c0 3.066 2.719 5.634 6.394 6.122.895.192.792.52.591 1.725-.033.192-.155.755.661.413s4.402-2.592 6.009-4.439c1.106-1.219 1.636-2.452 1.636-3.82"})))},{name:"link",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17 13H7v-2h10zm1-6h-1c-1.631 0-3.065.792-3.977 2H18c1.103 0 2 .897 2 2v2c0 1.103-.897 2-2 2h-4.977c.913 1.208 2.347 2 3.977 2h1a4 4 0 0 0 4-4v-2a4 4 0 0 0-4-4M2 11v2a4 4 0 0 0 4 4h1c1.63 0 3.065-.792 3.977-2H6c-1.103 0-2-.897-2-2v-2c0-1.103.897-2 2-2h4.977C10.065 7.792 8.631 7 7 7H6a4 4 0 0 0-4 4"})))},{name:"linkedin",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.7 3H4.3A1.3 1.3 0 0 0 3 4.3v15.4A1.3 1.3 0 0 0 4.3 21h15.4a1.3 1.3 0 0 0 1.3-1.3V4.3A1.3 1.3 0 0 0 19.7 3M8.339 18.338H5.667v-8.59h2.672zM7.004 8.574a1.548 1.548 0 1 1-.002-3.096 1.548 1.548 0 0 1 .002 3.096m11.335 9.764H15.67v-4.177c0-.996-.017-2.278-1.387-2.278-1.389 0-1.601 1.086-1.601 2.206v4.249h-2.667v-8.59h2.559v1.174h.037c.356-.675 1.227-1.387 2.526-1.387 2.703 0 3.203 1.779 3.203 4.092v4.711z"})))},{name:"mail",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2m0 4.236-8 4.882-8-4.882V6h16z"})))},{name:"mastodon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M11.973 2.352c-2.468.02-4.842.286-6.225.921 0 0-2.742 1.229-2.742 5.415 0 .958-.018 2.105.012 3.32.1 4.094.75 8.128 4.535 9.129 1.745.462 3.244.56 4.45.494 2.19-.122 3.417-.781 3.417-.781l-.072-1.588s-1.565.491-3.32.431c-1.74-.06-3.576-.188-3.858-2.324a4 4 0 0 1-.04-.598s1.709.416 3.874.516c1.324.06 2.563-.076 3.824-.226 2.418-.29 4.524-1.78 4.79-3.141.416-2.144.38-5.232.38-5.232 0-4.186-2.74-5.415-2.74-5.415-1.383-.635-3.76-.9-6.227-.921zM9.18 5.622c1.028 0 1.804.395 2.318 1.185l.502.84.5-.84c.514-.79 1.292-1.186 2.32-1.186.888 0 1.605.313 2.15.922q.795.915.794 2.469v5.068h-2.008V9.16c0-1.037-.438-1.562-1.31-1.562-.966 0-1.448.622-1.448 1.857v2.693h-1.996V9.455c0-1.235-.484-1.857-1.45-1.857-.872 0-1.308.525-1.308 1.562v4.92H6.236V9.012q-.001-1.554.793-2.469c.547-.609 1.263-.922 2.15-.922"})))},{name:"medium-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{fillRule:"nonzero",d:"M7.423 6c3.27 0 5.922 2.686 5.922 6s-2.651 6-5.922 6S1.5 15.313 1.5 12s2.652-6 5.923-6m9.458.351c1.635 0 2.961 2.53 2.961 5.65 0 3.118-1.325 5.648-2.96 5.648S13.92 15.119 13.92 12s1.325-5.649 2.96-5.649m4.577.589c.576 0 1.042 2.265 1.042 5.06s-.466 5.06-1.042 5.06c-.575 0-1.04-2.265-1.04-5.06s.465-5.06 1.04-5.06"})))},{name:"medium",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M3 3v18h18V3zm15 4.26-1 .93a.28.28 0 0 0-.11.27v6.8a.27.27 0 0 0 .11.27l.94.93v.2h-4.75v-.2l1-1c.09-.1.09-.12.09-.27V9.74l-2.71 6.9h-.37L8 9.74v4.62a.67.67 0 0 0 .17.54l1.27 1.54v.2H5.86v-.2l1.27-1.54a.64.64 0 0 0 .17-.54V9a.5.5 0 0 0-.16-.4L6 7.26v-.2h3.52L12.23 13l2.38-5.94H18z"})))},{name:"messenger",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.026.375C5.462.375.375 5.172.375 11.652c0 3.389 1.393 6.318 3.66 8.341.391.352.311.556.377 2.73a.934.934 0 0 0 1.307.823c2.48-1.092 2.512-1.178 2.933-1.064 7.185 1.977 14.973-2.621 14.973-10.83 0-6.48-5.035-11.277-11.599-11.277m6.996 8.678L15.6 14.47a1.75 1.75 0 0 1-2.527.465l-2.723-2.038a.7.7 0 0 0-.844 0l-3.674 2.786c-.49.372-1.133-.216-.802-.735l3.422-5.417a1.75 1.75 0 0 1 2.527-.465l2.722 2.037a.7.7 0 0 0 .844 0L18.22 8.32c.489-.374 1.132.213.801.732"})))},{name:"microblog",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.641 17.086c1.294-1.522 2.067-3.438 2.067-5.521 0-4.957-4.371-8.972-9.763-8.972s-9.763 4.015-9.763 8.972 4.371 8.972 9.763 8.972a10.5 10.5 0 0 0 3.486-.59.315.315 0 0 1 .356.112c.816 1.101 2.09 1.876 3.506 2.191a.194.194 0 0 0 .192-.309 3.82 3.82 0 0 1 .162-4.858zm-3.065-6.575-2.514 1.909.912 3.022a.286.286 0 0 1-.437.317l-2.592-1.802-2.592 1.802a.285.285 0 0 1-.436-.317l.912-3.022-2.515-1.909a.285.285 0 0 1 .167-.513l3.155-.066 1.038-2.981a.285.285 0 0 1 .539 0l1.038 2.981 3.155.066a.285.285 0 0 1 .17.513"})))},{name:"nextdoor",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",strokeMiterlimit:"10",viewBox:"0 0 130 130"},React.createElement("g",null,React.createElement("path",{d:"M64.25 3.531c-31.144.337-57.596 24.22-60.469 55.907-3.064 33.799 21.857 63.685 55.657 66.75s63.685-21.857 66.75-55.657-21.857-63.686-55.657-66.75a62 62 0 0 0-6.281-.25m3.938 34.907C82.468 38.438 93.5 48.58 93.5 61.5v27c0 .685-.565 1.25-1.25 1.25H80.906a1.267 1.267 0 0 1-1.25-1.25V63.375c0-5.58-4.309-11.937-11.469-11.937-7.47 0-11.468 6.357-11.468 11.937V88.5c0 .685-.565 1.25-1.25 1.25H44.125c-.68 0-1.219-.57-1.219-1.25V64.156c0-.74-.529-1.364-1.25-1.531-13.13-2.93-15.115-10.285-15.375-21.125-.005-.332.142-.67.375-.906.233-.237.543-.375.875-.375l11.688.062c.66.01 1.187.529 1.218 1.188.13 4.44.438 9.406 4.438 9.406.83 0 1.443-1.179 1.813-1.719 4.41-6.48 12.28-10.718 21.5-10.718"})))},{name:"patreon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20 7.408c-.003-2.299-1.746-4.182-3.79-4.862-2.54-.844-5.888-.722-8.312.453-2.939 1.425-3.862 4.545-3.896 7.656-.028 2.559.22 9.297 3.92 9.345 2.75.036 3.159-3.603 4.43-5.356.906-1.247 2.071-1.599 3.506-1.963 2.465-.627 4.146-2.626 4.142-5.273"})))},{name:"pinterest-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.289 2C6.617 2 3.606 5.648 3.606 9.622c0 1.846 1.025 4.146 2.666 4.878.25.111.381.063.439-.169.044-.175.267-1.029.365-1.428a.37.37 0 0 0-.091-.362c-.54-.63-.975-1.791-.975-2.873 0-2.777 2.194-5.464 5.933-5.464 3.23 0 5.49 2.108 5.49 5.122 0 3.407-1.794 5.768-4.13 5.768-1.291 0-2.257-1.021-1.948-2.277.372-1.495 1.089-3.112 1.089-4.191 0-.967-.542-1.775-1.663-1.775-1.319 0-2.379 1.309-2.379 3.059 0 1.115.394 1.869.394 1.869s-1.302 5.279-1.54 6.261c-.405 1.666.053 4.368.094 4.604.021.126.167.169.25.063.129-.165 1.699-2.419 2.142-4.051.158-.59.817-2.995.817-2.995.43.784 1.681 1.446 3.013 1.446 3.963 0 6.822-3.494 6.822-7.833C20.394 5.112 16.849 2 12.289 2"})))},{name:"pinterest",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12c0 4.236 2.636 7.855 6.356 9.312-.087-.791-.166-2.005.035-2.869.182-.78 1.173-4.971 1.173-4.971s-.299-.599-.299-1.484c0-1.39.806-2.429 1.809-2.429.853 0 1.265.641 1.265 1.409 0 .858-.546 2.141-.828 3.329-.236.996.499 1.807 1.481 1.807 1.777 0 3.144-1.874 3.144-4.579 0-2.394-1.72-4.068-4.177-4.068-2.845 0-4.515 2.134-4.515 4.34 0 .859.331 1.781.744 2.282a.3.3 0 0 1 .069.287c-.077.316-.246.995-.279 1.134-.044.183-.145.222-.334.134-1.249-.581-2.03-2.407-2.03-3.874 0-3.154 2.292-6.051 6.607-6.051 3.469 0 6.165 2.472 6.165 5.775 0 3.446-2.173 6.22-5.189 6.22-1.013 0-1.966-.526-2.292-1.148l-.623 2.377c-.226.869-.835 1.957-1.243 2.622.936.289 1.93.445 2.961.445 5.523 0 10-4.477 10-10S17.523 2 12 2"})))},{name:"pocket",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.927 4.194A1.82 1.82 0 0 0 20.222 3H3.839a1.823 1.823 0 0 0-1.813 1.814v6.035l.069 1.2c.29 2.73 1.707 5.115 3.899 6.778l.119.089.025.018a9.9 9.9 0 0 0 3.91 1.727 10.06 10.06 0 0 0 4.049-.014.3.3 0 0 0 .064-.023 9.9 9.9 0 0 0 3.753-1.691l.025-.018q.06-.043.119-.089c2.192-1.664 3.609-4.049 3.898-6.778l.069-1.2V4.814a1.8 1.8 0 0 0-.098-.62m-4.235 6.287-4.704 4.512a1.37 1.37 0 0 1-1.898 0l-4.705-4.512a1.371 1.371 0 1 1 1.898-1.979l3.756 3.601 3.755-3.601a1.372 1.372 0 0 1 1.898 1.979"})))},{name:"polldaddy",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.487 2 2 6.487 2 12c0 5.514 4.487 10 10 10 5.514 0 10-4.486 10-10 0-5.513-4.486-10-10-10m.991 1.68c2.361.084 4.657 1.251 6.197 3.136.283.334.541.693.774 1.067a7.78 7.78 0 0 0-6.094-2.94 7.76 7.76 0 0 0-5.896 2.703q-.008.006-.016.014l-.152.159-.031.032a6.12 6.12 0 0 0-1.633 4.165 6.15 6.15 0 0 0 6.143 6.143c.57 0 1.123-.081 1.649-.227-1.849.839-4.131.747-5.926-.324-1.841-1.089-3.171-3.111-3.433-5.313A7.39 7.39 0 0 1 6.69 6.137C8.294 4.5 10.634 3.563 12.991 3.68m3.373 8.519c-.049-2.024-1.587-3.889-3.544-4.174-1.927-.343-3.917.857-4.451 2.661a3.67 3.67 0 0 0 .2 2.653c.39.8 1.067 1.451 1.894 1.759 1.664.654 3.63-.27 4.173-1.863.593-1.58-.396-3.423-1.94-3.776-1.52-.407-3.161.757-3.204 2.243a2.36 2.36 0 0 0 .753 1.879c.501.476 1.23.667 1.871.529a2.07 2.07 0 0 0 1.469-1.134 1.91 1.91 0 0 0-.087-1.767c-.297-.513-.859-.863-1.429-.881a1.7 1.7 0 0 0-1.437.679 1.53 1.53 0 0 0-.18 1.489q.006.016.016.03c.193.634.774 1.1 1.467 1.117a1.6 1.6 0 0 1-.97-.183c-.466-.244-.809-.747-.893-1.29a1.8 1.8 0 0 1 .499-1.539 2.02 2.02 0 0 1 1.58-.606c.593.04 1.159.35 1.517.859.364.496.51 1.156.383 1.773-.116.62-.529 1.174-1.093 1.514a2.52 2.52 0 0 1-1.914.286c-.65-.161-1.226-.606-1.584-1.206a2.83 2.83 0 0 1-.341-2.031c.143-.7.573-1.321 1.176-1.753 1.193-.883 3.056-.751 4.106.411 1.106 1.1 1.327 3.027.406 4.371-.877 1.376-2.74 2.086-4.374 1.594-1.639-.449-2.913-2.079-3.031-3.853-.07-.884.13-1.797.583-2.577.445-.777 1.155-1.432 1.972-1.862 1.64-.88 3.816-.743 5.349.424 1.251.924 2.083 2.42 2.236 4.009l.001.03c0 2.9-2.359 5.26-5.26 5.26a5.2 5.2 0 0 1-1.947-.376 5 5 0 0 0 2.613-.079 4.96 4.96 0 0 0 2.514-1.751c.618-.828.95-1.861.901-2.869M12 21.113c-5.024 0-9.111-4.087-9.111-9.113 0-4.789 3.713-8.723 8.411-9.081a7 7 0 0 0-.397.06c-2.644.453-5.017 2.106-6.32 4.409-1.309 2.301-1.391 5.19-.3 7.527 1.056 2.34 3.253 4.156 5.776 4.553 2.497.44 5.133-.483 6.787-2.301 1.719-1.797 2.269-4.529 1.486-6.796-.583-1.81-1.976-3.331-3.7-4.046 3.417.594 6.174 3.221 6.174 6.781 0 1.004-.241 2.02-.657 2.966-1.498 2.984-4.586 5.041-8.149 5.041"})))},{name:"print",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M9 16h6v2H9zm13 1h-3v3a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-3H2V9a2 2 0 0 1 2-2h1V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v2h1a2 2 0 0 1 2 2zM7 7h10V5H7zm10 7H7v6h10zm3-3.5a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 20 10.5"})))},{name:"quora",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M47.736 16.521c-.41-.81-.898-1.631-1.846-1.631a1 1 0 0 0-.527.107l-.322-.644a2.93 2.93 0 0 1 1.836-.595c1.26 0 1.914.605 2.431 1.397a6.8 6.8 0 0 0 .449-2.675c0-2.773-.869-4.199-2.929-4.199-1.992 0-2.851 1.465-2.851 4.199s.859 4.17 2.851 4.17a4 4 0 0 0 .869-.107zm.498.966a6 6 0 0 1-1.367.185 5.27 5.27 0 0 1-5.263-5.204c0-3.114 2.558-5.233 5.263-5.233s5.282 2.109 5.282 5.233a5.08 5.08 0 0 1-1.992 4.072c.381.566.781.956 1.319.956.595 0 .839-.459.878-.82h.781c.049.488-.195 2.48-2.373 2.48-1.319 0-2.012-.761-2.529-1.66zm5.624-2.646v-3.563c0-.371-.146-.586-.615-.586h-.498v-.956h3.251v5.048c0 .849.459 1.231 1.161 1.231a1.56 1.56 0 0 0 1.465-.839V11.28c0-.371-.146-.586-.615-.586h-.527v-.957h3.28v5.302c0 .527.195.732.8.732h.107v.976l-2.929.468V16.21h-.057a3.12 3.12 0 0 1-2.509 1.152c-1.28 0-2.304-.644-2.304-2.558zm12.059 1.611c1.152 0 1.592-1.005 1.611-3.027.02-1.982-.459-2.929-1.611-2.929-1.005 0-1.641.956-1.641 2.929 0 2.021.625 3.027 1.641 3.027m0 .956a3.906 3.906 0 0 1-3.974-3.974c0-2.334 1.836-3.886 3.974-3.886 2.226 0 4.004 1.582 4.004 3.886a3.867 3.867 0 0 1-4.004 3.974m4.072-.146v-.956h.312c.781 0 .859-.224.859-.908v-4.121c0-.371-.215-.586-.732-.586h-.42v-.955h2.968l.146 1.553h.108c.371-1.113 1.221-1.699 2.051-1.699.693 0 1.221.39 1.221 1.181 0 .547-.264 1.093-1.005 1.093-.664 0-.8-.449-1.358-.449-.488 0-.869.468-.869 1.152v2.783c0 .673.166.908.937.908h.439v.956h-4.658zm9.901-1.093c.956 0 1.338-.898 1.338-1.797v-1.211c-.732.722-2.304.742-2.304 2.021 0 .625.371.986.966.986m1.387 0c-.39.752-1.191 1.26-2.314 1.26-1.309 0-2.148-.732-2.148-1.914 0-2.451 3.417-1.797 4.423-3.427v-.185c0-1.25-.488-1.445-1.035-1.445-1.524 0-.83 1.631-2.226 1.631-.673 0-.937-.371-.937-.859 0-.927 1.093-1.67 3.173-1.67 1.963 0 3.163.537 3.163 2.49v3.114q-.02.742.595.742a1 1 0 0 0 .449-.127l.254.615c-.205.312-.752.869-1.836.869-.908 0-1.465-.42-1.543-1.113h-.01zm-68.554 2.558c-.83-1.641-1.807-3.3-3.711-3.3a2.9 2.9 0 0 0-1.093.215l-.644-1.299a5.66 5.66 0 0 1 3.662-1.211c2.548 0 3.857 1.231 4.892 2.792q.917-2.012.908-5.38c0-5.585-1.748-8.417-5.829-8.417-4.033 0-5.76 2.87-5.76 8.417s1.738 8.397 5.76 8.397a5.9 5.9 0 0 0 1.748-.224zm.996 1.953a9.8 9.8 0 0 1-2.744.371C5.614 21.041.371 16.764.371 10.545.371 4.277 5.614 0 10.965 0c5.448 0 10.642 4.248 10.642 10.545a10.25 10.25 0 0 1-4.013 8.201c.732 1.152 1.563 1.914 2.665 1.914 1.201 0 1.689-.927 1.768-1.66h1.572c.088.966-.4 4.999-4.775 4.999-2.646 0-4.052-1.543-5.106-3.339z"})))},{name:"reddit",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22 11.816a2.28 2.28 0 0 0-2.277-2.277c-.593 0-1.122.24-1.526.614-1.481-.965-3.455-1.594-5.647-1.69l1.171-3.702 3.18.748a1.88 1.88 0 0 0 1.876 1.862 1.88 1.88 0 0 0 1.877-1.878 1.88 1.88 0 0 0-1.877-1.877c-.769 0-1.431.466-1.72 1.13l-3.508-.826a.386.386 0 0 0-.46.261l-1.35 4.268c-2.316.038-4.411.67-5.97 1.671a2.24 2.24 0 0 0-1.492-.581A2.28 2.28 0 0 0 2 11.816c0 .814.433 1.523 1.078 1.925a4 4 0 0 0-.061.672c0 3.292 4.011 5.97 8.941 5.97s8.941-2.678 8.941-5.97q-.002-.32-.053-.632A2.26 2.26 0 0 0 22 11.816m-3.224-7.422a1.1 1.1 0 1 1-.001 2.199 1.1 1.1 0 0 1 .001-2.199M2.777 11.816c0-.827.672-1.5 1.499-1.5.313 0 .598.103.838.269-.851.676-1.477 1.479-1.812 2.36a1.48 1.48 0 0 1-.525-1.129m9.182 7.79c-4.501 0-8.164-2.329-8.164-5.193S7.457 9.22 11.959 9.22s8.164 2.329 8.164 5.193-3.663 5.193-8.164 5.193m8.677-6.605c-.326-.89-.948-1.701-1.797-2.384.248-.186.55-.301.883-.301.827 0 1.5.673 1.5 1.5.001.483-.23.911-.586 1.185m-11.64 1.703c-.76 0-1.397-.616-1.397-1.376s.637-1.397 1.397-1.397 1.376.637 1.376 1.397-.616 1.376-1.376 1.376m7.405-1.376c0 .76-.616 1.376-1.376 1.376s-1.399-.616-1.399-1.376.639-1.397 1.399-1.397 1.376.637 1.376 1.397m-1.172 3.38a.39.39 0 0 1 0 .55c-.674.674-1.727 1.002-3.219 1.002l-.011-.002-.011.002c-1.492 0-2.544-.328-3.218-1.002a.389.389 0 1 1 .55-.55c.521.521 1.394.775 2.669.775l.011.002.011-.002c1.275 0 2.148-.253 2.669-.775a.387.387 0 0 1 .549 0"})))},{name:"share",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18 16c-.788 0-1.499.31-2.034.807L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.048 4.118A3 3 0 0 0 15 19a3 3 0 1 0 3-3"})))},{name:"skype",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m10.113 2.699.1-.02q.05.025.098.051zM2.72 10.223l-.017.103q.025.048.051.095zm18.555 3.548q.009-.053.018-.106-.025-.047-.052-.095zm-7.712 7.428q.049.027.096.053l.105-.017zM22 16.386a5.55 5.55 0 0 1-1.637 3.953 5.55 5.55 0 0 1-3.953 1.637 5.6 5.6 0 0 1-2.75-.725l.105-.017-.202-.035q.049.027.096.053a9.5 9.5 0 0 1-1.654.147 9.4 9.4 0 0 1-3.676-.743 9.4 9.4 0 0 1-3.002-2.023 9.4 9.4 0 0 1-2.023-3.002 9.4 9.4 0 0 1-.743-3.676c0-.546.049-1.093.142-1.628q.025.048.051.095l-.034-.199-.017.103A5.6 5.6 0 0 1 2 7.615c0-1.493.582-2.898 1.637-3.953A5.56 5.56 0 0 1 7.59 2.024c.915 0 1.818.228 2.622.655l-.1.02.199.031q-.049-.026-.098-.051l.004-.001a9.5 9.5 0 0 1 1.788-.169 9.41 9.41 0 0 1 6.678 2.766 9.4 9.4 0 0 1 2.024 3.002 9.4 9.4 0 0 1 .743 3.676c0 .575-.054 1.15-.157 1.712q-.025-.047-.052-.095l.034.201q.009-.053.018-.106c.461.829.707 1.767.707 2.721m-5.183-2.248c0-1.331-.613-2.743-3.033-3.282l-2.209-.49c-.84-.192-1.807-.444-1.807-1.237s.679-1.348 1.903-1.348c2.468 0 2.243 1.696 3.468 1.696.645 0 1.209-.379 1.209-1.031 0-1.521-2.435-2.663-4.5-2.663-2.242 0-4.63.952-4.63 3.488 0 1.221.436 2.521 2.839 3.123l2.984.745c.903.223 1.129.731 1.129 1.189 0 .762-.758 1.507-2.129 1.507-2.679 0-2.307-2.062-3.743-2.062-.645 0-1.113.444-1.113 1.078 0 1.236 1.501 2.886 4.856 2.886 3.195 0 4.776-1.538 4.776-3.599"})))},{name:"sms",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M17.696 4C20.069 4 22 5.973 22 8.398v4.357c0 2.04-1.368 3.783-3.261 4.266v4.427l-5.234-4.295h-7.2C3.93 17.153 2 15.18 2 12.755V8.398C2 5.973 3.931 4 6.304 4zM7.028 8.515c-.98 0-1.66.562-1.66 1.349-.009.497.322.91.985 1.178l.39.142c.242.097.305.171.305.297 0 .162-.131.251-.442.251s-.76-.135-1.004-.284l-.112.046-.215.868c.359.258.832.364 1.33.364 1.104 0 1.764-.523 1.764-1.333-.008-.574-.305-.956-.954-1.216l-.393-.146c-.266-.108-.341-.181-.341-.287 0-.152.131-.243.387-.243.274 0 .587.093.808.214l.109-.047.214-.837c-.315-.224-.741-.316-1.171-.316m10.302 0c-.98 0-1.66.562-1.66 1.349-.008.497.322.91.985 1.178l.39.142c.243.097.305.171.305.297 0 .162-.13.251-.442.251-.311 0-.76-.135-1.004-.284l-.112.046-.215.868c.359.258.832.364 1.33.364 1.104 0 1.764-.523 1.764-1.333-.008-.574-.305-.956-.954-1.216l-.393-.146c-.266-.108-.341-.181-.341-.287 0-.152.131-.243.387-.243.274 0 .587.093.808.214l.109-.047.214-.837c-.316-.224-.741-.316-1.171-.316m-3.733 0c-.297 0-.55.066-.78.202l-.144.098a2 2 0 0 0-.264.247l-.078.095-.027-.077c-.15-.34-.55-.565-1.033-.565l-.169.007a1.36 1.36 0 0 0-.896.42l-.08.09-.038-.363-.075-.067H8.994l-.075.079.024.634c.005.2.008.397.008.604v2.652l.075.075h1.178l.075-.075v-2.269q-.002-.168.042-.274c.083-.23.262-.392.496-.392.314 0 .483.267.483.753v2.182l.075.075h1.179l.075-.075v-2.277c0-.097.016-.213.043-.285.077-.224.26-.373.486-.373.33 0 .5.272.5.817v2.118l.074.075h1.179l.075-.075v-2.293c0-1.131-.537-1.763-1.39-1.763Z"})))},{name:"snapchat",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M11.989 1.728c3.221.001 5.904 2.683 5.908 5.912q.002 1.133.067 2.094a.737.737 0 0 0 .902.669l1.009-.237a.6.6 0 0 1 .129-.015c.256 0 .492.175.55.434a.74.74 0 0 1-.479.861l-1.532.618a.823.823 0 0 0-.485.98c1.229 4.543 4.661 4.071 4.661 4.662 0 .743-2.587.848-2.821 1.082s-.01 1.368-.532 1.588a1.1 1.1 0 0 1-.409.056c-.393 0-.95-.077-1.536-.077-.509 0-1.04.058-1.507.273-1.239.572-2.433 1.641-3.914 1.641S9.325 21.2 8.086 20.628c-.467-.216-.998-.273-1.507-.273-.586 0-1.143.077-1.536.077-.17 0-.31-.014-.409-.056-.522-.22-.299-1.354-.532-1.588s-2.821-.337-2.821-1.08c0-.592 3.432-.119 4.661-4.662a.824.824 0 0 0-.486-.98l-1.532-.618a.74.74 0 0 1-.479-.861.56.56 0 0 1 .679-.419l1.009.237q.086.02.169.02a.737.737 0 0 0 .733-.689q.065-.961.067-2.094c.004-3.229 2.666-5.91 5.887-5.912m0-1.281c-.961 0-1.898.194-2.784.574A7.2 7.2 0 0 0 6.93 2.572a7.2 7.2 0 0 0-1.539 2.282A7.1 7.1 0 0 0 4.82 7.64a33 33 0 0 1-.029 1.369l-.375-.088a2 2 0 0 0-.421-.049 1.86 1.86 0 0 0-1.135.389 1.84 1.84 0 0 0-.666 1.049 2.024 2.024 0 0 0 1.271 2.335l1.124.454c-.744 2.285-2.117 2.723-3.041 3.018a5 5 0 0 0-.659.246C.087 16.76 0 17.436 0 17.708c0 .521.247.996.694 1.339.223.17.499.311.844.43.47.162 1.016.265 1.459.347.021.164.053.341.106.518.22.738.684 1.069 1.034 1.217.332.14.676.156.905.156.224 0 .462-.018.713-.036.269-.02.548-.041.823-.041.426 0 .743.051.97.155.311.144.64.337.989.542.972.571 2.073 1.217 3.462 1.217s2.49-.647 3.462-1.217c.349-.205.679-.399.989-.542.226-.105.544-.155.97-.155.275 0 .554.021.823.041.251.019.488.036.713.036.229 0 .573-.016.905-.156.35-.147.814-.478 1.034-1.217.053-.178.084-.354.106-.518.443-.082.989-.185 1.459-.347.345-.119.621-.259.844-.43.448-.342.694-.818.694-1.339 0-.272-.087-.948-.891-1.347a5 5 0 0 0-.659-.246c-.924-.295-2.297-.733-3.041-3.018l1.124-.454a2.025 2.025 0 0 0 1.271-2.335 1.83 1.83 0 0 0-.666-1.049 1.86 1.86 0 0 0-1.556-.34l-.375.088a33 33 0 0 1-.029-1.369 7.1 7.1 0 0 0-.575-2.789c-.365-.853-.886-1.62-1.547-2.282s-1.428-1.182-2.28-1.547a7.1 7.1 0 0 0-2.786-.574"})))},{name:"soundcloud",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M23.587 13.923a3.303 3.303 0 0 1-3.344 3.117h-8.037a.674.674 0 0 1-.667-.67V7.717a.74.74 0 0 1 .444-.705s.739-.512 2.296-.512a5.27 5.27 0 0 1 2.702.742 5.35 5.35 0 0 1 2.516 3.485 3.1 3.1 0 0 1 .852-.116 3.217 3.217 0 0 1 3.237 3.312m-13.05-5.659c.242 2.935.419 5.612 0 8.538a.261.261 0 0 1-.519 0c-.39-2.901-.221-5.628 0-8.538a.26.26 0 0 1 .398-.25.26.26 0 0 1 .12.25zm-1.627 8.541a.273.273 0 0 1-.541 0 32.7 32.7 0 0 1 0-7.533.274.274 0 0 1 .544 0 29.4 29.4 0 0 1-.003 7.533m-1.63-7.788c.264 2.69.384 5.099-.003 7.782a.262.262 0 0 1-.522 0c-.374-2.649-.249-5.127 0-7.782a.264.264 0 0 1 .525 0m-1.631 7.792a.268.268 0 0 1-.532 0 27.6 27.6 0 0 1 0-7.034.27.27 0 1 1 .541 0 25.8 25.8 0 0 1-.01 7.034zm-1.63-5.276c.412 1.824.227 3.435-.015 5.294a.255.255 0 0 1-.504 0c-.22-1.834-.402-3.482-.015-5.295a.268.268 0 0 1 .535 0m-1.626-.277c.378 1.869.254 3.451-.01 5.325-.031.277-.506.28-.531 0-.239-1.846-.352-3.476-.01-5.325a.277.277 0 0 1 .551 0m-1.643.907c.396 1.239.261 2.246-.016 3.517a.258.258 0 0 1-.514 0c-.239-1.246-.336-2.274-.021-3.517a.276.276 0 0 1 .55 0z"})))},{name:"spotify",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424a.62.62 0 0 1-.857.207c-2.348-1.435-5.304-1.76-8.785-.964a.622.622 0 1 1-.277-1.215c3.809-.871 7.077-.496 9.713 1.115a.623.623 0 0 1 .206.857M17.81 13.7a.78.78 0 0 1-1.072.257c-2.687-1.652-6.785-2.131-9.965-1.166A.779.779 0 1 1 6.32 11.3c3.632-1.102 8.147-.568 11.234 1.328a.78.78 0 0 1 .256 1.072m.105-2.835c-3.223-1.914-8.54-2.09-11.618-1.156a.935.935 0 1 1-.542-1.79c3.532-1.072 9.404-.865 13.115 1.338a.936.936 0 1 1-.955 1.608"})))},{name:"squarespace",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M20.87 9.271a3.86 3.86 0 0 0-5.458 0l-6.141 6.141a.964.964 0 1 0 1.365 1.364l6.14-6.14a1.929 1.929 0 1 1 2.729 2.729l-6.022 6.022a1.93 1.93 0 0 0 2.729 0l4.658-4.658a3.86 3.86 0 0 0 0-5.458m-2.047 2.047a.965.965 0 0 0-1.365 0l-6.14 6.14a1.93 1.93 0 0 1-2.729 0 .964.964 0 1 0-1.364 1.364 3.86 3.86 0 0 0 5.458 0l6.14-6.14a.966.966 0 0 0 0-1.364m-2.047-6.141a3.86 3.86 0 0 0-5.458 0l-6.14 6.14a.964.964 0 1 0 1.364 1.364l6.141-6.14a1.93 1.93 0 0 1 2.729 0 .965.965 0 1 0 1.364-1.364m-2.047 2.047a.964.964 0 0 0-1.364 0l-6.14 6.141a1.929 1.929 0 1 1-2.729-2.729l6.022-6.022a1.93 1.93 0 0 0-2.729 0L3.13 9.271a3.86 3.86 0 0 0 5.458 5.458l6.14-6.141a.963.963 0 0 0 .001-1.364"})))},{name:"stackexchange",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M4 11.606h16v3.272H4zM4 7.377h16v3.272H4zM17.514 3H6.55C5.147 3 4 4.169 4 5.614v.848h16v-.85C20 4.167 18.895 3 17.514 3M4 15.813v.85c0 1.445 1.147 2.614 2.55 2.614h6.799v3.463l3.357-3.463h.744c1.402 0 2.55-1.169 2.55-2.614v-.85z"})))},{name:"stackoverflow",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M18.18 20.103V14.78h1.767v7.09H4v-7.09h1.767v5.323z"}),React.createElement("path",{d:"m7.717 14.275 8.673 1.813.367-1.744-8.673-1.813zm1.147-4.13 8.031 3.74.734-1.606-8.031-3.763zm2.226-3.946 6.815 5.667 1.124-1.354-6.815-5.667zM15.495 2l-1.423 1.055 5.277 7.113 1.423-1.055zM7.533 18.314h8.857v-1.767H7.533z"})))},{name:"stumbleupon",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 4.294a4.47 4.47 0 0 0-4.471 4.471v6.353a1.059 1.059 0 1 1-2.118 0v-2.824H2v2.941a4.471 4.471 0 0 0 8.942 0v-6.47a1.059 1.059 0 1 1 2.118 0v1.294l1.412.647 2-.647V8.765A4.473 4.473 0 0 0 12 4.294m1.059 8.059v2.882a4.471 4.471 0 0 0 8.941 0v-2.824h-3.412v2.824a1.059 1.059 0 1 1-2.118 0v-2.882l-2 .647z"})))},{name:"substack",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19.904 9.182H4.095V7.054h15.81v2.127M4.095 11.109V21L12 16.583 19.905 21v-9.891zM19.905 3H4.095v2.127h15.81z"})))},{name:"telegram",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m3.08 14.757s-.25.625-.936.325l-2.541-1.949-1.63 1.486s-.127.096-.266.036c0 0-.12-.011-.27-.486s-.911-2.972-.911-2.972L6 12.349s-.387-.137-.425-.438c-.037-.3.437-.462.437-.462l10.03-3.934s.824-.362.824.238z"})))},{name:"threads",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 192 192"},React.createElement("g",null,React.createElement("path",{d:"M141.537 88.988a67 67 0 0 0-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.229c8.249.053 14.474 2.452 18.503 7.129 2.932 3.405 4.893 8.111 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.194 47.292 9.642 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553M98.44 129.507c-10.44.588-21.286-4.098-21.82-14.135-.397-7.442 5.296-15.746 22.461-16.735q2.948-.17 5.79-.169c6.235 0 12.068.606 17.371 1.765-1.978 24.702-13.58 28.713-23.802 29.274"})))},{name:"tiktok-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M5 3a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm7.531 3h2.053s-.114 2.635 2.85 2.82v2.04s-1.582.099-2.85-.87l.021 4.207a3.804 3.804 0 1 1-3.802-3.802h.533v2.082a1.73 1.73 0 0 0-1.922.648 1.727 1.727 0 0 0 1.947 2.646 1.73 1.73 0 0 0 1.19-1.642z"})))},{name:"tiktok",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.22 2h3.42s-.19 4.394 4.75 4.702v3.396s-2.636.166-4.75-1.448l.037 7.012a6.338 6.338 0 1 1-6.34-6.339h.89v3.472a2.882 2.882 0 1 0 2.024 2.752z"})))},{name:"tripadvisor",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.01 9.859c.236-1.002.985-2.003.985-2.003l-3.341-.002C16.779 6.643 14.502 6 11.979 6 9.363 6 7 6.659 5.135 7.877L2 7.88s.74.988.98 1.983a4.98 4.98 0 0 0-.977 2.961 5.01 5.01 0 0 0 5.009 5.003 5 5 0 0 0 3.904-1.875l1.065 1.592 1.076-1.606a4.96 4.96 0 0 0 1.838 1.448 4.98 4.98 0 0 0 3.831.151 5.01 5.01 0 0 0 2.963-6.431 5 5 0 0 0-.679-1.247m-13.998 6.96a4 4 0 0 1-3.998-3.995 4 4 0 0 1 3.998-3.997 4 4 0 0 1 3.996 3.997 4 4 0 0 1-3.996 3.995m4.987-4.36A5.007 5.007 0 0 0 7.11 7.821c1.434-.613 3.081-.947 4.867-.947 1.798 0 3.421.324 4.853.966a4.984 4.984 0 0 0-4.831 4.619m6.288 4.134a3.97 3.97 0 0 1-3.058-.122 3.96 3.96 0 0 1-2.075-2.245v-.001a3.97 3.97 0 0 1 .118-3.056 3.97 3.97 0 0 1 2.246-2.077 4.005 4.005 0 0 1 5.135 2.366 4.006 4.006 0 0 1-2.366 5.135"}),React.createElement("path",{d:"M6.949 10.307a2.477 2.477 0 0 0-2.475 2.472 2.48 2.48 0 0 0 2.475 2.474 2.474 2.474 0 0 0 0-4.946m0 4.094a1.626 1.626 0 0 1-1.624-1.623 1.621 1.621 0 1 1 1.624 1.623M16.981 10.307a2.477 2.477 0 0 0-2.474 2.472 2.48 2.48 0 0 0 2.474 2.474 2.476 2.476 0 0 0 2.472-2.474 2.475 2.475 0 0 0-2.472-2.472m0 4.094a1.625 1.625 0 0 1-1.622-1.623 1.622 1.622 0 1 1 1.622 1.623"}),React.createElement("path",{d:"M7.778 12.778a.832.832 0 1 1-1.664.002.832.832 0 0 1 1.664-.002M16.981 11.947a.832.832 0 1 0 .002 1.666.832.832 0 0 0-.002-1.666"})))},{name:"tumblr-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M16.749 17.396c-.357.17-1.041.319-1.551.332-1.539.041-1.837-1.081-1.85-1.896V9.847h3.861v-2.91h-3.847V2.039h-2.817c-.046 0-.127.041-.138.144-.165 1.499-.867 4.13-3.783 5.181v2.484h1.945v6.282c0 2.151 1.587 5.206 5.775 5.135 1.413-.024 2.982-.616 3.329-1.126z"})))},{name:"tumblr",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5.569 14.265c-2.446.042-3.372-1.742-3.372-2.998v-3.668H8.923v-1.45c1.703-.614 2.113-2.15 2.209-3.025.007-.06.054-.084.081-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.131 1.081 1.107.298-.008.697-.094.906-.194l.54 1.601c-.205.296-1.121.641-1.946.656"})))},{name:"twitch",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M16.499 8.089h-1.636v4.91h1.636zm-4.499 0h-1.637v4.91H12zM4.228 3.178 3 6.451v13.092h4.499V22h2.456l2.454-2.456h3.681L21 14.636V3.178zm15.136 10.638L16.5 16.681H12l-2.453 2.453V16.68H5.863V4.814h13.501z"})))},{name:"twitter-alt",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22.23 5.924a8.2 8.2 0 0 1-2.357.646 4.12 4.12 0 0 0 1.804-2.27 8.2 8.2 0 0 1-2.606.996 4.103 4.103 0 0 0-6.991 3.742 11.65 11.65 0 0 1-8.457-4.287 4.1 4.1 0 0 0-.556 2.063 4.1 4.1 0 0 0 1.825 3.415 4.1 4.1 0 0 1-1.859-.513v.052a4.104 4.104 0 0 0 3.292 4.023 4.1 4.1 0 0 1-1.853.07 4.11 4.11 0 0 0 3.833 2.85 8.24 8.24 0 0 1-5.096 1.756 8 8 0 0 1-.979-.057 11.6 11.6 0 0 0 6.29 1.843c7.547 0 11.675-6.252 11.675-11.675q0-.267-.012-.531a8.3 8.3 0 0 0 2.047-2.123"})))},{name:"twitter",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-2.534 6.71q.007.148.007.298c0 3.045-2.318 6.556-6.556 6.556a6.5 6.5 0 0 1-3.532-1.035q.27.032.55.032a4.63 4.63 0 0 0 2.862-.986 2.31 2.31 0 0 1-2.152-1.6 2.3 2.3 0 0 0 1.04-.04 2.306 2.306 0 0 1-1.848-2.259v-.029c.311.173.666.276 1.044.288a2.303 2.303 0 0 1-.713-3.076 6.54 6.54 0 0 0 4.749 2.407 2.305 2.305 0 0 1 3.926-2.101 4.6 4.6 0 0 0 1.463-.559 2.3 2.3 0 0 1-1.013 1.275c.466-.056.91-.18 1.323-.363-.31.461-.7.867-1.15 1.192"})))},{name:"untappd",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m11 13.299-5.824 8.133c-.298.416-.8.635-1.308.572-.578-.072-1.374-.289-2.195-.879S.392 19.849.139 19.323a1.4 1.4 0 0 1 .122-1.425l5.824-8.133a3.1 3.1 0 0 1 1.062-.927l1.146-.604c.23-.121.436-.283.608-.478.556-.631 2.049-2.284 4.696-4.957l.046-.212a.13.13 0 0 1 .096-.1l.146-.037a.135.135 0 0 0 .101-.141l-.015-.18a.13.13 0 0 1 .125-.142c.176-.005.518.046 1.001.393s.64.656.692.824a.13.13 0 0 1-.095.164l-.175.044a.13.13 0 0 0-.101.141l.012.15a.13.13 0 0 1-.063.123l-.186.112c-1.679 3.369-2.764 5.316-3.183 6.046a2.2 2.2 0 0 0-.257.73l-.205 1.281A3.1 3.1 0 0 1 11 13.3zm12.739 4.598-5.824-8.133a3.1 3.1 0 0 0-1.062-.927l-1.146-.605a2.1 2.1 0 0 1-.608-.478 51 51 0 0 0-.587-.654.09.09 0 0 0-.142.018 97 97 0 0 1-1.745 3.223 1.4 1.4 0 0 0-.171.485 3.5 3.5 0 0 0 0 1.103l.01.064c.075.471.259.918.536 1.305l5.824 8.133c.296.413.79.635 1.294.574a4.76 4.76 0 0 0 2.209-.881 4.76 4.76 0 0 0 1.533-1.802 1.4 1.4 0 0 0-.122-1.425zM8.306 3.366l.175.044a.134.134 0 0 1 .101.141l-.012.15a.13.13 0 0 0 .063.123l.186.112q.465.933.869 1.721c.026.051.091.06.129.019q.655-.703 1.585-1.668a.137.137 0 0 0 .003-.19c-.315-.322-.645-.659-1.002-1.02l-.046-.212a.13.13 0 0 0-.096-.099l-.146-.037a.135.135 0 0 1-.101-.141l.015-.18a.13.13 0 0 0-.123-.142c-.175-.005-.518.045-1.002.393-.483.347-.64.656-.692.824a.13.13 0 0 0 .095.164z"})))},{name:"vimeo",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M22.396 7.164q-.139 3.039-4.245 8.32Q13.907 21 10.97 21q-1.82 0-3.079-3.359l-1.68-6.159q-.934-3.36-2.005-3.36-.234.001-1.634.98l-.978-1.261q1.541-1.353 3.037-2.708 2.056-1.774 3.084-1.869 2.429-.234 2.99 3.321.607 3.836.841 4.769.7 3.181 1.542 3.181.653 0 1.963-2.065 1.307-2.063 1.401-3.142.187-1.781-1.401-1.782-.747.001-1.541.341 1.534-5.024 5.862-4.884 3.21.095 3.024 4.161"})))},{name:"vk",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{fillRule:"evenodd",d:"M1.687 1.687C0 3.374 0 6.09 0 11.52v.96c0 5.431 0 8.146 1.687 9.833S6.09 24 11.52 24h.96c5.431 0 8.146 0 9.833-1.687S24 17.91 24 12.48v-.96c0-5.431 0-8.146-1.687-9.833S17.91 0 12.48 0h-.96C6.09 0 3.374 0 1.687 1.687M4.05 7.3c.13 6.24 3.25 9.99 8.72 9.99h.31v-3.57c2.01.2 3.53 1.67 4.14 3.57h2.84c-.78-2.84-2.83-4.41-4.11-5.01 1.28-.74 3.08-2.54 3.51-4.98h-2.58c-.56 1.98-2.22 3.78-3.8 3.95V7.3H10.5v6.92c-1.6-.4-3.62-2.34-3.71-6.92z"})))},{name:"whatsapp",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"m2.048 22 1.406-5.136a9.9 9.9 0 0 1-1.323-4.955C2.133 6.446 6.579 2 12.042 2a9.85 9.85 0 0 1 7.011 2.906 9.85 9.85 0 0 1 2.9 7.011c-.002 5.464-4.448 9.91-9.91 9.91h-.004a9.9 9.9 0 0 1-4.736-1.206zm5.497-3.172.301.179a8.2 8.2 0 0 0 4.193 1.148h.003c4.54 0 8.235-3.695 8.237-8.237a8.2 8.2 0 0 0-2.41-5.828 8.18 8.18 0 0 0-5.824-2.416c-4.544 0-8.239 3.695-8.241 8.237a8.2 8.2 0 0 0 1.259 4.384l.196.312-.832 3.04zm9.49-4.554c-.062-.103-.227-.165-.475-.289s-1.465-.723-1.692-.806-.392-.124-.557.124-.64.806-.784.971-.289.186-.536.062-1.046-.385-1.991-1.229c-.736-.657-1.233-1.468-1.378-1.715s-.015-.382.109-.505c.111-.111.248-.289.371-.434.124-.145.165-.248.248-.413s.041-.31-.021-.434-.557-1.343-.763-1.839c-.202-.483-.407-.417-.559-.425-.144-.007-.31-.009-.475-.009a.9.9 0 0 0-.66.31c-.226.248-.866.847-.866 2.066s.887 2.396 1.011 2.562 1.746 2.666 4.23 3.739c.591.255 1.052.408 1.412.522.593.189 1.133.162 1.56.098.476-.071 1.465-.599 1.671-1.177.206-.58.206-1.075.145-1.179"})))},{name:"woocommerce",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M19 2H5C3.3 2 2 3.3 2 5v11c0 1.7 1.3 3 3 3h4l6 3-1-3h5c1.7 0 3-1.3 3-3V5c0-1.7-1.3-3-3-3m-1.6 4.5c-.4.8-.8 2.1-1 3.9-.3 1.8-.4 3.1-.3 4.1 0 .3 0 .5-.1.7s-.3.4-.6.4-.6-.1-.9-.4c-1-1-1.8-2.6-2.4-4.6-.7 1.4-1.2 2.4-1.6 3.1-.6 1.2-1.2 1.8-1.6 1.9-.3 0-.5-.2-.8-.7-.5-1.4-1.1-4.2-1.7-8.2 0-.3 0-.5.2-.7.1-.2.4-.3.7-.4.5 0 .9.2.9.8.3 2.3.7 4.2 1.1 5.7l2.4-4.5c.2-.4.4-.6.8-.6q.75 0 .9.9c.3 1.4.6 2.6 1 3.7.3-2.7.8-4.7 1.4-5.9.2-.3.4-.5.7-.5.2 0 .5.1.7.2q.3.3.3.6c0 .3 0 .4-.1.5"})))},{name:"wordpress",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M12.158 12.786 9.46 20.625a9 9 0 0 0 5.526-.144 1 1 0 0 1-.065-.124zM3.009 12a8.99 8.99 0 0 0 5.067 8.092L3.788 8.341A8.95 8.95 0 0 0 3.009 12m15.06-.454c0-1.112-.399-1.881-.741-2.48-.456-.741-.883-1.368-.883-2.109 0-.826.627-1.596 1.51-1.596q.06.002.116.007A8.96 8.96 0 0 0 12 3.009a8.98 8.98 0 0 0-7.512 4.052c.211.007.41.011.579.011.94 0 2.396-.114 2.396-.114.484-.028.541.684.057.741 0 0-.487.057-1.029.085l3.274 9.739 1.968-5.901-1.401-3.838c-.484-.028-.943-.085-.943-.085-.485-.029-.428-.769.057-.741 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.485-.028.542.684.057.741 0 0-.488.057-1.029.085l3.249 9.665.897-2.996q.684-1.753.684-2.907m1.82-3.86q.06.428.06.924c0 .912-.171 1.938-.684 3.22l-2.746 7.94a8.98 8.98 0 0 0 4.47-7.771 8.9 8.9 0 0 0-1.1-4.313M12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10"})))},{name:"x",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387z"})))},{name:"xanga",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M9 9h6v6H9zM3 9h6V3H3zm12 0h6V3h-6zm0 12h6v-6h-6zM3 21h6v-6H3z"})))},{name:"youtube",svg:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("g",null,React.createElement("path",{d:"M21.8 8.001s-.195-1.378-.795-1.985c-.76-.797-1.613-.801-2.004-.847-2.799-.202-6.997-.202-6.997-.202h-.009s-4.198 0-6.997.202c-.39.047-1.242.051-2.003.847-.6.607-.795 1.985-.795 1.985S2 9.62 2 11.238v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.761.797 1.76.771 2.205.855 1.6.153 6.8.201 6.8.201s4.203-.006 7.001-.209c.391-.047 1.243-.051 2.004-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517c0-1.618-.2-3.237-.2-3.237M9.935 14.594l-.001-5.62 5.404 2.82z"})))}]},8992:(e,t,a)=>{"use strict";a(6072);var n=a(5739),c=a.n(n),r=a(1609);a(1135);r.PureComponent,c().string.isRequired,c().number,c().func,c().string},1366:(e,t,a)=>{"use strict";a.d(t,{Ck:()=>s,wf:()=>r});var n=a(8767);let c=null;const r=async()=>{let e=0;return c=new Promise((t=>{const a=()=>{const c=n.parse(document.cookie).tk_ai||null;"string"!=typeof c||""===c?99<=e?t(null):(e+=1,setTimeout(a,50)):t(c)};a()})),c},s=async()=>await c},8465:(e,t,a)=>{"use strict";a.d(t,{V:()=>l,z:()=>i});var n=a(1455),c=a.n(n),r=a(3832);const s=(e=!1)=>async({experimentName:t,anonId:a})=>{if(!a)throw new Error("Tracking is disabled, can't fetch experimentAssignment");const n={experiment_name:t,anon_id:a??void 0,as_connected_user:e},s=(0,r.addQueryArgs)("jetpack/v4/explat/assignments",n);return await c()({path:s})},i=s(!1),l=s(!0)},8536:(e,t,a)=>{"use strict";a.d(t,{v:()=>c});var n=a(8343);const c=e=>{const t=e=>{n.D&&console.error("[ExPlat] Unable to send error to server:",e)};try{const{message:a,...c}=e,r={message:a,properties:{...c,context:"explat",explat_client:"jetpack"}};if(n.D)console.error("[ExPlat] ",e.message,e);else{const e=new window.FormData;e.append("error",JSON.stringify(r)),window.fetch("https://public-api.wordpress.com/rest/v1.1/js-error",{method:"POST",body:e}).catch(t)}}catch(e){t(e)}}},4082:(e,t,a)=>{"use strict";a.d(t,{Pg:()=>o,nQ:()=>m,rk:()=>p});var n=a(2226),c=a(1792),r=a(1366),s=a(8465),i=a(8536),l=a(8343);const o=()=>{(0,r.wf)().catch((e=>(0,i.v)({message:e.message})))};o();const u=(0,n.k)({fetchExperimentAssignment:s.z,getAnonId:r.Ck,logError:i.v,isDevelopmentMode:l.D}),{loadExperimentAssignment:m,dangerouslyGetExperimentAssignment:d}=u,{useExperiment:p,Experiment:h,ProvideExperimentData:g}=(0,c.A)(u),v=(0,n.k)({fetchExperimentAssignment:s.V,getAnonId:r.Ck,logError:i.v,isDevelopmentMode:l.D}),{loadExperimentAssignment:f,dangerouslyGetExperimentAssignment:w}=v,{useExperiment:E,Experiment:k,ProvideExperimentData:y}=(0,c.A)(v)},8343:(e,t,a)=>{"use strict";a.d(t,{D:()=>n});const n=!1},8848:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(2947),c=a(5918),r=a(8509),s=a(1040),i=a(1609),l=a.n(i),o=a(1504),u=a(357),m=a(8242),d=a(4526),p=a(1870),h=a(1617);function g(){const{recordEvent:e}=(0,d.A)(),{data:t=[],isLoading:a}=(0,u.A)({name:o.Md,queryFn:async e=>(await e.getUserLicenses())?.items}),{userConnectionData:g}=(0,p.A)(),[v,f]=(0,i.useState)(!1),w=g?.currentUser?.wpcomUser?.display_name||g?.currentUser?.wpcomUser?.login||g?.currentUser?.username,E=(0,i.useCallback)((()=>{e("jetpack_myjetpack_license_activation_back_link_click")}),[e]),k=(0,i.useCallback)((()=>{f(!0)}),[]),y=(0,i.useMemo)((()=>t.filter((({attached_at:e,revoked_at:t})=>null===e&&null===t))),[t]),{siteSuffix:A="",adminUrl:b=""}=(0,m.A$)();return l().createElement(n.A,{showHeader:!1,showBackground:!1},l().createElement(c.A,{horizontalSpacing:3,horizontalGap:3},l().createElement(r.A,null,l().createElement(h.A,{onClick:E,reload:v})),l().createElement(r.A,null,l().createElement(s.b,{currentRecommendationsStep:null,availableLicenses:y,fetchingAvailableLicenses:a,onActivationSuccess:k,siteAdminUrl:b,siteRawUrl:A,displayName:w}))))}},2450:(e,t,a)=>{"use strict";a.d(t,{A:()=>u,O:()=>l});var n=a(7425),c=a(3022),r=a(5739),s=a.n(r),i=a(9958);const l=e=>{const{children:t,className:a,onMouseEnter:n,onMouseLeave:r}=e,s=(0,c.A)(i.A.container,a);return React.createElement("div",{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r,className:s},t)},o=e=>{const{title:t,headerRightContent:a,className:c,children:r,onMouseEnter:s,onMouseLeave:o}=e;return React.createElement(l,{className:c,onMouseEnter:s,onMouseLeave:o},React.createElement("div",{className:i.A.title},React.createElement("div",{className:i.A.name},React.createElement(n.Ay,{variant:"title-medium"},t)),a),r)};o.propTypes={children:s().node,title:s().string.isRequired,className:s().string,headerRightContent:s().node,onMouseEnter:s().func,onMouseLeave:s().func};const u=o},2191:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(1113),c=a(991),r=a(3022),s=a(1609),i=a.n(s),l=a(28),o=a(4600);const u=({className:e,accessibleName:t})=>i().createElement(l.N_,{to:"/",className:(0,r.A)(o.A.link,e),"aria-label":t||null},i().createElement(n.A,{icon:c.A,className:o.A.icon}))},6176:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(7425),c=a(7723),r=a(1609),s=a(8837),i=a(9935),l=a(4367),o=a(4923),u=a(4526),m=a(1870),d=a(3981),p=a(2434),h=a(5410);const __=c.__,g=({admin:e,recommendation:t,slug:a,children:c,isDataLoading:g,Description:v=null,additionalActions:f=null,secondaryAction:w=null,upgradeInInterstitial:E=!1,primaryActionOverride:k,onMouseEnter:y,onMouseLeave:A,customLoadTracks:b})=>{const{isRegistered:j,isUserConnected:R}=(0,m.A)(),{recordEvent:C}=(0,u.A)(),{install:_,isPending:x}=(0,l.A)(a),{activate:N,isPending:z}=(0,i.A)(a),{detail:M,refetch:S,isLoading:L}=(0,o.A)(a),{name:V,description:P,requiresUserConnection:H,status:B,manageUrl:O}=M,I=(0,d.A)(s.NM.Connection),T=(0,r.useCallback)((()=>{j&&R||!H?N({}):I()}),[N,j,R,H,I]);(0,r.useEffect)((()=>{!j||B!==s.hp.SITE_CONNECTION_ERROR&&B!==s.hp.NEEDS_FIRST_SITE_CONNECTION||S()}),[j,B,S]);const F=(0,r.useCallback)((()=>{C("jetpack_myjetpack_product_card_manage_click",{product:a})}),[a,C]);return w||B!==s.hp.CAN_UPGRADE||(w={href:O,label:__("View","jetpack-my-jetpack"),onClick:F}),React.createElement(h.A,{name:V,Description:v||(()=>{const e=(0,p.A)(P);return React.createElement(n.Ay,{variant:"body-small",style:{flexGrow:1,marginBottom:"1rem"}},e)}),status:B,admin:e,recommendation:t,isFetching:z||x||L,isDataLoading:g,isInstallingStandalone:x,additionalActions:f,primaryActionOverride:k,secondaryAction:w,slug:a,onActivate:T,onInstallStandalone:_,upgradeInInterstitial:E,onMouseEnter:y,onMouseLeave:A,customLoadTracks:b},c)}},5403:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(6072),c=a.n(n),r=a(3924),s=a(9384),i=a(6427),l=a(7723),o=a(1113),u=a(3512),m=a(8395),d=a(9696);const __=l.__,p=e=>{const{title:t}=e;return React.createElement(s.ConnectScreen,c()({buttonLabel:__("Connect your user account","jetpack-my-jetpack"),loadingLabel:__("Connecting your account…","jetpack-my-jetpack"),images:[m],from:"my-jetpack"},e,{title:t||__("Unlock all the amazing features of Jetpack by connecting now","jetpack-my-jetpack")}),React.createElement("ul",{role:"list"},React.createElement("li",null,__("Receive instant downtime alerts","jetpack-my-jetpack")),React.createElement("li",null,__("Automatically share your content on social media","jetpack-my-jetpack")),React.createElement("li",null,__("Let your subscribers know when you post","jetpack-my-jetpack")),React.createElement("li",null,__("Receive notifications about new likes and comments","jetpack-my-jetpack")),React.createElement("li",null,__("Let visitors share your content on social media","jetpack-my-jetpack")),React.createElement("li",null,__("Create better content with powerful AI tools","jetpack-my-jetpack")),React.createElement("li",null,__("And more!","jetpack-my-jetpack")," ",React.createElement("a",{href:(0,r.A)("jetpack-features"),target:"_blank",className:d.A["all-features"],rel:"noreferrer"},__("See all Jetpack features","jetpack-my-jetpack"),React.createElement(o.A,{icon:u.A}),React.createElement(i.VisuallyHidden,{as:"span"},/* translators: accessibility text */
+__("(opens in a new tab)","jetpack-my-jetpack"))))))}},5242:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(7723),c=a(2822),r=a(5975),s=a(5519),i=a(9696),l=a(6579);const __=n.__,o=()=>React.createElement(React.Fragment,null,React.createElement("div",{className:i.A["account-description"]},__("On the next screen, you can connect with an existing account from any of these services or create a new one.","jetpack-my-jetpack")),React.createElement("ul",{className:i.A["account-images"],role:"list"},React.createElement("li",null,React.createElement("img",{src:l,className:i.A.wordpress,alt:"WordPress.com"})),React.createElement("li",null,React.createElement("img",{src:s,className:i.A.google,alt:"Google"})),React.createElement("li",null,React.createElement("img",{src:c,className:i.A.apple,alt:"Apple"})),React.createElement("li",null,React.createElement("img",{src:r,className:i.A.github,alt:"GitHub"}))))},1499:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(2947),c=a(5918),r=a(8509),s=a(7723),i=a(1870),l=a(5994),o=a(2191),u=a(5403),m=a(5242),d=a(9696);const __=s.__,p=()=>{const e=(0,l.A)(),{apiRoot:t,apiNonce:a,registrationNonce:s}=(0,i.A)();return React.createElement(n.A,{showHeader:!1,showBackground:!1},React.createElement(c.A,{horizontalSpacing:8,horizontalGap:0},React.createElement(r.A,{className:d.A["relative-col"]},React.createElement(o.A,{className:d.A["close-link"],accessibleName:__("Go back to previous screen","jetpack-my-jetpack")})),React.createElement(r.A,null,React.createElement(u.A,{from:"my-jetpack",redirectUri:e,apiRoot:t,apiNonce:a,registrationNonce:s,footer:React.createElement(m.A,null)}))))}},4596:(e,t,a)=>{"use strict";a.d(t,{A:()=>_});var n=a(7425),c=a(1112),r=a(3924),s=a(9384),i=a(7143),l=a(7723),o=a(3883),u=a(9783),m=a(7827),d=a(1113),p=a(3022),h=a(1609),g=a(4923),v=a(8242),f=a(8117),w=a(4526),E=a(1870),k=a(5042),y=a(3168),A=a(7757),b=a(7319),j=a(7193);const __=l.__,R=({text:e,actionText:t,onClick:a,status:c="success"})=>{let r=o.A,s="";return"success"===c&&(r=o.A,s=j.A.success),"error"===c&&(r=u.A,s=j.A.error),"warning"===c&&(r=u.A,s=j.A.warning),"unlock"===c&&(r=m.A,s=j.A.unlock),React.createElement("div",{className:j.A["list-item"]},React.createElement(n.Ay,{className:(0,p.A)(j.A["list-item-text"],s)},React.createElement(d.A,{icon:r}),e),t&&"success"!==c&&React.createElement(C,{actionText:t,onClick:a}))},C=({actionText:e,onClick:t})=>React.createElement(c.A,{variant:"link",weight:"regular",onClick:t},e),_=({apiRoot:e,apiNonce:t,redirectUri:a=null,title:o=__("Connection","jetpack-my-jetpack"),connectionInfoText:u=__("Jetpack connects your site and user account to the WordPress.com cloud to provide more powerful features.","jetpack-my-jetpack"),onDisconnected:m,connectedPlugins:d,connectedSiteId:_,context:x,onConnectUser:N=null})=>{const{isRegistered:z,isUserConnected:M,userConnectionData:S}=(0,E.A)({redirectUri:a}),{recordEvent:L}=(0,w.A)(),[V,P]=(0,h.useState)(!1),{setConnectionStatus:H,setUserIsConnecting:B}=(0,i.useDispatch)(s.CONNECTION_STORE_ID),O=N||B,I=S.currentUser?.wpcomUser?.avatar,{lifecycleStats:T}=(0,v.A$)(),{brokenModules:F}=T||{},U=(0,g.V)(),D=(0,f.A)(U).length>0,q=F?.needs_user_connection.length>0,J=F?.needs_site_connection.length>0,G=(0,h.useMemo)((()=>({user_connection_broken_modules:F?.needs_user_connection.join(", "),site_connection_broken_modules:F?.needs_site_connection.join(", ")})),[F]),$=(0,h.useCallback)((e=>t=>{t&&t.preventDefault(),L("jetpack_myjetpack_connection_manage_dialog_click",{...G,connection_type:e}),P(!0)}),[L,P,G]),W=$("user"),Q=$("site"),K=(0,h.useCallback)((e=>{e&&e.preventDefault(),P(!1)}),[P]),Z=(0,h.useCallback)((e=>{e&&e.preventDefault(),H({isActive:!1,isRegistered:!1,isUserConnected:!1}),m?.()}),[m,H]),Y=(0,h.useCallback)((()=>{L("jetpack_myjetpack_connection_learnmore_link_click",G)}),[L,G]),X=(0,h.useCallback)((e=>{e&&e.preventDefault(),L("jetpack_myjetpack_connection_connect_user_click",G),O()}),[O,L,G]),ee=(({isRegistered:e,hasSiteConnectionBrokenModules:t,handleConnectUser:a,openManageSiteConnectionDialog:n})=>e?{onClick:n,text:__("Site connected.","jetpack-my-jetpack"),actionText:__("Manage","jetpack-my-jetpack"),status:"success"}:t?{onClick:a,text:__("Missing site connection to enable some features.","jetpack-my-jetpack"),actionText:__("Connect","jetpack-my-jetpack"),status:"error"}:{onClick:a,text:__("Start with Jetpack.","jetpack-my-jetpack"),actionText:__("Connect your site with one click","jetpack-my-jetpack"),status:"warning"})({isRegistered:z,hasSiteConnectionBrokenModules:J,handleConnectUser:X,openManageSiteConnectionDialog:Q}),te=(({hasProductsThatRequireUserConnection:e,hasUserConnectionBrokenModules:t,isUserConnected:a,userConnectionData:n,openManageUserConnectionDialog:c,handleConnectUser:r})=>{if(!e&&!t&&!a)return{onClick:r,text:__("Unlock more of Jetpack","jetpack-my-jetpack"),actionText:__("Sign in","jetpack-my-jetpack"),status:"unlock"};if(e&&!a&&!t)return{onClick:r,text:__("Some features require authentication.","jetpack-my-jetpack"),actionText:__("Sign in","jetpack-my-jetpack"),status:"warning"};if(t)return{onClick:r,text:__("Missing authentication to enable all features.","jetpack-my-jetpack"),actionText:__("Sign in","jetpack-my-jetpack"),status:"error"};let s=null;return s=n.currentUser?.isMaster?n.currentUser?.wpcomUser?.display_name?(0,l.sprintf)(/* translators: placeholder is user name */
+__("Connected as %1$s (Owner).","jetpack-my-jetpack"),n.currentUser?.wpcomUser?.display_name):__("User connected (Owner).","jetpack-my-jetpack"):n.currentUser?.wpcomUser?.display_name?(0,l.sprintf)(/* translators: placeholder is user name */
+__("Connected as %1$s.","jetpack-my-jetpack"),n.currentUser?.wpcomUser?.display_name):__("User connected.","jetpack-my-jetpack"),{onClick:c,actionText:__("Manage","jetpack-my-jetpack"),text:s,status:"success"}})({hasProductsThatRequireUserConnection:D,hasUserConnectionBrokenModules:q,isUserConnected:M,userConnectionData:S,openManageUserConnectionDialog:W,handleConnectUser:X});return React.createElement("div",{id:"dylan",className:j.A["connection-status-card"]},React.createElement(n.H3,null,o),React.createElement(n.Ay,{variant:"body",mb:3},`${u} `,React.createElement(c.A,{href:(0,r.A)("why-the-wordpress-com-connection-is-important-for-jetpack"),variant:"link",weight:"regular",isExternalLink:!0,onClick:Y},__("Learn more about connections","jetpack-my-jetpack"))),React.createElement("div",{className:j.A.status},React.createElement("img",{src:k,alt:"",className:j.A.cloud}),React.createElement("div",{className:(0,p.A)(j.A.line,z?"":J?j.A.error:j.A.warning)}),React.createElement("div",{className:j.A["avatar-wrapper"]},React.createElement("img",{src:z?b:A,alt:"",className:j.A.jetpack}),(D||q)&&React.createElement("img",{src:M&&I?I:y,alt:"",className:j.A.avatar})),"success"===ee?.status&&ee?.actionText&&React.createElement("div",{className:j.A["connect-action"]},React.createElement(C,{onClick:ee?.onClick,actionText:ee?.actionText}))),React.createElement("div",null,React.createElement(R,ee),z&&React.createElement(R,te),M&&S?.connectionOwner&&!S.currentUser?.isMaster&&React.createElement(R,{text:(0,l.sprintf)(/* translators: placeholder is the username of the Jetpack connection owner */
+__("Also connected: %s (Owner).","jetpack-my-jetpack"),S.connectionOwner)})),React.createElement(s.ManageConnectionDialog,{apiRoot:e,apiNonce:t,onDisconnected:Z,connectedPlugins:d,connectedSiteId:_,connectedUser:S,isOpen:V,onClose:K,context:x}))}},3593:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(8837),c=a(4923),r=a(8117),s=a(1870),i=a(3981),l=a(4596);function o(){const{apiRoot:e,apiNonce:t,topJetpackMenuItemUrl:a,connectedPlugins:o}=(0,s.A)(),u=(0,i.A)(n.NM.Connection),m=(0,c.V)(),d=(0,r.A)(m);return React.createElement(l.A,{apiRoot:e,apiNonce:t,redirectUri:a,onConnectUser:u,connectedPlugins:o,requiresUserConnection:d.length>0,onDisconnected:()=>document?.location?.reload(!0)})}},5167:(e,t,a)=>{"use strict";a.d(t,{A:()=>h});var n=a(5918),c=a(8509),r=a(7425),s=a(6427),i=a(7723),l=a(2778),o=a(1609),u=a(3804),m=a(4526),d=a(9674),p=a(6225);const __=i.__,_n=i._n,h=()=>{const{recordEvent:e}=(0,m.A)(),{recommendedModules:t,redoEvaluation:a,removeEvaluationResult:i}=(0,u.A)();return(0,o.useEffect)((()=>{e("jetpack_myjetpack_evaluation_recommendations_view",{modules:t})}),[t,e]),React.createElement(n.A,{horizontalGap:2,horizontalSpacing:6},React.createElement(c.A,null,React.createElement(s.Flex,null,React.createElement(s.FlexItem,null,React.createElement(r.Ay,{variant:"headline-small",className:p.A.title},_n("Our recommendation for you","Our recommendations for you",t.length,"jetpack-my-jetpack")),React.createElement(r.Ay,null,__("Here are the tools that we think will help you reach your website goals:","jetpack-my-jetpack"))),React.createElement(s.FlexItem,null,React.createElement(s.DropdownMenu,{menuProps:{className:p.A["dropdown-menu"]},popoverProps:{position:"bottom left"},icon:l.A,label:__("Recommendations menu","jetpack-my-jetpack"),controls:[{title:__("Redo","jetpack-my-jetpack"),onClick:a},{title:__("Dismiss","jetpack-my-jetpack"),onClick:i}]})))),React.createElement(c.A,null,React.createElement(n.A,{tagName:"ul",className:p.A["recommendations-list"],horizontalGap:4,horizontalSpacing:2,fluid:!0},t.map((e=>{const t=d.z[e];return t&&React.createElement(c.A,{tagName:"li",key:e,lg:4},React.createElement(t,{recommendation:!0}))})))))}},1617:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(7723),c=a(1113),r=a(7474),s=a(1609),i=a.n(s),l=a(28),o=a(8870);const __=n.__;const u=function({onClick:e=()=>{},reload:t}){const a=t?"/?reload=true":"/";return i().createElement(l.N_,{to:a,className:o.A.link,onClick:e},i().createElement(c.A,{icon:r.A,className:o.A.icon}),__("Go back","jetpack-my-jetpack"))}},1651:(e,t,a)=>{"use strict";a.d(t,{k:()=>m});var n=a(1112),c=a(8478),r=a(6427),s=a(8443),i=a(7723),l=a(3022),o=a(1609),u=a(9331);a(4800);const __=i.__;function m({productName:e,giftedDate:t}){const[a,m]=(0,o.useState)(!1),d=(0,o.useCallback)((()=>m(!0)),[m]),p={position:"top center",placement:"top",animate:!0,noArrow:!1,resize:!1,flip:!1,offset:6,focusOnMount:"container",onClose:(0,o.useCallback)((()=>m(!1)),[m]),className:u.A.container},h=(0,l.A)(u.A.wrapper,"golden-token-icon-tooltip");return React.createElement("div",{className:h},React.createElement(n.A,{variant:"link",onClick:d},React.createElement(c.sT,{className:u.A.logo})),React.createElement("div",{className:u.A.helper},a&&React.createElement(r.Popover,p,React.createElement("div",null,React.createElement("div",{className:u.A.title},e),React.createElement("div",{className:u.A.content},(0,i.sprintf)(
+// translators: %1$s is a product name, %2$s is the date the product was gifted.
+__("%1$s was gifted on %2$s. It gives you access to a lifetime subscription of Jetpack VaultPress Backup and Jetpack Scan.","jetpack-my-jetpack"),e,(0,s.dateI18n)("F j, Y",t)))))))}},6894:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(6427),c=a(1609),r=a.n(c),s=a(146);const i=function(){const[e,t]=(0,c.useState)(!0),a=(0,c.useCallback)((()=>t(!1)),[]);if(!e)return null;if(!Object.hasOwn(window,"JP_IDENTITY_CRISIS__INITIAL_STATE"))return null;const{containerID:i,isSafeModeConfirmed:l}=window.JP_IDENTITY_CRISIS__INITIAL_STATE;return!i||l?null:r().createElement(n.Modal,{onRequestClose:a,overlayClassName:s.A.modal},r().createElement("div",{id:i,className:s.A.container}))}},2660:(e,t,a)=>{"use strict";a.d(t,{I:()=>l});var n=a(1883),c=a(6427),r=a(9491),s=a(1609),i=a(4526);a(6632);const l=({children:e,className:t,icon:a="info-outline",iconSize:l=14,tracksEventName:o,tracksEventProps:u={}})=>{const{recordEvent:m}=(0,i.A)(),d=(0,s.useRef)(),p=(0,r.useViewportMatch)("medium","<"),[h,g]=(0,s.useState)(!1),v=(0,s.useCallback)((()=>g((e=>(!0==!e&&o&&m(`jetpack_${o}`,{page:"my-jetpack",...u}),!e)))),[m,o,u]),f=(0,s.useCallback)((()=>{d.current&&!d.current.contains(document.activeElement)&&g(!1)}),[g,d]);return React.createElement("span",{className:t},React.createElement("button",{className:"info-tooltip__button",onClick:v,ref:d},React.createElement(n.A,{icon:a,size:l})),h&&React.createElement(c.Popover,{placement:p?"top-end":"right",noArrow:!1,offset:10,focusOnMount:"container",onClose:f},React.createElement("div",{className:"info-tooltip__content"},e)))}},3449:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(7506),c=a(3924),r=a(7723),s=a(1609),i=a.n(s),l=a(4526),o=a(4576);const __=r.__,u=e=>{const{isAgencyAccount:t=!1}=e,{recordEvent:a}=(0,l.A)();(0,s.useEffect)((()=>{a("jetpack_myjetpack_manage_banner_view",{})}),[a]);const r=(0,s.useCallback)((e=>{a("jetpack_myjetpack_manage_banner_click",{target:e,feature:"manage"})}),[a]),u=(0,s.useCallback)((()=>{r("jp-agencies-register-interest")}),[r]);return i().createElement(n.A,{icon:o,title:__("Manage client sites and grow your business","jetpack-my-jetpack"),description:__("Are you an agency or freelancer? We’re working on a new partnership program bringing together the best of Jetpack, Woo, WordPress.com, and Pressable. Get bulk discounts, referral commissions, and more.","jetpack-my-jetpack"),primaryCtaLabel:__("Sign up now","jetpack-my-jetpack"),primaryCtaURL:(0,c.A)("jetpack-for-agencies-register-interest"),primaryCtaIsExternalLink:!0,primaryCtaOnClick:u})}},2912:(e,t,a)=>{"use strict";a.d(t,{A:()=>V});var n=a(6072),c=a.n(n),r=a(442),s=a(8089),i=a(7656),l=a(2947),o=a(5918),u=a(8509),m=a(5640),d=a(8587),p=a(4082),h=a(3022),g=a(1609),v=a(6007),f=a(1504),w=a(3804),E=a(280),k=a(8242),y=a(9812),A=a(4526),b=a(1870),j=a(7436),R=a(3593),C=a(5167),_=a(6894),x=a(3449),N=a(3958),z=a(5487),M=a(8388),S=a(5055);const L=({message:e,title:t,options:a})=>{const{recordEvent:n}=(0,A.A)();(0,g.useEffect)((()=>{const e=a?.tracksArgs||{};n("jetpack_myjetpack_global_notice_view",{notice_id:a.id,...e})}),[a.id,n,a?.tracksArgs]);const[l]=(0,r.A)(["md"],[">"]),o=a.actions?.map((e=>React.createElement(s.A,c()({customClass:S.A.cta},e))));return React.createElement("div",{className:(0,h.A)(S.A.notice,{[S.A["bigger-than-medium"]]:l})},React.createElement(i.A,c()({hideCloseButton:!0},a,{title:t,actions:o}),React.createElement("div",{className:S.A.message},e)))};function V(){(0,p.rk)("explat_test_jetpack_implementation_aa_test"),(0,j.A)();const{redBubbleAlerts:e}=(0,k.A$)(),{jetpackManage:t={},adminUrl:a}=(0,k.A$)(),{isWelcomeBannerVisible:n}=(0,y.A)(),{isSectionVisible:c}=(0,w.A)(),{siteIsRegistered:r}=(0,b.A)(),{currentNotice:s}=(0,g.useContext)(v.g),{message:i,title:h,options:V}=s||{},{data:P,isLoading:H}=(0,E.A)({name:f._,query:{path:f.rR}}),{data:B,isLoading:O}=(0,E.A)({name:f.nw,query:{path:f.O2}}),I=P?.is_available,T=B?.user?.jwt,F=!O&&!H&&I&&T,U="1"===(0,k.A$)("userIsNewToJetpack"),{recordEvent:D}=(0,A.A)(),[q,J]=(0,g.useState)(!1);return(0,g.useLayoutEffect)((()=>{D("jetpack_myjetpack_page_view",{red_bubble_alerts:Object.keys(e).join(",")})}),[D,e]),window.location.hash.includes("?reload=true")&&(window.history.replaceState(null,"",window.location.href.replace("?reload=true","")),window.location.reload(),J(!0)),q?null:React.createElement(l.A,{siteAdminUrl:a},React.createElement("hr",{className:S.A.separator}),React.createElement(_.A,null),!U&&React.createElement(o.A,{horizontalSpacing:0},React.createElement(u.A,null,React.createElement("div",{id:"jp-admin-notices",className:"my-jetpack-jitm-card"}))),n?React.createElement(M.A,null,i&&r&&React.createElement(L,{message:i,title:h,options:V})):i&&React.createElement(o.A,{horizontalSpacing:3,horizontalGap:3},React.createElement(u.A,null,React.createElement(L,{message:i,title:h,options:V}))),c&&React.createElement(C.A,null),React.createElement(z.A,null),t.isEnabled&&React.createElement(o.A,{horizontalSpacing:6,horizontalGap:i?3:6},React.createElement(u.A,null,React.createElement(x.A,{isAgencyAccount:t.isAgencyAccount}))),React.createElement(m.A,null,React.createElement(o.A,{horizontalSpacing:8},React.createElement(u.A,{sm:4,md:4,lg:6},React.createElement(N.A,null)),React.createElement(u.A,{sm:4,md:4,lg:6},React.createElement(R.A,null)))),F&&React.createElement(d.A,{jwt_token:T}))}},3958:(e,t,a)=>{"use strict";a.d(t,{A:()=>b});var n=a(7425),c=a(1112),r=a(7723),s=a(1609),i=a(8837),l=a(1504),o=a(280),u=a(8242),m=a(4526),d=a(1870),p=a(3981),h=a(6256),g=a(3542),v=a(8252),f=a(1651),w=a(4334);const __=r.__,_n=r._n;function E({purchase:e={}}){const{product_name:t}=e;return React.createElement(React.Fragment,null,React.createElement(n.hE,null,t),React.createElement(k,e))}function k(e){const{expiry_message:t,product_name:a,subscribed_date:c}=e;return(0,v.b)(e)?React.createElement(n.Ay,{variant:"body",className:w.A["expire-date"]},React.createElement("span",{className:w.A["expire-date--with-icon"]},__("Never Expires","jetpack-my-jetpack")),React.createElement(f.k,{productName:a,giftedDate:c})):React.createElement(n.Ay,{variant:"body",className:w.A["expire-date"]},t)}function y({numberOfPurchases:e=0}){return React.createElement(React.Fragment,null,React.createElement(n.H3,null,_n("Your plan","Your plans",e,"jetpack-my-jetpack")),0===e&&React.createElement(n.Ay,{variant:"body"},__("Want to power up your Jetpack?","jetpack-my-jetpack")))}function A({numberOfPurchases:e}){const{recordEvent:t}=(0,m.A)(),{isUserConnected:a}=(0,d.A)();let n=__("Purchase a plan","jetpack-my-jetpack");e>=1&&(n=_n("Manage your plan","Manage your plans",e,"jetpack-my-jetpack"));const r=(0,s.useCallback)((()=>{t(e?"jetpack_myjetpack_plans_manage_click":"jetpack_myjetpack_plans_purchase_click")}),[e,t]),l=(0,p.A)(i.NM.Connection),o=(0,s.useCallback)((()=>{t("jetpack_myjetpack_activate_license_click"),a||l()}),[l,a,t]);let v=__("Activate a license","jetpack-my-jetpack");a||(v=__("Activate a license (requires a user connection)","jetpack-my-jetpack"));const{loadAddLicenseScreen:f="",adminUrl:E=""}=(0,u.A$)();return React.createElement("ul",null,React.createElement("li",{className:w.A["actions-list-item"]},React.createElement(c.A,{onClick:r,href:e?(0,h.A)():(0,g.A)(),weight:"regular",variant:"link",isExternalLink:!0},n)),f&&React.createElement("li",{className:w.A["actions-list-item"]},React.createElement(c.A,{onClick:o,href:a?`${E}admin.php?page=my-jetpack#/add-license`:void 0,variant:"link",weight:"regular"},v)))}function b(){const e=!!(0,u.A$)("userIsAdmin"),{data:t,isLoading:a,isError:n}=(0,o.A)({name:l.Ck,query:{path:l.tb}}),c=t&&!a&&!n,r=c?t.length:0;return React.createElement("div",{className:w.A.container},React.createElement(y,{numberOfPurchases:r}),React.createElement("div",{className:w.A.purchasesSection},c&&t.map((e=>React.createElement(E,{key:`purchase-${e.product_name}`,purchase:e})))),e&&React.createElement(A,{numberOfPurchases:r}))}},169:(e,t,a)=>{"use strict";a.d(t,{A:()=>y});var n=a(6072),c=a.n(n),r=a(1112),s=a(7723),i=a(1113),l=a(3512),o=a(3883),u=a(4969),m=a(3022),d=a(6941),p=a.n(d),h=a(1609),g=a(8837),v=a(4923),f=a(4526),w=a(1413),E=a(1208);const __=s.__,k=p()("my-jetpack:product-card:action-button"),y=({status:e,admin:t,name:a,slug:n,onActivate:d,additionalActions:p,primaryActionOverride:y,onManage:A,onFixConnection:b,isFetching:j,isInstallingStandalone:R,className:C,onAdd:_,onInstall:x,onLearnMore:N,upgradeInInterstitial:z,isOwned:M})=>{const[S,L]=(0,h.useState)(!1),[V,P]=(0,h.useState)({}),{detail:H}=(0,v.A)(n),{manageUrl:B,purchaseUrl:O}=H,I=!B,T=(0,h.useRef)(null),F=(0,h.useRef)(null),{recordEvent:U}=(0,f.A)();"jetpack-ai"===n&&k(n,H);const D=j||R,q=p?.length>0,J=(0,h.useMemo)((()=>({variant:D?void 0:"primary",disabled:D,size:"small",weight:"regular",className:C})),[D,C]),G=(0,h.useCallback)((()=>{switch("jetpack-ai"===n&&k(n,e),e){case g.hp.ABSENT:{const e=__("Learn more","jetpack-my-jetpack");return{...J,href:`#/add-${n}`,variant:"primary",label:e,onClick:N,...y&&g.hp.ABSENT in y&&y[g.hp.ABSENT]}}case g.hp.ABSENT_WITH_PLAN:{const e=__("Install Plugin","jetpack-my-jetpack");return{...J,variant:"primary",label:e,onClick:x,...y&&g.hp.ABSENT_WITH_PLAN in y&&y[g.hp.ABSENT_WITH_PLAN]}}case g.hp.NEEDS_FIRST_SITE_CONNECTION:return{...J,href:O||`#/add-${n}`,variant:"primary",label:__("Learn more","jetpack-my-jetpack"),onClick:_,...y&&g.hp.NEEDS_FIRST_SITE_CONNECTION in y&&y[g.hp.NEEDS_FIRST_SITE_CONNECTION]};case g.hp.NEEDS_PLAN:{const e=__("Get plan","jetpack-my-jetpack"),t=__("Learn more","jetpack-my-jetpack"),a=M?e:t;return{...J,href:O||`#/add-${n}`,variant:"primary",label:a,onClick:_,...y&&g.hp.NEEDS_PLAN in y&&y[g.hp.NEEDS_PLAN]}}case g.hp.CAN_UPGRADE:{const e=__("Upgrade","jetpack-my-jetpack"),t=__("Learn more","jetpack-my-jetpack"),a=O||z?e:t;return{...J,href:O||`#/add-${n}`,variant:"primary",label:a,onClick:_,...y&&g.hp.CAN_UPGRADE in y&&y[g.hp.CAN_UPGRADE]}}case g.hp.ACTIVE:{const e=__("View","jetpack-my-jetpack");return{...J,disabled:I||J?.disabled,href:B,variant:"secondary",label:e,onClick:A,...y&&g.hp.ACTIVE in y&&y[g.hp.ACTIVE]}}case g.hp.SITE_CONNECTION_ERROR:return{...J,href:"#/connection",variant:"primary",label:__("Connect","jetpack-my-jetpack"),onClick:b,...y&&g.hp.SITE_CONNECTION_ERROR in y&&y[g.hp.SITE_CONNECTION_ERROR]};case g.hp.USER_CONNECTION_ERROR:return{href:"#/connection",variant:"primary",label:__("Connect","jetpack-my-jetpack"),onClick:b,...y&&g.hp.USER_CONNECTION_ERROR in y&&y[g.hp.USER_CONNECTION_ERROR]};case g.hp.INACTIVE:case g.hp.MODULE_DISABLED:case g.hp.NEEDS_ACTIVATION:return{...J,variant:"secondary",label:__("Activate","jetpack-my-jetpack"),onClick:d,...y&&g.hp.INACTIVE in y&&y[g.hp.INACTIVE]};default:return null}}),[e,J,n,_,b,d,x,N,O,z,I,B,A,y,M]),$=(0,h.useMemo)((()=>q?[...p,G()]:[G()]),[p,G,q]),W=(0,h.useCallback)((()=>{U("jetpack_myjetpack_product_card_dropdown_toggle",{product:n,state:S?"closed":"open"})}),[S,U,n]),Q=(0,h.useCallback)((()=>{L(!S),W()}),[S,W]);if((0,h.useEffect)((()=>{P($[0])}),[$]),(0,w.A)(T,(e=>{F.current.contains(e.target)||(L(!1),W())})),!t)return React.createElement(r.A,c()({},J,{size:"small",variant:"link",weight:"regular"}),/* translators: placeholder is product name. */ /* translators: placeholder is product name. */
+(0,s.sprintf)(__("Learn about %s","jetpack-my-jetpack"),a));const K=q&&React.createElement("div",{ref:T,className:E.A["action-button-dropdown"]},React.createElement("ul",{className:E.A["dropdown-menu"]},[...p,G()].map((({label:e,isExternalLink:t},a)=>React.createElement("li",{key:a},React.createElement("button",{onClick:()=>{P($[a]),L(!1),U("jetpack_myjetpack_product_card_dropdown_action_click",{product:n,action:e})},className:E.A["dropdown-item"]},React.createElement("div",{className:E.A["dropdown-item-label"]},e,t&&React.createElement(i.A,{icon:l.A,size:16})),e===V.label&&React.createElement("div",{className:E.A["active-action-checkmark"]},React.createElement(i.A,{icon:o.A,size:24,fill:"white"}))))))));return React.createElement(React.Fragment,null,React.createElement("div",{className:(0,m.A)(E.A["action-button"],q?E.A["has-additional-actions"]:null)},React.createElement(r.A,c()({},J,V),V.label),q&&React.createElement("button",{className:(0,m.A)(E.A["dropdown-chevron"],"primary"===V.variant?E.A.primary:E.A.secondary),onClick:Q,ref:F},React.createElement(i.A,{icon:u.A,size:24,fill:"primary"===V.variant?"white":"black"})),S&&K))}},5410:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(6072),c=a.n(n),r=a(7723),s=a(3022),i=a(1609),l=a(8837),o=a(8242),u=a(4526),m=a(2450),d=a(169),p=a(6710),h=a(7879),g=a(1887),v=a(2854),f=a(1208);const __=r.__,w=e=>{const t={isFetching:!1,isInstallingStandalone:!1,onActivate:()=>{},...e},{name:a,Description:n,status:r,onActivate:w,isFetching:E,isDataLoading:k,isInstallingStandalone:y,slug:A,additionalActions:b,primaryActionOverride:j,secondaryAction:R,children:C,onInstallStandalone:_,onMouseEnter:x,onMouseLeave:N,recommendation:z,customLoadTracks:M}=e,{ownedProducts:S}=(0,o.A$)("lifecycleStats"),L=S?.includes(A),V=r===l.hp.SITE_CONNECTION_ERROR||r===l.hp.USER_CONNECTION_ERROR,P=r===l.hp.ABSENT||r===l.hp.ABSENT_WITH_PLAN,H=r===l.hp.NEEDS_PLAN,B=(0,s.A)({[f.A.plugin_absent]:P,[f.A["is-purchase-required"]]:H,[f.A["is-link"]]:P,[f.A["has-error"]]:V}),{recordEvent:O}=(0,u.A)(),I=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_activate_click",{product:A}),w()}),[A,w,O]),T=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_add_click",{product:A})}),[A,O]),F=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_manage_click",{product:A})}),[A,O]),U=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_fixconnection_click",{product:A})}),[A,O]),D=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_learnmore_click",{product:A})}),[A,O]),q=(0,i.useCallback)((()=>{O("jetpack_myjetpack_product_card_install_standalone_plugin_click",{product:A}),_({})}),[A,_,O]);return(0,i.useEffect)((()=>{O("jetpack_myjetpack_product_card_load",{product:A,status:r,...M})}),[O,A,r,M]),React.createElement(m.A,{title:a,className:(0,s.A)(f.A.container,B),headerRightContent:null,onMouseEnter:x,onMouseLeave:N},z&&React.createElement(p.A,{slug:A}),React.createElement(n,null),k?React.createElement("span",{className:f.A.loading},__("Loading…","jetpack-my-jetpack")):C,z?React.createElement(h.A,{slug:A}):React.createElement("div",{className:f.A.actions},React.createElement("div",{className:f.A.buttons},R&&R?.positionFirst&&React.createElement(g.A,R),React.createElement(d.A,c()({},t,{onActivate:I,onFixConnection:U,onManage:F,onAdd:T,onInstall:q,onLearnMore:D,className:f.A.button,additionalActions:b,primaryActionOverride:j,isOwned:L})),R&&!R?.positionFirst&&React.createElement(g.A,R)),React.createElement(v.A,{status:r,isFetching:E,isInstallingStandalone:y,isOwned:L})))}},6710:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7397),c=a(7723),r=a(3022),s=a(1208),i=a(6147);const __=c.__,l=({slug:e})=>{const{discountPrice:t,fullPrice:a,currencyCode:c}=(0,i.A)(e);return React.createElement("div",{className:s.A.priceContainer},t&&React.createElement("span",{className:s.A.price},(0,n.Ay)(t,c)),React.createElement("span",{className:(0,r.A)(s.A.price,t&&s.A.discounted)},(0,n.Ay)(a,c)),React.createElement("span",{className:s.A.term},__("/month, billed yearly","jetpack-my-jetpack")))}},7879:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(6072),c=a.n(n),r=a(1112),s=a(3022),i=a(1208),l=a(6147);const o=({slug:e})=>{const{secondaryAction:t,purchaseAction:a,isActivating:n}=(0,l.A)(e);return React.createElement("div",{className:i.A.actions},React.createElement("div",{className:(0,s.A)(i.A.buttons,i.A.upsell)},a&&React.createElement(r.A,c()({size:"small"},a),a.label),React.createElement(r.A,c()({size:"small",variant:"secondary",disabled:n},t),t.label)))}},1887:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(1112),c=a(7723);const __=c.__,r=e=>{const{shouldShowButton:t=()=>!0,...a}={size:"small",variant:"secondary",weight:"regular",label:__("Learn more","jetpack-my-jetpack"),...e};return!!t()&&React.createElement(n.A,a,a.label)}},2854:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7425),c=a(7723),r=a(3022),s=a(8837),i=a(1208);const __=c.__,l=({status:e,isFetching:t,isInstallingStandalone:a,isOwned:c})=>{const l=((e,t)=>{switch(e){case s.hp.ACTIVE:case s.hp.CAN_UPGRADE:return __("Active","jetpack-my-jetpack");case s.hp.INACTIVE:case s.hp.MODULE_DISABLED:case s.hp.NEEDS_ACTIVATION:case s.hp.NEEDS_FIRST_SITE_CONNECTION:case s.hp.ABSENT:return __("Inactive","jetpack-my-jetpack");case s.hp.ABSENT_WITH_PLAN:return __("Needs Plugin","jetpack-my-jetpack");case s.hp.USER_CONNECTION_ERROR:return __("Needs user account","jetpack-my-jetpack");case s.hp.SITE_CONNECTION_ERROR:return __("Needs connection","jetpack-my-jetpack");case s.hp.NEEDS_PLAN:{const e=__("Needs plan","jetpack-my-jetpack"),a=__("Inactive","jetpack-my-jetpack");return t?e:a}default:return __("Inactive","jetpack-my-jetpack")}})(e,c),o=(0,r.A)(i.A.status,((e,t)=>{switch(e){case s.hp.ACTIVE:case s.hp.CAN_UPGRADE:return i.A.active;case s.hp.ABSENT_WITH_PLAN:case s.hp.SITE_CONNECTION_ERROR:case s.hp.USER_CONNECTION_ERROR:return i.A.warning;case s.hp.INACTIVE:case s.hp.NEEDS_FIRST_SITE_CONNECTION:case s.hp.NEEDS_ACTIVATION:return i.A.inactive;case s.hp.NEEDS_PLAN:return t?i.A.warning:i.A.inactive;default:return i.A.inactive}})(e,c),{[i.A["is-fetching"]]:t||a});return React.createElement(n.Ay,{variant:"label",className:o},l)}},6147:(e,t,a)=>{"use strict";a.d(t,{A:()=>h});var n=a(9384),c=a(7723),r=a(1609),s=a(8837),i=a(9935),l=a(4923),o=a(8242),u=a(4526),m=a(1870);const __=c.__,d=(e,t)=>{const a=e.status===s.hp.ACTIVE&&(e.isUpgradableByBundle.length||e.isUpgradable),n=e.pricingForUi.fullPrice||e.pricingForUi.tiers?.upgraded?.fullPrice;return e.status===s.hp.CAN_UPGRADE||a?n?{label:__("Upgrade","jetpack-my-jetpack"),onClick:t}:null:{label:__("Purchase","jetpack-my-jetpack"),onClick:t}},p=(e,t)=>{!e.isPluginActive||e.status===s.hp.NEEDS_ACTIVATION||(e.status,s.hp.NEEDS_PLAN);return{label:__("Learn more","jetpack-my-jetpack"),href:`#/add-${e.slug}`}},h=e=>{const{recordEvent:t}=(0,u.A)(),{detail:a}=(0,l.A)(e),{wpcomProductSlug:c,wpcomFreeProductSlug:s,...h}=(e=>{const{tiers:t,wpcomFreeProductSlug:a}=e;if(e.tiers){const{discountPrice:e,fullPrice:n,currencyCode:c,wpcomProductSlug:r,quantity:s}=t.upgraded;return{wpcomFreeProductSlug:a,wpcomProductSlug:s?`${r}:-q-${s}`:r,discountPrice:e&&e!==n?e/12:null,fullPrice:n/12,currencyCode:c}}const{discountPricePerMonth:n,fullPricePerMonth:c,currencyCode:r,isIntroductoryOffer:s,wpcomProductSlug:i}=e;return{wpcomFreeProductSlug:a,wpcomProductSlug:i,discountPrice:s?n:null,fullPrice:c,currencyCode:r}})(a.pricingForUi),{isUserConnected:g}=(0,m.A)(),{myJetpackUrl:v,siteSuffix:f}=(0,o.A$)(),{activate:w,isPending:E}=(0,i.A)(e),{run:k}=(0,n.useProductCheckoutWorkflow)({from:"my-jetpack",productSlug:c,redirectUrl:v,connectAfterCheckout:!g,siteSuffix:f}),{run:y}=(0,n.useProductCheckoutWorkflow)({from:"my-jetpack",productSlug:s,redirectUrl:v,connectAfterCheckout:!g,siteSuffix:f}),A=((0,r.useCallback)((()=>{s?y():w({})}),[w,y,s]),(0,r.useCallback)((()=>{if(t("jetpack_myjetpack_evaluation_recommendations_checkout_click",{slug:e}),"crm"===e)return w({}),void window.open("https://jetpackcrm.com/pricing/","_blank");k()}),[w,t,k,e]));return{secondaryAction:p(a),purchaseAction:d(a,A),isActivating:E,...h}}},8412:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(6072),c=a.n(n),r=a(1504),s=a(6176);const i=e=>React.createElement(s.A,c()({slug:r.D_.JETPACK_AI,upgradeInInterstitial:!0},e))},9674:(e,t,a)=>{"use strict";a.d(t,{z:()=>h});var n=a(8412),c=a(6724),r=a(161),s=a(9838),i=a(3690),l=a(1686),o=a(4274),u=a(414),m=a(7769),d=a(4073),p=a(7631);const h={backup:r.A,protect:o.A,"anti-spam":c.A,boost:s.A,search:u.A,videopress:p.A,stats:d.A,crm:l.A,creator:i.A,social:m.A,ai:n.A,"jetpack-ai":n.A,extras:null,scan:null,security:null}},6724:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.ANTI_SPAM},e));o.propTypes={admin:s().bool.isRequired};const u=o},161:(e,t,a)=>{"use strict";a.d(t,{A:()=>C});var n=a(6072),c=a.n(n),r=a(3924),s=a(7425),i=a(6427),l=a(7723),o=a(3022),u=a(2290),m=a(5739),d=a.n(m),p=a(1609),h=a(8837),g=a(1504),v=a(4923),f=a(280),w=a(8242),E=a(4526),k=a(6581),y=a(6176),A=a(3649);const __=l.__,_n=l._n,b=g.D_.BACKUP,j=e=>{const{detail:t}=(0,v.A)(b),{status:a}=t;return a===h.hp.ACTIVE||a===h.hp.CAN_UPGRADE?React.createElement(R,c()({slug:b},e)):React.createElement(y.A,c()({slug:b},e))},R=e=>{const{data:t,isLoading:a}=(0,f.A)({name:g.Dz,query:{path:g.DB}}),n=t?.last_rewindable_event,i=n?.published,o=t?.undo_backup_id,{recordEvent:m}=(0,E.A)(),{siteSuffix:d=""}=(0,w.A$)(),p={href:(0,r.A)("jetpack-backup-undo-cta",{path:o,site:d}),size:"small",variant:"primary",weight:"regular",label:__("Undo","jetpack-my-jetpack"),onClick:()=>{m("jetpack_myjetpack_backup_card_undo_click",{product:e.slug,undo_backup_id:o})},isExternalLink:!0};return React.createElement(y.A,c()({},e,{showMenu:!0,isDataLoading:a,Description:n?()=>React.createElement(s.Ay,{variant:"body-small",className:A.A.description},React.createElement("span",null,__("Activity Detected","jetpack-my-jetpack")),React.createElement("span",{className:A.A.time},(e=>{if(!e)return"";const t=new Date-new Date(e);if(t>0){const e=Math.floor(t/864e5),a=Math.floor(t%864e5/36e5),n=Math.floor(t%36e5/6e4),c=Math.floor(t%6e4/1e3);return e>0?(0,l.sprintf)(
+// translators: %s is the number of days since the last backup
+_n("%s day ago","%s days ago",e,"jetpack-my-jetpack"),e):a>0?(0,l.sprintf)(
+// translators: %s is the number of hours since the last backup
+_n("%s hour ago","%s hours ago",a,"jetpack-my-jetpack"),a):n>0?(0,l.sprintf)(
+// translators: %s is the number of minutes since the last backup
+_n("%s minute ago","%s minutes ago",n,"jetpack-my-jetpack"),n):(0,l.sprintf)(
+// translators: %s is the number of seconds since the last backup
+_n("%s second ago","%s seconds ago",c,"jetpack-my-jetpack"),c)}})(i))):null,additionalActions:n?[p]:[]}),n?React.createElement("div",{className:A.A.activity},React.createElement(u.A,{icon:n.gridicon,size:24}),React.createElement("p",{className:A.A.summary},n.summary)):null)};j.propTypes={admin:d().bool.isRequired},(e=>{const{data:t,isLoading:a}=(0,f.A)({name:g.gw,query:{path:g.Sm}}),n=(0,p.useMemo)((()=>{const e=[];return t?(Object.keys(t).forEach((a=>{0!==t[a]&&e.push([a,t[a]])})),e.sort(((e,t)=>e[1]{const a=e[0].split("_")[1],n=e[1];return React.createElement("li",{className:(0,o.A)(A.A["main-stat"],`main-stat-${t}`),key:t+a},React.createElement(React.Fragment,null,React.createElement("span",{className:(0,o.A)(A.A["visual-stat"]),"aria-hidden":"true"},(e=>{switch(e){case"post":return React.createElement(u.A,{icon:"posts",size:24});case"page":return React.createElement(u.A,{icon:"pages",size:24});default:return React.createElement(u.A,{icon:e,size:24})}})(a),React.createElement("span",null,(0,k.A)(n))),React.createElement(i.VisuallyHidden,null,({comment:e=>(0,l.sprintf)(
+// translators: %d is the number of comments
+_n("%d comment","%d comments",e,"jetpack-my-jetpack"),e),post:e=>(0,l.sprintf)(
+// translators: %d is the number of posts
+_n("%d post","%d posts",e,"jetpack-my-jetpack"),e),page:e=>(0,l.sprintf)(
+// translators: %d is the number of pages
+_n("%d page","%d pages",e,"jetpack-my-jetpack"),e),image:e=>(0,l.sprintf)(
+// translators: %d is the number of images
+_n("%d image","%d images",e,"jetpack-my-jetpack"),e),video:e=>(0,l.sprintf)(
+// translators: %d is the number of videos
+_n("%d video","%d videos",e,"jetpack-my-jetpack"),e),audio:e=>(0,l.sprintf)(
+// translators: %d is the number of files
+_n("%d audio file","%d audio files",e,"jetpack-my-jetpack"),e)}[c=a]||(e=>`${e} ${c}`))(n))));var c})))))}).propTypes={productData:d().object};const C=j},9520:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(8454),c=a(6461),r=a(580),s=a(6427),i=a(9491),l=a(7723),o=a(1113),u=a(2510),m=a(1609),d=a(8837),p=a(4923),h=a(8242),g=a(4526),v=a(1870),f=a(6683);a(2106);const __=l.__,w=()=>{const{recordEvent:e}=(0,g.A)(),[t,a]=(0,m.useState)(!1),[l,w]=(0,m.useState)(""),[E,k]=(0,m.useState)(null),[y,A]=(0,m.useState)(null),[b,j]=(0,m.useState)(!1),[R,C]=(0,m.useState)(!1),[_,x]=(0,m.useState)(!1),N=(0,i.useViewportMatch)("medium","<"),{siteUrl:z="",latestBoostSpeedScores:M}=(0,h.A$)(),{apiRoot:S,apiNonce:L,isSiteConnected:V}=(0,v.A)(),{detail:P}=(0,p.A)("boost"),{status:H}=P,B=H===d.hp.ACTIVE||H===d.hp.CAN_UPGRADE,O=(e,t)=>{const{mobile:a,desktop:n}=t||{};var c,r;a&&n&&e((c=a,r=n,Math.round((c+r)/2)))},I=e=>{const{scores:t,previousScores:a}=e||{};O(k,t),O(A,a),(e=>{const{mobile:t,desktop:a}=e||{};t&&a&&w((0,n.T)(t,a))})(t)},T=async()=>{V?(a(!0),(0,n.sE)(!0,S,z,L).then((e=>{const t=(0,n.T)(e.current.mobile,e.current.desktop);w(t),O(k,e.current),O(A,M.scores),a(!1)})).catch((t=>{e("jetpack_boost_speed_score_error",{feature:"jetpack-boost",position:"my-jetpack",error:t}),M&&M.scores?I(M):j(!0),a(!1)}))):j(!0)},F=(0,m.useMemo)((()=>y&&E?E{C(!0)}),[C]),q=(0,m.useCallback)((()=>{C(!1)}),[C]);return(0,m.useEffect)((()=>{M?B?(0,n.US)(1e3*M.timestamp)<1?I(M):T():(0,n.US)(1e3*M.timestamp)<14?I(M):T():T()}),[]),(0,m.useEffect)((()=>{t||!R||_||(e("jetpack_boost_card_tooltip_viewed",{feature:"jetpack-boost",position:"my-jetpack"}),x(!0))}),[t,R,e,_]),!b&&React.createElement("div",{className:"mj-boost-speed-score",role:"presentation",onMouseEnter:D,onMouseLeave:q,onClick:R?q:D,onFocus:D,onBlur:q},t?React.createElement(c.A,{color:"#23282d",size:16}):React.createElement(React.Fragment,null,React.createElement("div",{className:"mj-boost-speed-score__grade"},React.createElement("span",null,__("Your website’s overall speed score:","jetpack-my-jetpack")),React.createElement("span",{className:"mj-boost-speed-score__grade--letter"},l,!t&&R&&React.createElement(s.Popover,{placement:N?"top-end":"top-start",noArrow:!1,offset:10},React.createElement("div",{className:"boost-score-tooltip__parent"},React.createElement("p",{className:"boost-score-tooltip__heading"},__("Site speed performance:","jetpack-my-jetpack")," ",l),React.createElement("p",{className:"boost-score-tooltip__content"},U))))),React.createElement("div",{className:"mj-boost-speed-score__bar"},React.createElement(r.A,{score:E,active:E>0,isLoading:t,showPrevScores:!1,scoreBarType:"desktop",noBoostScoreTooltip:null})),!!F&&React.createElement("div",{className:"mj-boost-speed-score__increase"},React.createElement(o.A,{size:18,icon:u.A}),React.createElement("span",null,F))))}},9838:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(7723),s=a(8837),i=a(1504),l=a(6176),o=a(9520);const __=r.__,u=e=>{const t={[s.hp.ABSENT]:{label:__("Boost your site","jetpack-my-jetpack")}};return React.createElement(l.A,c()({slug:i.D_.BOOST,primaryActionOverride:t},e),React.createElement(o.A,null))}},6683:(e,t,a)=>{"use strict";a.d(t,{R:()=>r});var n=a(7723),c=a(4923);const __=n.__;function r({speedLetterGrade:e,boostScoreIncrease:t}){const{detail:a}=(0,c.A)("boost"),{isPluginActive:r,hasPaidPlanForProduct:s}=a;if(r){if(s){if(t)return(0,n.sprintf)(/* translators: %d is the number (positive integer) of points the speed has increased */
+__("Your speed has improved by %d points! Boost is working to enhance your performance with automated tools.","jetpack-my-jetpack"),t);switch(e){case"A":return __("Your site is fast! Boost is working to enhance your performance with automated tools.","jetpack-my-jetpack");case"B":case"C":case"D":case"E":case"F":return __("Visit the Boost dashboard to view your historical speed scores and manage your product settings.","jetpack-my-jetpack");default:return __("Visit the Boost dashboard to view your site’s speed scores and manage your product settings.","jetpack-my-jetpack")}}if(t)return(0,n.sprintf)(/* translators: %d is the number (integer) of points the speed has increased */
+__("Your speed has improved by %d points! Upgrade Boost to unlock automated CSS and image optimization tools to maintain your high score.","jetpack-my-jetpack"),t);switch(e){case"A":return __("Your site is fast! But maintaining a high speed isn’t easy. Upgrade Boost to use automated CSS and image optimization tools to improve your performance on the go.","jetpack-my-jetpack");case"B":return __("You are one step away from making your site blazing fast. Upgrade Boost to use automated CSS and image optimization tools to improve your performance.","jetpack-my-jetpack");default:return __("Improve your performance with automated CSS and image optimization tools by upgrading Boost.","jetpack-my-jetpack")}}switch(e){case"A":return __("Your site is fast! But maintaining a high speed isn’t easy. Use Boost’s automated acceleration tools to optimize your performance on the go.","jetpack-my-jetpack");case"B":return __("You are one step away from making your site blazing fast. Install Boost to enhance your site’s performance like top websites, no developer needed.","jetpack-my-jetpack");default:return __("Your site needs performance improvements. Make your site blazing fast with Boost’s simple dashboard and acceleration tools.","jetpack-my-jetpack")}}},3690:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.CREATOR,upgradeInInterstitial:!0},e));o.propTypes={admin:s().bool.isRequired};const u=o},1686:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.CRM},e));o.propTypes={admin:s().bool.isRequired};const u=o},5487:(e,t,a)=>{"use strict";a.d(t,{A:()=>R});var n=a(8509),c=a(5918),r=a(766),s=a(7425),i=a(7723),l=a(1609),o=a(1504),u=a(8242),m=a(1035),d=a(8412),p=a(6724),h=a(161),g=a(9838),v=a(3690),f=a(1686),w=a(4274),E=a(414),k=a(7769),y=a(4073),A=a(1218),b=a(7631);const __=i.__,j=({slugs:e})=>{const{showFullJetpackStatsCard:t=!1}=(0,u.A$)("myJetpackFlags"),{isAtomic:a=!1,userIsAdmin:r=!1}=(0,u.A$)(),s={backup:h.A,protect:w.A,"anti-spam":p.A,boost:g.A,search:E.A,videopress:b.A,stats:y.A,crm:f.A,creator:a?null:v.A,social:k.A,"jetpack-ai":d.A},i=e.filter((e=>(e!==o.D_.STATS||!t)&&!!s[e]));return React.createElement(React.Fragment,null,e.includes("stats")&&t&&React.createElement(n.A,{className:A.A.fullStatsCard},React.createElement(m.A,null)),React.createElement(c.A,{className:A.A.cardlist,tagName:"ul",fluid:!0,horizontalSpacing:0,horizontalGap:3},i.map((e=>{const t=s[e];return React.createElement(n.A,{tagName:"li",sm:4,md:4,lg:4,key:e},React.createElement(t,{admin:"1"===r}))}))))},R=({noticeMessage:e})=>{const{ownedProducts:t=[],unownedProducts:a=[]}=(0,u.A$)("lifecycleStats"),i=(0,l.useMemo)((()=>t.length>0?__("Discover more","jetpack-my-jetpack"):__("Discover all Jetpack Products","jetpack-my-jetpack")),[t.length]),o=e=>e.filter((e=>"scan"!==e&&"security"!==e&&"extras"!==e)),m=o(t),d=o(a);return React.createElement(React.Fragment,null,m.length>0&&React.createElement(r.A,null,React.createElement(c.A,{horizontalSpacing:6,horizontalGap:e?3:6},React.createElement(n.A,null,React.createElement(n.A,{sm:4,md:8,lg:12,className:A.A.cardListTitle},React.createElement(s.Ay,{variant:"headline-small"},__("My products","jetpack-my-jetpack"))),React.createElement(j,{slugs:m})))),d.length>0&&React.createElement(c.A,{horizontalSpacing:6,horizontalGap:e?3:6},React.createElement(n.A,null,React.createElement(n.A,{sm:4,md:8,lg:12,className:A.A.cardListTitle},React.createElement(s.Ay,{variant:"headline-small"},i)),React.createElement(j,{slugs:d}))))}},3293:(e,t,a)=>{"use strict";a.d(t,{Q:()=>h});var n=a(7723),c=a(3022),r=a(4923),s=a(8242),i=a(1870),l=a(2660),o=a(1218),u=a(6068),m=a(850),d=a(4516),p=a(7915);const __=n.__,h=()=>{const{detail:e}=(0,r.A)("protect"),{isPluginActive:t=!1}=e||{},{isSiteConnected:a}=(0,i.A)(),{protect:{wafConfig:n}}=(0,s.A$)(),{jetpack_waf_automatic_rules:c}=n||{};return t&&a?c?React.createElement(g,{status:"active"}):React.createElement(g,{status:"inactive"}):React.createElement(g,{status:"off"})};function g({status:e}){const{detail:t}=(0,r.A)("protect"),{hasPaidPlanForProduct:a=!1}=t||{},n=(0,p.T)(),{autoFirewallTooltip:s}=n;return"active"===e?React.createElement(React.Fragment,null,React.createElement("div",{className:o.A.valueSectionHeading},__("Auto-Firewall","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:d,alt:__("Shield icon - Auto-Firewall Status: On","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("On","jetpack-my-jetpack")))):"inactive"===e?React.createElement(React.Fragment,null,React.createElement("div",{className:(0,c.A)(o.A.valueSectionHeading,"value-section__heading")},__("Auto-Firewall","jetpack-my-jetpack"),React.createElement(l.I,{tracksEventName:"protect_card_tooltip_open",tracksEventProps:{location:"auto-firewall",status:e,feature:"jetpack-protect",has_paid_plan:a}},React.createElement(React.Fragment,null,React.createElement("h3",null,s.title),React.createElement("p",null,s.text)))),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:u,alt:__("Shield icon - Auto-Firewall Status: Inactive","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Inactive","jetpack-my-jetpack")))):React.createElement(React.Fragment,null,React.createElement("div",{className:o.A.valueSectionHeading},__("Auto-Firewall","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:m,alt:__("Shield icon - Auto-Firewall Status: Off","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Off","jetpack-my-jetpack"))))}},4274:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(6072),c=a.n(n),r=a(1504),s=a(6176),i=a(7765);const l=e=>React.createElement(s.A,c()({},e,{slug:r.D_.PROTECT,upgradeInInterstitial:!0}),React.createElement(i.A,null))},66:(e,t,a)=>{"use strict";a.d(t,{f:()=>g});var n=a(7723),c=a(3022),r=a(4923),s=a(8242),i=a(1870),l=a(6581),o=a(3658),u=a(2660),m=a(1218),d=a(850),p=a(4538),h=a(7915);const __=n.__,g=()=>{const{detail:e}=(0,r.A)("protect"),{isPluginActive:t=!1}=e||{},{isSiteConnected:a}=(0,i.A)(),{protect:{wafConfig:n}}=(0,s.A$)(),{blocked_logins:c,brute_force_protection:l}=n||{};return(t||(0,o.w)())&&a?l?React.createElement(v,{status:"active"}):React.createElement(v,{status:"inactive"}):a&&c>0?React.createElement(v,{status:"inactive"}):React.createElement(v,{status:"off"})};function v({status:e}){const{protect:{wafConfig:t}}=(0,s.A$)(),{blocked_logins:a}=t||{},n=(0,h.T)(),{blockedLoginsTooltip:r}=n;return"active"===e?a>0?React.createElement(React.Fragment,null,React.createElement("div",{className:m.A.valueSectionHeading},__("Logins Blocked","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",{className:"logins_blocked__count"},(0,l.A)(a)))):React.createElement(React.Fragment,null,React.createElement("div",{className:(0,c.A)(m.A.valueSectionHeading,"value-section__heading")},__("Logins Blocked","jetpack-my-jetpack"),React.createElement(u.I,{tracksEventName:"protect_card_tooltip_open",tracksEventProps:{location:"blocked-logins",status:e,feature:"jetpack-protect",message:"no data yet"}},React.createElement(React.Fragment,null,React.createElement("h3",null,r.title),React.createElement("p",null,r.text)))),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:p,alt:__("Shield icon - Brute Force Protection Status: Active","jetpack-my-jetpack")})))):"inactive"===e?React.createElement(React.Fragment,null,React.createElement("div",{className:(0,c.A)(m.A.valueSectionHeading,"value-section__heading")},__("Logins Blocked","jetpack-my-jetpack"),React.createElement(u.I,{tracksEventName:"protect_card_tooltip_open",tracksEventProps:{location:"blocked-logins",feature:"jetpack-protect",status:e}},React.createElement(React.Fragment,null,React.createElement("h3",null,r.title),React.createElement("p",null,r.text)))),React.createElement("div",{className:"value-section__data"},a>0?React.createElement(React.Fragment,null,React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:d,alt:__("Shield icon - Brute Force Protection Status: Inactive","jetpack-my-jetpack")})),React.createElement("div",{className:"logins_blocked__count"},(0,l.A)(a))):React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:d,alt:__("Shield icon - Brute Force Protection Status: Inactive","jetpack-my-jetpack")})))):React.createElement(React.Fragment,null,React.createElement("div",{className:m.A.valueSectionHeading},__("Logins Blocked","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:d,alt:__("Shield icon - Brute Force Protection Status: Off","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Off","jetpack-my-jetpack"))))}},7765:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(4923),c=a(2660),r=a(3293),s=a(66),i=a(1512),l=a(2584),o=a(7915);a(538);const u=()=>{const{detail:e}=(0,n.A)("protect"),{isPluginActive:t=!1}=e||{},a=(0,l.A)(),u=(0,o.T)(),{pluginsThemesTooltip:m}=u;return React.createElement(React.Fragment,null,React.createElement("div",{className:"value-section__last-scan"},a&&React.createElement("div",null,a),!t&&React.createElement(c.I,{tracksEventName:"protect_card_tooltip_open",tracksEventProps:{location:"plugins&themes",feature:"jetpack-protect",status:"inactive"}},React.createElement(React.Fragment,null,React.createElement("h3",null,m.title),React.createElement("p",null,m.text)))),React.createElement("div",{className:"value-section"},React.createElement("div",{className:"value-section__scan-threats"},React.createElement(i.v,null)),React.createElement("div",{className:"value-section__auto-firewall"},React.createElement(r.Q,null)),React.createElement("div",{className:"value-section__logins-blocked"},React.createElement(s.f,null))))}},1512:(e,t,a)=>{"use strict";a.d(t,{v:()=>E});var n=a(1883),c=a(6427),r=a(9491),s=a(7723),i=a(3022),l=a(1609),o=a(4923),u=a(8242),m=a(4526),d=a(1870),p=a(2660),h=a(1218),g=a(850),v=a(4538),f=a(4516),w=a(7915);const __=s.__,E=()=>{const{detail:e}=(0,o.A)("protect"),{isPluginActive:t=!1,hasPaidPlanForProduct:a}=e||{},{isSiteConnected:n}=(0,d.A)(),{protect:{scanData:c}}=(0,u.A$)(),{plugins:r,themes:s,num_threats:i=0}=c||{},m=(0,l.useMemo)((()=>{const{core:e,database:t,files:a,num_plugins_threats:n,num_themes_threats:i}=c||{};return[...n?r.reduce(((e,t)=>e.concat(t.threats)),[]):[],...i?s.reduce(((e,t)=>e.concat(t.threats)),[]):[],...e?.threats??[],...t,...a].reduce(((e,t)=>t.severity>=5?e+=1:e),0)}),[r,s,c]);return t&&n?a?i?React.createElement(k,{numThreats:i,criticalThreatCount:m}):React.createElement(y,{status:"success"}):i?React.createElement(k,{numThreats:i}):React.createElement(y,{status:"partial"}):React.createElement(y,{status:"off"})};function k({numThreats:e,criticalThreatCount:t}){const{recordEvent:a}=(0,m.A)(),s=(0,l.useRef)(),o=(0,r.useViewportMatch)("medium","<"),[u,d]=(0,l.useState)(!1),p=(0,w.T)(),{scanThreatsTooltip:g}=p,v=(0,l.useCallback)((()=>d((t=>(!0==!t&&a("jetpack_protect_card_tooltip_open",{page:"my-jetpack",feature:"jetpack-protect",location:"scan",has_paid_plan:!0,threats:e}),!t)))),[e,a]),f=(0,l.useCallback)((()=>{s.current&&!s.current.contains(document.activeElement)&&d(!1)}),[d,s]);return t?React.createElement(React.Fragment,null,React.createElement("div",{className:(0,i.A)(h.A.valueSectionHeading,"value-section__heading")},__("Threats","jetpack-my-jetpack"),React.createElement("div",{className:"scan-threats__critical-threat-container"},React.createElement("button",{className:"info-tooltip__button",onClick:v,ref:s},React.createElement(n.A,{className:"scan_threats__icon-critical",icon:"info",size:14}),React.createElement("span",{className:"scan-threats__critical-threat-count"},t)),u&&React.createElement(c.Popover,{placement:o?"top-end":"right",noArrow:!1,offset:10,focusOnMount:"container",onClose:f},React.createElement(React.Fragment,null,React.createElement("h3",null,g.title),React.createElement("p",null,g.text))))),React.createElement("div",{className:"value-section__data"},React.createElement("div",{className:"scan-threats__critical-threats"},React.createElement("div",{className:"scan-threats__threat-count"},e)))):React.createElement(React.Fragment,null,React.createElement("div",{className:h.A.valueSectionHeading},__("Threats","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",{className:"scan-threats__threat-count"},e)))}function y({status:e}){const t=(0,w.T)(),{scanThreatsTooltip:a}=t;return"success"===e?React.createElement(React.Fragment,null,React.createElement("div",{className:h.A.valueSectionHeading},__("Scan","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:f,alt:__("Shield icon - Scan Status: Secure","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Secure","jetpack-my-jetpack")))):"partial"===e?React.createElement(React.Fragment,null,React.createElement("div",{className:(0,i.A)(h.A.valueSectionHeading,"value-section__heading")},__("Scan","jetpack-my-jetpack"),React.createElement(p.I,{tracksEventName:"protect_card_tooltip_open",tracksEventProps:{location:"scan",status:e,feature:"jetpack-protect",has_paid_plan:!1,threats:0}},React.createElement(React.Fragment,null,React.createElement("h3",null,a.title),React.createElement("p",null,a.text)))),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:v,alt:__("Shield icon - Scan Status: Partial","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Partial","jetpack-my-jetpack")))):React.createElement(React.Fragment,null,React.createElement("div",{className:h.A.valueSectionHeading},__("Scan","jetpack-my-jetpack")),React.createElement("div",{className:"value-section__data"},React.createElement("div",null,React.createElement("img",{className:"value-section__status-icon",src:g,alt:__("Shield icon - Scan Status: Off","jetpack-my-jetpack")})),React.createElement("div",{className:"value-section__status-text"},__("Off","jetpack-my-jetpack"))))}},2584:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7723),c=a(1609),r=a(4923),s=a(8242),i=a(4542);const __=n.__,_n=n._n,l=()=>{const{detail:e}=(0,r.A)("protect"),{isPluginActive:t=!1}=e||{},{plugins:a,themes:l,protect:{scanData:o}}=(0,s.A$)(),{plugins:u,themes:m,last_checked:d=null}=o||{},p=u.length||Object.keys(a).length,h=m.length||Object.keys(l).length,g=!!d&&(0,i._)(Date.parse(d));return(0,c.useMemo)((()=>t?g?(0,n.sprintf)(/* translators: %s is how long ago since the last scan took place, i.e.- "17 hours ago" */
+__("Last scan: %s","jetpack-my-jetpack"),g):null:(0,n.sprintf)(/* translators: %d is the number of plugins installed on the site. */
+_n("%d plugin","%d plugins",p,"jetpack-my-jetpack"),p)+" "+/* translators: The ampersand symbol here (&) is meaning "and". */
+__("&","jetpack-my-jetpack")+" "+(0,n.sprintf)(/* translators: %d is the number of themes installed on the site. */
+_n("%d theme","%d themes",h,"jetpack-my-jetpack").replace(" "," "),h)),[t,g,p,h])}},7915:(e,t,a)=>{"use strict";a.d(t,{T:()=>m});var n=a(6087),c=a(7723),r=a(1609),s=a(1504),i=a(4923),l=a(8242),o=a(4526),u=a(3658);const __=c.__,_n=c._n;function m(){const e=s.D_.PROTECT,{detail:t}=(0,i.A)(e),{isPluginActive:a,hasPaidPlanForProduct:m}=t||{},{recordEvent:d}=(0,o.A)(),{plugins:p,themes:h,protect:{scanData:g,wafConfig:v}}=(0,l.A$)(),{plugins:f,themes:w,num_threats:E=0}=g||{},{jetpack_waf_automatic_rules:k,blocked_logins:y,brute_force_protection:A}=v||{},b=f.length||Object.keys(p).length,j=w.length||Object.keys(h).length,R=(0,r.useMemo)((()=>a?"admin.php?page=jetpack-protect#/firewall":(0,u.w)()?"admin.php?page=jetpack#/settings":null),[a]),C=(0,r.useCallback)((()=>{d("jetpack_protect_card_tooltip_content_link_click",{page:"my-jetpack",feature:"jetpack-protect",location:"auto-firewall-tooltip",path:R})}),[d,R]),_=a||(0,u.w)(),x=(0,r.useMemo)((()=>0===y?A?{title:__("Brute Force Protection: Active","jetpack-my-jetpack"),text:__("Brute Force Protection is actively blocking malicious login attempts. The number of blocked login attempts will display here soon!","jetpack-my-jetpack")}:{title:__("Brute Force Protection: Inactive","jetpack-my-jetpack"),text:R?(0,n.createInterpolateElement)((0,c.sprintf)(/* translators: %s is the location/page where the settings are located. Either "firewall settings" or "Jetpack settings". */
+__("Brute Force Protection is disabled and not actively blocking malicious login attempts. Go to %s to activate it.","jetpack-my-jetpack"),a?"firewall settings":"Jetpack settings"),{a:(0,r.createElement)("a",{href:R,onClick:C})}):__("Brute Force Protection is disabled and not actively blocking malicious login attempts.","jetpack-my-jetpack")}:A?void 0:_?{title:__("Brute Force Protection: Inactive","jetpack-my-jetpack"),text:R?(0,n.createInterpolateElement)((0,c.sprintf)(/* translators: %s is the location/page where the settings are located. Either "firewall settings" or "Jetpack settings". */
+__("Brute Force Protection is disabled and not actively blocking malicious login attempts. Go to %s to activate it.","jetpack-my-jetpack"),a?"firewall settings":"Jetpack settings"),{a:(0,r.createElement)("a",{href:R,onClick:C})}):__("Brute Force Protection is disabled and not actively blocking malicious login attempts.","jetpack-my-jetpack")}:{title:__("Brute Force Protection: Inactive","jetpack-my-jetpack"),text:__("For Brute Force Protection, activate the Jetpack or Protect plugin and enable it in settings.","jetpack-my-jetpack")}),[y,A,_,a,R,C]);return{pluginsThemesTooltip:{title:__("Improve site safety: secure plugins & themes","jetpack-my-jetpack"),text:(0,c.sprintf)(/* translators: %1$s the singular or plural of number of plugin(s), and %2$s is the singular or plural of the number of theme(s). */
+__("Your site has %1$s and %2$s lacking security measures. Improve your site’s safety by adding protection at no cost.","jetpack-my-jetpack"),(0,c.sprintf)(/* translators: %d is the number of plugins installed on the site. */
+_n("%d plugin","%d plugins",b,"jetpack-my-jetpack"),b),(0,c.sprintf)(/* translators: %d is the number of themes installed on the site. */
+_n("%d theme","%d themes",j,"jetpack-my-jetpack"),j))},scanThreatsTooltip:m&&E?{title:__("Auto-fix threats","jetpack-my-jetpack"),text:(0,c.sprintf)(/* translators: %s is the singular or plural of number of detected critical threats on the site. */
+__("The last scan identified %s. But don’t worry, use the “Auto-fix” button in the product to automatically fix most threats.","jetpack-my-jetpack"),(0,c.sprintf)(/* translators: %d is the number of detected scan threats on the site. */
+_n("%d critical threat.","%d critical threats.",E,"jetpack-my-jetpack"),E))}:{title:__("Elevate your malware protection","jetpack-my-jetpack"),text:__("We’ve checked items against our database, and all appears well. For a more detailed, line-by-line malware scan, consider upgrading your plan.","jetpack-my-jetpack")},autoFirewallTooltip:m&&!k?{title:__("Auto-Firewall: Inactive","jetpack-my-jetpack"),text:(0,n.createInterpolateElement)(__("You have Auto-Firewall disabled, visit your Protect firewall settings to activate.","jetpack-my-jetpack"),{a:(0,r.createElement)("a",{href:R,onClick:C})})}:{title:__("Auto-Firewall: Inactive","jetpack-my-jetpack"),text:__("Upgrade required for activation. Manual rules available.","jetpack-my-jetpack")},blockedLoginsTooltip:x}}},414:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.SEARCH,showMenu:!0},e));o.propTypes={admin:s().bool.isRequired};const u=o},7769:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.SOCIAL,showMenu:!0},e));o.propTypes={admin:s().bool.isRequired};const u=o},4073:(e,t,a)=>{"use strict";a.d(t,{A:()=>u});var n=a(6072),c=a.n(n),r=a(5739),s=a.n(r),i=a(1504),l=a(6176);const o=e=>React.createElement(l.A,c()({slug:i.D_.STATS,showMenu:!0},e));o.propTypes={admin:s().bool.isRequired};const u=o},7631:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(7425),c=a(1609),r=a(8837),s=a(1504),i=a(4923),l=a(8242),o=a(6176),u=a(2660),m=a(6544),d=a(3554),p=a(7167);a(6101);const h=s.D_.VIDEOPRESS,g=({admin:e})=>{const{detail:t}=(0,i.A)(h),{status:a}=t||{},{videopress:s}=(0,l.A$)(),{activeAndNoVideos:g}=(0,m.A)(),{videoCount:v=0,featuredStats:f}=s||{},w=a===r.hp.ACTIVE||a===r.hp.CAN_UPGRADE,E=(0,d.A)({isPluginActive:w,videoCount:v}),k={stats_period:f?.period,video_count:v},y=(0,c.useCallback)((()=>React.createElement(n.Ay,{variant:"body-small",className:"description"},E||t.description,w&&!v&&React.createElement(u.I,{className:"videopress-card__no-video-tooltip",tracksEventName:"videopress_card_tooltip_open",tracksEventProps:{location:"description",feature:"jetpack-videopress",status:a,video_count:v}},React.createElement("h3",null,g.title),React.createElement("p",null,g.text)))),[E,t.description,v,a,g,w]);return React.createElement(o.A,{slug:h,showMenu:!0,admin:e,Description:y,customLoadTracks:k},React.createElement(p.A,{isPluginActive:w,data:s}))}},6544:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(3924),c=a(6087),r=a(7723),s=a(1609),i=a(8242),l=a(4526);const __=r.__,_n=r._n,o=()=>{const{recordEvent:e}=(0,l.A)(),{videopress:t}=(0,i.A$)(),{featuredStats:a,videoCount:o}=t||{},{period:u}=a||{},m=(0,n.A)("jetpack-videopress-my-jetpack-tooltip"),d=(0,s.useCallback)((()=>{e("jetpack_videopress_card_tooltip_content_link_click",{location:"video_count",feature:"jetpack-videopress",page:"my-jetpack",path:m})}),[e,m]),p={title:__("The finest video for WordPress","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)((0,r.sprintf)(
+// translators: %d is the number of videos in the Media Library that could benefit from VideoPress.
+_n("You have %d video in your Media Library that could benefit from VideoPress. Start hosting it today to unlock multiple benefits: enhanced quality add-free streaming, faster load times, customizable player controls.","You have %d videos in your Media Library that could benefit from VideoPress. Start hosting them today to unlock multiple benefits: enhanced quality add-free streaming, faster load times, customizable player controls.",o,"jetpack-my-jetpack"),o),{a:(0,s.createElement)("a",{href:m,target:"_blank",rel:"noreferrer noopener",onClick:d})})},h={title:__("The finest video for WordPress","jetpack-my-jetpack"),text:__("Give your videos a boost! 🚀 Try hosting with VideoPress for superior quality and performance.","jetpack-my-jetpack")},g={title:__("High-quality video, wherever your audience is","jetpack-my-jetpack"),text:__("Success! 🌟 Your video is live and gathering views.","jetpack-my-jetpack")},v=__("30-Day views","jetpack-my-jetpack"),f=__("Yearly views","jetpack-my-jetpack"),w=__("This metric shows your total video views over the past 30 days, compared to the previous 30 days.","jetpack-my-jetpack"),E=__("This metric shows your total video views over the past year.","jetpack-my-jetpack"),k={title:"day"===u?v:f,text:"day"===u?w:E},y=__("This metric shows your total video viewing time over the past 30 days, compared to the previous 30 days.","jetpack-my-jetpack"),A=__("This metric shows total video viewing time for the last year.","jetpack-my-jetpack");return{inactiveWithVideos:p,activeAndNoVideos:h,viewsWithoutPlan:g,viewsWithPlan:k,watchTime:{title:__("Total time watched","jetpack-my-jetpack"),text:"day"===u?y:A}}}},3554:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(7723),c=a(2434);const __=n.__,r=({isPluginActive:e,videoCount:t})=>!e&&t?(0,c.A)(__("Load your existing videos faster and without ads.","jetpack-my-jetpack")):e&&!t?(0,c.A)(__("Stunning-quality, ad-free video in the WordPress Editor. Begin by uploading your first video.","jetpack-my-jetpack")):""},7167:(e,t,a)=>{"use strict";a.d(t,{A:()=>v});var n=a(7723),c=a(1113),r=a(2510),s=a(6955),i=a(3022),l=a(1504),o=a(4923),u=a(6581),m=a(2753),d=a(2660),p=a(1218),h=a(6544);a(6101);const __=n.__,g=({value:e,previousValue:t,formattedValue:a,formattedDifference:n,period:l})=>{const o=e>t;return React.createElement("div",{className:"videopress-card__value-section__value-container"},React.createElement("span",{className:"videopress-card__value-section__value"},a),e!==t&&"day"===l&&React.createElement("div",{className:(0,i.A)("videopress-card__value-section__previous-value",o?"increase":"decrease")},React.createElement(c.A,{size:18,icon:o?r.A:s.A}),React.createElement("span",null,n)))},v=({isPluginActive:e,data:t})=>{const{detail:a}=(0,o.A)(l.D_.VIDEOPRESS),{status:n,hasPaidPlanForProduct:c}=a||{},{videoCount:r,featuredStats:s}=t||{},{inactiveWithVideos:v,viewsWithoutPlan:f,viewsWithPlan:w,watchTime:E}=(0,h.A)();if(!r)return null;const k={feature:"jetpack-videopress",has_paid_plan:c,status:n};if(!e)return React.createElement("div",{className:"videopress-card__value-section"},React.createElement("div",{className:"videopress-card__value-section__container"},React.createElement("span",{className:p.A.valueSectionHeading},__("Existing videos","jetpack-my-jetpack"),React.createElement(d.I,{className:"videopress-card__no-video-tooltip",tracksEventName:"videopress_card_tooltip_open",tracksEventProps:{location:"existing_videos",feature:"jetpack-videopress",status:n,video_count:r}},React.createElement("h3",null,v.title),React.createElement("p",null,v.text))),React.createElement("span",{className:"videopress-card__video-count"},r)));const y=s?.data?.views?.current,A=s?.data?.watch_time?.current,b=s?.data?.views?.previous,j=s?.data?.watch_time?.previous,R=s?.period,C=Math.abs(y-b),_=Math.abs(A-j);if(void 0===y||void 0===A)return null;const x=__("30-Day views","jetpack-my-jetpack"),N=__("Yearly views","jetpack-my-jetpack");return React.createElement("div",{className:"videopress-card__value-section"},React.createElement("div",{className:"videopress-card__value-section__container"},React.createElement("span",{className:(0,i.A)(p.A.valueSectionHeading,"videopress-card__value-section__heading")},"day"===R?x:N,React.createElement(d.I,{tracksEventName:"videopress_card_tooltip_open",tracksEventProps:{location:"views",current_views:y,previous_views:b,period:R,...k}},c||0===y?React.createElement(React.Fragment,null,React.createElement("h3",null,w.title),React.createElement("p",null,w.text)):React.createElement(React.Fragment,null,React.createElement("h3",null,f.title),React.createElement("p",null,f.text)))),React.createElement(g,{value:y,previousValue:b,formattedValue:(0,u.A)(y),formattedDifference:(0,u.A)(C),period:R})),React.createElement("div",{className:"videopress-card__value-section__container"},React.createElement("span",{className:(0,i.A)(p.A.valueSectionHeading,"videopress-card__value-section__heading")},__("Total time watched","jetpack-my-jetpack"),React.createElement(d.I,{tracksEventName:"videopress_card_tooltip_open",tracksEventProps:{location:"watch_time",current_watch_time:A,previous_watch_time:j,period:R,...k}},React.createElement("h3",null,E.title),React.createElement("p",null,E.text))),React.createElement(g,{value:A,previousValue:j,formattedValue:(0,m.A)(A),formattedDifference:(0,m.A)(_),period:R})))}},3614:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(6427),c=a(5739),r=a.n(c),s=a(1609),i=a.n(s);const l=({children:e,className:t,href:a,isLoading:c=!1,onClick:r,isPrimary:s=!0,disabled:l=!1})=>i().createElement(n.Button,{onClick:r,className:t,href:a,variant:s?"primary":"secondary",disabled:c||l},c?i().createElement(n.Spinner,null):e);l.propTypes={className:r().string,isLoading:r().bool,isPrimary:r().bool,disabled:r().bool};const o=l},4720:(e,t,a)=>{"use strict";a.d(t,{A:()=>j});var n=a(7397),c=a(7425),r=a(8478),s=a(2266),i=a(5879),l=a(9384),o=a(6427),u=a(7723),m=a(1113),d=a(5459),p=a(3883),h=a(3022),g=a(1609),v=a.n(g),f=a(4923),w=a(8242),E=a(4526),k=a(1524),y=a(3614),A=a(9084);const __=u.__;function b({value:e,currency:t,isOld:a}){if(!e||!t)return null;const r=(0,n.vA)(e,t),s=(0,h.A)(A.A.price,{[A.A["is-old"]]:a});return v().createElement(c.Ay,{className:s,variant:"headline-medium",component:"p"},v().createElement(c.Ay,{component:"sup",variant:"title-medium"},r.symbol),r.integer,v().createElement(c.Ay,{component:"sup",variant:"title-medium"},r.fraction))}const j=({slug:e,onClick:t,trackButtonClick:a=()=>{},className:n,preferProductName:j,supportingInfo:R,ctaButtonLabel:C=null,hideTOS:_=!1,quantity:x=null,highlightLastFeature:N=!1,isFetching:z=!1})=>{const{fileSystemWriteAccess:M="no",siteSuffix:S="",adminUrl:L="",myJetpackCheckoutUri:V=""}=(0,w.A$)(),{detail:P}=(0,f.A)(e),{name:H,title:B,longDescription:O,features:I,disclaimers:T,pricingForUi:F,isBundle:U,supportedProducts:D,hasPaidPlanForProduct:q,status:J,pluginSlug:G,postCheckoutUrl:$}=P,W="plugin_absent"===J&&"no"===M,{isFree:Q,trialAvailable:K,fullPricePerMonth:Z,currencyCode:Y,discountPricePerMonth:X,wpcomProductSlug:ee,wpcomFreeProductSlug:te,introductoryOffer:ae,productTerm:ne}=F,{recordEvent:ce}=(0,E.A)(),re=!Q&&!q||null!=x,se=(0,k.y)(),ie=(0,g.useCallback)((()=>$||(se||V)),[$,se,V])(),{run:le,hasCheckoutStarted:oe}=(0,l.useProductCheckoutWorkflow)({productSlug:ee,redirectUrl:ie,siteSuffix:S,adminUrl:L,connectAfterCheckout:!0,from:"my-jetpack",quantity:x,useBlogIdSuffix:!0}),{run:ue,hasCheckoutStarted:me}=(0,l.useProductCheckoutWorkflow)({productSlug:te,redirectUrl:ie,siteSuffix:S,adminUrl:L,connectAfterCheckout:!0,from:"my-jetpack",quantity:x,useBlogIdSuffix:!0}),de=U?D.join("_plus_").split("_").map(((e,t)=>{if("plus"===e)return v().createElement(m.A,{className:A.A["plus-icon"],key:`icon-plugs${t}`,icon:d.A,size:14});const a=(0,r.Wy)(e);return v().createElement(a,{key:e,size:24})})):null;let pe;pe="month"===ae?.intervalUnit&&1===ae?.intervalCount?(0,u.sprintf)(
+// translators: %s is the monthly price for a product
+__("trial for the first month, then $%s /month, billed yearly","jetpack-my-jetpack"),Z):"year"===ne?__("/month, paid yearly","jetpack-my-jetpack"):__("/month","jetpack-my-jetpack",0);const he=(0,g.useCallback)((t=>{ce("jetpack_myjetpack_product_card_disclaimer_click",{id:t,product:e})}),[e,ce]);function ge({slug:e}){const t=(0,r.Wy)(e);return t?v().createElement("div",{className:A.A["product-icon"]},v().createElement(t,null)):null}const ve=(!U||U&&!q)&&K,fe=H&&j?H:B,we=!U&&q?(0,u.sprintf)(/* translators: placeholder is product name. */
+__("Install %s","jetpack-my-jetpack"),fe):(0,u.sprintf)(/* translators: placeholder is product name. */
+__("Get %s","jetpack-my-jetpack"),fe),Ee=C||we,ke=(0,g.useCallback)((()=>{a({cta_text:Ee}),t?.(le,P)}),[t,a,le,P,Ee]),ye=(0,g.useCallback)((()=>{a({custom_slug:te,cta_text:"Start for free"}),t?.(ue,P)}),[t,a,ue,te,P]);return v().createElement("div",{className:(0,h.A)(A.A.card,n,{[A.A["is-bundle-card"]]:U})},U&&v().createElement("div",{className:A.A["card-header"]},v().createElement(r.Gg,{className:A.A["product-bundle-icon"],size:16}),v().createElement(c.Ay,{variant:"label"},__("Popular upgrade","jetpack-my-jetpack"))),v().createElement("div",{className:A.A.container},U&&v().createElement("div",{className:A.A["product-bundle-icons"]},de),v().createElement(ge,{slug:e}),v().createElement(c.H3,null,fe),v().createElement(c.Ay,{mb:3},O),v().createElement("ul",{className:(0,h.A)(A.A.features,{[A.A["highlight-last-feature"]]:N})},I.map(((e,t)=>v().createElement(c.Ay,{component:"li",key:`feature-${t}`,variant:"body"},v().createElement(m.A,{icon:p.A,size:24}),e)))),re&&X&&v().createElement(v().Fragment,null,v().createElement("div",{className:A.A["price-container"]},v().createElement(b,{value:X,currency:Y,isOld:!1}),X0&&v().createElement("div",{className:A.A.disclaimers},T.map(((e,t)=>{const{text:a,link_text:n=null,url:r=null}=e;return v().createElement(c.Ay,{key:`disclaimer-${t}`,component:"p",variant:"body-small"},`${a} `,r&&n&&v().createElement(o.ExternalLink,{onClick:()=>he(t),href:r,target:"_blank",rel:"noopener noreferrer"},n))}))),U&&q&&v().createElement("div",{className:A.A["product-has-required-plan"]},v().createElement(r.Nr,{size:36}),v().createElement(c.Ay,null,__("Active on your site","jetpack-my-jetpack"))),R&&v().createElement(c.Ay,{className:A.A["supporting-info"],variant:"body-extra-small"},R)))}},3574:(e,t,a)=>{"use strict";a.d(t,{A:()=>w});var n=a(9245),c=a(489),r=a(1112),s=a(7656),i=a(7425),l=a(9384),o=a(7723),u=a(5739),m=a.n(u),d=a(1609),p=a(4923),h=a(8242),g=a(1524);const __=o.__,v=({cantInstallPlugin:e,onProductButtonClick:t,detail:a,isFetching:s,tier:i,trackProductButtonClick:u,preferProductName:m,feature:p})=>{const{siteSuffix:v="",myJetpackCheckoutUri:f=""}=(0,h.A$)(),{name:w,featuresByTier:E=[],pricingForUi:{tiers:k},title:y,postCheckoutUrl:A,postCheckoutUrlsByFeature:b,isBundle:j,hasPaidPlanForProduct:R}=a,{callToAction:C,currencyCode:_,fullPrice:x,introductoryOffer:N,isFree:z,wpcomProductSlug:M,quantity:S=null}=k[i],L=(0,g.y)(),V=(0,d.useCallback)((()=>p&&b?.[p]?b[p]:A||(L||f)),[p,b,A,L,f])(),{run:P,hasCheckoutStarted:H}=(0,l.useProductCheckoutWorkflow)({from:"my-jetpack",productSlug:M,redirectUrl:V,connectAfterCheckout:!0,siteSuffix:v,useBlogIdSuffix:!0,quantity:S}),B=x?Math.round(x/12*100)/100:null,O=N?.costPerInterval?Math.round(N.costPerInterval/12*100)/100:null,I="month"===N?.intervalUnit&&1===N?.intervalCount,T=I?(0,o.sprintf)(
+// translators: %s is the monthly price for a product
+__("trial for the first month, then $%s /month, billed yearly","jetpack-my-jetpack"),B):__("/month, paid yearly","jetpack-my-jetpack",0),F=w&&m?w:y,U=!j&&R?(0,o.sprintf)(/* translators: placeholder is product name. */
+__("Install %s","jetpack-my-jetpack"),F):(0,o.sprintf)(/* translators: placeholder is product name. */
+__("Get %s","jetpack-my-jetpack"),F),D=C||(z?__("Start for Free","jetpack-my-jetpack"):U),q=(0,d.useCallback)((()=>{u({is_free_plan:z,cta_text:D}),t?.(P,a,i)}),[u,t,P,a,i,z,D]);return React.createElement(n.N0,{primary:!z},React.createElement(n.i7,null,z?React.createElement(c.A,{price:0,legend:"",currency:"USD",hidePriceFraction:!0}):!R&&React.createElement(c.A,{price:B,offPrice:O,legend:T,currency:_,hideDiscountLabel:I,hidePriceFraction:!0}),React.createElement(r.A,{fullWidth:!0,variant:z?"secondary":"primary",onClick:q,isLoading:H||s,disabled:H||e||s},D)),E.map(((e,t)=>{const{included:a,description:c,struck_description:r,info:s}=e.tiers[i],l=r||c?React.createElement(React.Fragment,null,r?React.createElement(React.Fragment,null,React.createElement("del",null,r)," "):null,c?React.createElement("strong",null,c):null):null;return React.createElement(n.eY,{key:t,isIncluded:a,label:l,tooltipTitle:s?.title,tooltipInfo:s?.content?React.createElement("div",{dangerouslySetInnerHTML:{__html:s?.content}}):null,tooltipClassName:s?.class})})))};v.propTypes={cantInstallPlugin:m().bool.isRequired,onProductButtonClick:m().func.isRequired,detail:m().object.isRequired,tier:m().string.isRequired,trackProductButtonClick:m().func.isRequired,preferProductName:m().bool.isRequired};const f=({slug:e,onProductButtonClick:t,trackProductButtonClick:a,isFetching:c,preferProductName:l,feature:u})=>{const{fileSystemWriteAccess:m="no"}=(0,h.A$)(),{detail:g}=(0,p.A)(e),{description:f,featuresByTier:w=[],pluginSlug:E,status:k,tiers:y=[],hasPaidPlanForProduct:A,title:b,pricingForUi:{tiers:j}}=g,R="plugin_absent"===k&&"no"===m,C=R&&React.createElement(s.A,{level:"error",hideCloseButton:!0,title:React.createElement(i.Ay,null,(0,o.sprintf)(
+// translators: %s is the plugin name.
+__("Due to your server settings, we can't automatically install the plugin for you. Please manually install the %s plugin.","jetpack-my-jetpack"),b)),actions:[React.createElement(r.A,{variant:"secondary",href:`https://wordpress.org/plugins/${E}`,isExternalLink:!0},__("Get plugin","jetpack-my-jetpack"))]}),_=(0,d.useMemo)((()=>w.map((e=>({name:e?.name,tooltipTitle:e?.info?.title,tooltipInfo:e?.info?.content?React.createElement("div",{dangerouslySetInnerHTML:{__html:e?.info?.content}}):null})))),[w]);return React.createElement(React.Fragment,null,C,React.createElement(n.Ay,{title:f,items:_},y.map(((e,n)=>A&&(e=>{const{isFree:t}=j[e];return t})(e)?null:React.createElement(v,{key:n,tier:e,feature:u,detail:g,isFetching:c,onProductButtonClick:t,trackProductButtonClick:a,primary:0===n,cantInstallPlugin:R,preferProductName:l})))))};f.propTypes={slug:m().string.isRequired,onProductButtonClick:m().func.isRequired,trackProductButtonClick:m().func.isRequired,isFetching:m().bool.isRequired,preferProductName:m().bool.isRequired};const w=f},6092:(e,t,a)=>{"use strict";a.d(t,{Ay:()=>V,B8:()=>O,C:()=>D,Gf:()=>J,JM:()=>G,QX:()=>T,X7:()=>I,og:()=>U,qT:()=>F,t7:()=>q,wU:()=>P,xE:()=>H,yX:()=>B});var n=a(2947),c=a(5918),r=a(8509),s=a(7425),i=a(1112),l=a(5879),o=a(6087),u=a(7723),m=a(3022),d=a(1609),p=a.n(d),h=a(9539),g=a(8837),v=a(9935),f=a(4923),w=a(8242),E=a(4526),k=a(3588),y=a(1870),A=a(3981),b=a(1617),j=a(4720),R=a(3574),C=a(8769),_=a(5296),x=a(4660),N=a(7642),z=a(15),M=a(9409),S=a(7899),L=a(5044);const __=u.__;function V({bundle:e,existingLicenseKeyUrl:t="admin.php?page=my-jetpack#/add-license",installsPlugin:a=!1,slug:h,supportingInfo:C,preferProductName:_=!1,children:x=null,imageContainerClassName:N="",ctaButtonLabel:z=null,hideTOS:M=!1,quantity:L=null,directCheckout:V=!1,highlightLastFeature:P=!1,ctaCallback:H=null,feature:B=null}){const{detail:O}=(0,f.A)(h),{detail:I}=(0,f.A)(e),{activate:T,isPending:F}=(0,v.A)(h);let U=O?.postActivationUrl||null;B&&O?.postActivationUrlsByFeature?.[B]&&(U=O.postActivationUrlsByFeature[B]);const{isUpgradableByBundle:D,tiers:q,pricingForUi:J}=O,{recordEvent:G}=(0,E.A)(),{onClickGoBack:$}=(0,k.L)({slug:h}),{myJetpackCheckoutUri:W=""}=(0,w.A$)(),{siteIsRegistering:Q,handleRegisterSite:K}=(0,y.A)({skipUserConnection:!0,redirectUri:U}),Z=!M&&!!e,Y=O?.title,X=I?.title,ee=[/* translators: %s is the product name */ /* translators: %s is the product name */
+(0,u.sprintf)(__("Get %s","jetpack-my-jetpack"),Y),/* translators: %s is the bundled product name */ /* translators: %s is the bundled product name */
+(0,u.sprintf)(__("Get %s","jetpack-my-jetpack"),X)];(0,d.useEffect)((()=>{G("jetpack_myjetpack_product_interstitial_view",{product:h})}),[G,h]);const te=(0,d.useCallback)(((e=!1)=>e?"":"crm"===h?"jetpack-crm":J?.tiers?.upgraded?.wpcomProductSlug?J.tiers.upgraded.wpcomProductSlug:J.wpcomProductSlug),[h,J]),ae=(0,d.useCallback)((t=>{const{customSlug:a=null,isFreePlan:n=!1,ctaText:c=null}=t||{};G("jetpack_myjetpack_product_interstitial_add_link_click",{product:a||(e??h),product_slug:te(n),cta_text:c})}),[G,h,te,e]),ne=(0,A.A)(g.NM.Home),ce=(0,d.useCallback)(((e,t,a)=>{H?.({slug:h,product:t,tier:a}),t?.isBundle||V?e?.():T({productId:h},{onSettled:n=>{let c=n?.post_checkout_url||W;B&&n?.post_checkout_urls_by_feature?.[B]&&(c=n.post_checkout_urls_by_feature[B]);const r=t?.hasPaidPlanForProduct,s=a?t?.pricingForUi?.tiers?.[a]?.isFree:t?.pricingForUi?.isFree,i=!s&&!r||a&&t?.pricingForUi?.tiers?.[a]&&!s&&t?.isUpgradable;"zero-bs-crm"!==t.pluginSlug||r?i?e?.(null,c):K().then((e=>{if(!e)return ne()})):window.location.href="https://jetpackcrm.com/pricing/"}})}),[W,B,H,h,V,T,K,ne]);return p().createElement(n.A,{showHeader:!1,showBackground:!1},p().createElement(c.A,{horizontalSpacing:3,horizontalGap:3},p().createElement(r.A,{className:S.A["product-interstitial__header"]},p().createElement(b.A,{onClick:$}),t&&p().createElement(s.Ay,{variant:"body-small"},(0,o.createInterpolateElement)(__("Already have an existing plan or license key? Get started.","jetpack-my-jetpack"),{a:p().createElement(i.A,{className:S.A["product-interstitial__license-activation-link"],href:t,variant:"link"})}))),p().createElement(r.A,null,q&&q.length?p().createElement(R.A,{slug:h,clickHandler:ce,onProductButtonClick:ce,trackProductButtonClick:ae,preferProductName:_,isFetching:F||Q,feature:B}):p().createElement(c.A,{className:D?null:S.A.container,horizontalSpacing:0,horizontalGap:0,fluid:!0},p().createElement(r.A,{sm:4,md:4,lg:7},p().createElement(j.A,{slug:h,trackButtonClick:ae,onClick:a?ce:void 0,className:D?S.A.container:null,supportingInfo:C,preferProductName:_,ctaButtonLabel:z,hideTOS:M||Z,quantity:L,highlightLastFeature:P,isFetching:F||Q})),p().createElement(r.A,{sm:4,md:4,lg:5,className:(0,m.A)(S.A.imageContainer,N)},e?p().createElement(j.A,{slug:e,trackButtonClick:ae,onClick:ce,className:D?S.A.container:null,hideTOS:M||Z,quantity:L,highlightLastFeature:P,isFetching:F}):x))),p().createElement(r.A,null,Z&&p().createElement("div",{className:S.A["tos-container"]},p().createElement(l.A,{multipleButtons:ee})))))}function P(){const e="anti-spam",{detail:t}=(0,f.A)(e),{isPluginActive:a}=t;return p().createElement(V,{slug:e,installsPlugin:!0,bundle:"security",existingLicenseKeyUrl:a?"admin.php?page=akismet-key-config":null,preferProductName:!0})}function H(){return p().createElement(V,{slug:"backup",installsPlugin:!0,bundle:"security"})}function B(){return p().createElement(V,{slug:"boost",installsPlugin:!0},p().createElement("img",{src:C,alt:"Boost"}))}function O(){return p().createElement(V,{slug:"creator",installsPlugin:!0})}function I(){return p().createElement(V,{slug:"crm",installsPlugin:!0},p().createElement("img",{src:_,alt:"CRM"}))}function T(){return p().createElement(V,{slug:"extras",installsPlugin:!0},p().createElement("img",{src:x,alt:"Extras"}))}function F(){const{feature:e}=(0,h.g)();return p().createElement(V,{slug:"protect",feature:e,installsPlugin:!0})}function U(){return p().createElement(V,{slug:"scan",installsPlugin:!0,bundle:"security"})}function D(){return p().createElement(V,{slug:"social",installsPlugin:!0},p().createElement("img",{src:z,alt:__("Image displaying logos of social media platforms supported by Jetpack Social.","jetpack-my-jetpack")}))}function q(){const{detail:e}=(0,f.A)("search");return p().createElement(V,{slug:"search",installsPlugin:!0,supportingInfo:(e?.pricingForUi?.trialAvailable?__("Jetpack Search Free supports up to 5,000 records and 500 search requests per month for free. You will be asked to upgrade to a paid plan if you exceed these limits for three continuous months.","jetpack-my-jetpack"):"")+__("For the paid plan, pricing will automatically adjust based on the number of records in your search index. If you grow into a new pricing tier, we'll let you know before your next billing cycle.","jetpack-my-jetpack")},p().createElement("img",{src:N,alt:"Search"}))}function J(){return p().createElement(V,{slug:"stats",directCheckout:!0,installsPlugin:!0,ctaButtonLabel:__("Get Stats","jetpack-my-jetpack")},p().createElement("img",{src:M,alt:__("Illustration showing the Stats feature, highlighting important statistics for your site.","jetpack-my-jetpack")}))}function G(){return p().createElement(V,{slug:"videopress",installsPlugin:!0},p().createElement("img",{src:L,alt:"VideoPress"}))}},3418:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(7723),c=a(6941),r=a.n(c),s=a(1609),i=a(6092),l=a(4923),o=a(1870),u=a(9923),m=a(1298);const __=n.__,d=r()("my-jetpack:product-interstitial:jetpack-ai");function p(){const{detail:e}=(0,l.A)("jetpack-ai");d(e);const{userConnectionData:t}=(0,o.A)(),{currentUser:a}=t,{wpcomUser:n}=a,c=`jetpack_ai_optfree_${a?.id||0}_${a?.blogId||0}_${n?.ID||0}`,r=(0,s.useCallback)((({tier:e})=>{"free"===e&&localStorage.setItem(c,!0)}),[c]);return React.createElement(i.Ay,{slug:"jetpack-ai",installsPlugin:!0,imageContainerClassName:m.A.aiImageContainer,hideTOS:!0,directCheckout:!1,ctaCallback:r,ctaButtonLabel:__("Upgrade","jetpack-my-jetpack")},React.createElement("img",{src:u,alt:"Jetpack AI"}))}},8823:(e,t,a)=>{"use strict";a.d(t,{A:()=>N});var n=a(3924),c=a(2947),r=a(5918),s=a(8509),i=a(7142),l=a(8478),o=a(7656),u=a(6427),m=a(6087),d=a(7723),p=a(1113),h=a(3883),g=a(748),v=a(5459),f=a(3022),w=a(6941),E=a.n(w),k=a(1609),y=a(4923),A=a(4526),b=a(3588),j=a(1870),R=a(3981),C=a(1617),_=a(1298);const __=d.__,x=E()("my-jetpack:product-interstitial:jetpack-ai-product-page");function N(){const{onClickGoBack:e}=(0,b.L)("jetpack-ai"),{detail:t}=(0,y.A)("jetpack-ai"),{description:a,aiAssistantFeature:w}=t,[E,N]=(0,k.useState)(!1),{isRegistered:z}=(0,j.A)(),M=__("Generate and edit content faster with Jetpack AI Assistant","jetpack-my-jetpack"),S=__("Create featured images with one click","jetpack-my-jetpack"),L=__("Optimize your titles effortlessly","jetpack-my-jetpack"),V=__("Build forms using prompts","jetpack-my-jetpack"),P=__("Get feedback on posts","jetpack-my-jetpack"),H=__("Make your writing easy to read","jetpack-my-jetpack");x(w);const{requestsCount:B=0,currentTier:O,nextTier:I,usagePeriod:T,isOverLimit:F,tierPlansEnabled:U}=w||{},D=0===O?.value,q=1===O?.value,J=!D&&!q||q&&!U,G=!q&&J&&!I&&O,$=D&&20-B>=0?20-B:0,W=J&&!D&&T,Q=J||q,K=(0,n.A)("jetpack-ai-tiers-more-requests-contact"),Z=(0,n.A)("jetpack-ai-feedback"),Y=(0,n.A)("jetpack-ai-product-page-featured-image-link"),X=(0,n.A)("jetpack-ai-product-page-title-optimization-link"),ee=(0,n.A)("jetpack-ai-product-page-form-link"),te=(0,n.A)("jetpack-ai-product-page-content-feedback-link"),ae=(0,n.A)("jetpack-ai-product-page-breve"),ne=z?"post-new.php?use_ai_block=1&_wpnonce="+window?.jetpackAi?.nonce:"#/connection",ce=__("Create new post","jetpack-my-jetpack"),re=__("Connect to Jetpack to start using the AI Assistant","jetpack-my-jetpack"),se=F&&J,ie=F&&D,le=O?.limit||0,oe=T?.requestsCount||0,ue=U?le-oe>=0?le-oe:0:oe,me=__("Requests this month","jetpack-my-jetpack"),de=__("Requests for this month","jetpack-my-jetpack"),pe=__("You've reached your request limit for this month","jetpack-my-jetpack"),he=__("You've used all your free requests","jetpack-my-jetpack"),ge=(0,d.sprintf)(
+// translators: %d is the number of days left in the month.
+__("Wait for %d days to reset your limit, or upgrade now to a higher tier for additional requests and keep your work moving forward.","jetpack-my-jetpack"),Math.floor((new Date(T?.nextStart||null)-new Date)/864e5)),ve=(0,m.createInterpolateElement)((0,d.sprintf)(
+// translators: %d is the number of days left in the month.
+__("Wait for %d days to reset your limit, per our fair usage policy.","jetpack-my-jetpack"),Math.floor((new Date(T?.nextStart||null)-new Date)/864e5)),{link:React.createElement("a",{href:(0,n.A)("ai-product-page-fair-usage-policy"),target:"_blank",rel:"noreferrer"})}),fe=U?ge:ve,we=__("Reach for More with Jetpack AI! Upgrade now for additional requests and keep your momentum going.","jetpack-my-jetpack"),Ee=(0,d.sprintf)(
+// translators: %s is the next upgrade value
+__("Get %s requests","jetpack-my-jetpack"),I?.value||"more"),ke=__("Upgrade now","jetpack-my-jetpack"),ye=(0,R.A)("/add-jetpack-ai"),{recordEvent:Ae}=(0,A.A)(),be=(0,k.useCallback)((()=>{Ae("jetpack_ai_upgrade_contact_us",{placement:"product-page"})}),[Ae]),je=(0,k.useCallback)((()=>{Ae("jetpack_ai_upgrade_button",{placement:"product-page",context:"my-jetpack",current_tier_slug:O?.slug||"",requests_count:B}),ye()}),[Ae,B,O,ye]),Re=(0,k.useCallback)((()=>N(!1)),[]);(0,k.useEffect)((()=>{Ae("jetpack_ai_myjetpack_product_page_view",{current_tier_slug:O?.slug||"",requests_count:B})}),[B,O?.slug,Ae]),(0,k.useEffect)((()=>{N(se||ie)}),[se,ie]);const Ce=React.createElement("span",{className:_.A["product-interstitial__new-badge"]},__("New","jetpack-my-jetpack")," ");return React.createElement(c.A,{showHeader:!1,showBackground:!0},React.createElement(r.A,{fluid:!0,horizontalSpacing:3,horizontalGap:2},React.createElement(s.A,{className:(0,f.A)(_.A["product-interstitial__section"])},React.createElement("div",{className:_.A["product-interstitial__section-wrapper-wide"]},React.createElement(C.A,{onClick:e})),React.createElement("div",{className:(0,f.A)(_.A["product-interstitial__section-wrapper-wide"],_.A["product-interstitial__product-header"])},React.createElement(i.A,null),React.createElement("div",{className:_.A["product-interstitial__product-header-name"]},__("AI Assistant","jetpack-my-jetpack")))),React.createElement(s.A,{className:(0,f.A)(_.A["product-interstitial__section"])},React.createElement("div",{className:_.A["product-interstitial__hero-section"]},React.createElement("div",{className:_.A["product-interstitial__hero-content"]},React.createElement("h1",{className:_.A["product-interstitial__hero-heading"]},a),React.createElement("div",{className:_.A["product-interstitial__hero-sub-heading"]},__("Draft, transform, translate, and alter both new and existing content leveraging the capabilities of AI, inside the block editor.","jetpack-my-jetpack")),!G&&!q&&React.createElement(u.Button,{variant:"primary",onClick:je,className:_.A["product-interstitial__hero-cta"]},__("Get more requests","jetpack-my-jetpack")),G&&React.createElement(u.Button,{variant:"primary",onClick:be,href:K,className:_.A["product-interstitial__hero-cta"]},__("Contact Us","jetpack-my-jetpack"))),React.createElement("div",{className:_.A["product-interstitial__hero-side"]},W&&React.createElement(u.Card,{className:_.A["stats-card"]},React.createElement(l.KH,null),React.createElement("div",null,React.createElement("div",{className:_.A["product-interstitial__stats-card-text"]},U?de:me),React.createElement("div",{className:_.A["product-interstitial__stats-card-value"]},ue))),Q&&React.createElement(u.Card,{className:_.A["stats-card"]},React.createElement(p.A,{icon:h.A,className:_.A["stats-card-icon-check"]}),React.createElement("div",null,React.createElement("div",{className:_.A["product-interstitial__stats-card-text"]},__("All-time requests used","jetpack-my-jetpack")),React.createElement("div",{className:_.A["product-interstitial__stats-card-value"]},B))),D&&React.createElement(u.Card,{className:_.A["stats-card"]},React.createElement(p.A,{icon:h.A,className:_.A["stats-card-icon-check"]}),React.createElement("div",null,React.createElement("div",{className:_.A["product-interstitial__stats-card-text"]},__("Free requests available","jetpack-my-jetpack")),React.createElement("div",{className:_.A["product-interstitial__stats-card-value"]},$)))))),React.createElement(s.A,{className:_.A["product-interstitial__section"]},React.createElement("div",{className:_.A["product-interstitial__section-wrapper"]},E&&React.createElement("div",{className:_.A["product-interstitial__ai-notice"]},React.createElement(o.A,{actions:U?[React.createElement(u.Button,{isPrimary:!0,onClick:je},se?Ee:ke)]:{},onClose:Re,level:se?"warning":"error",title:se?pe:he},se?fe:we)),React.createElement("h2",{className:_.A["product-interstitial__section-heading"]},__("AI Features","jetpack-my-jetpack")),React.createElement("p",{className:_.A["product-interstitial__section-sub-heading"]},__("Discover all the Jetpack features powered by AI","jetpack-my-jetpack")),React.createElement("div",{className:_.A["product-interstitial__usage-videos"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/2OU6GCMs?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F07%2Fjetpack-ai-breve-poster.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:H}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},H,Ce),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Simplify your writing with AI suggestions to fix long sentences and complex words and sound more confident. As you type, check your Reading grade score to make sure it suits your audience.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:g.A,target:"_blank",href:ae},__("Learn more","jetpack-my-jetpack")))),React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/GdXmtVtW?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F02%2Fimage-37.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:M}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},M),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Use the AI block to generate content, or use our AI edit options in existing blocks. Use prompts or any of our recommended actions.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:v.A,href:ne},z?ce:re))),React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/HJCf8cXc?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F02%2Fone-click-featured-images.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:S}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},S),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Create featured images to illustrate your content and make it more engaging with just one click. Use prompts to generate adjusted new featured images.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:g.A,target:"_blank",href:Y},__("Learn about featured images","jetpack-my-jetpack")))),React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/xjy2weWj?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F06%2Fjetpack-ai-title-optimization.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:L}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},L),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Use AI to generate title suggestions based on your content, each with an explanation of why it works better. Save time and create engaging, SEO-friendly titles.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:g.A,target:"_blank",href:X},__("Learn about Jetpack SEO tools","jetpack-my-jetpack")))),React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/OMI3zqid?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F02%2Fimage-38.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:V}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},V),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Quickly build forms using the Jetpack Forms block and AI. Use prompts to describe your form and AI will generate the elements in a few seconds.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:g.A,target:"_blank",href:ee},__("Learn about forms","jetpack-my-jetpack")))),React.createElement("div",{className:_.A["product-interstitial__usage-videos-item"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-video"]},React.createElement("iframe",{width:"280",height:"157",src:"https://videopress.com/embed/0vb0OJm7?posterUrl=https%3A%2F%2Fjetpackme.files.wordpress.com%2F2024%2F02%2Fimage-39.png%3Fw%3D560",allowFullScreen:!0,allow:"clipboard-write",title:P}),React.createElement("script",{src:"https://videopress.com/videopress-iframe.js"})),React.createElement("div",{className:_.A["product-interstitial__usage-videos-content"]},React.createElement("div",{className:_.A["product-interstitial__usage-videos-heading"]},P),React.createElement("div",{className:_.A["product-interstitial__usage-videos-text"]},__("Get instant feedback on your post before publishing. AI will read your post and highlight opportunities to improve your publication.","jetpack-my-jetpack")),React.createElement(u.Button,{className:_.A["product-interstitial__usage-videos-link"],icon:g.A,target:"_blank",href:te},__("Learn more","jetpack-my-jetpack"))))))),React.createElement(s.A,{className:_.A["product-interstitial__section"]},React.createElement("div",{className:_.A["product-interstitial__section-wrapper"]},React.createElement("div",{className:_.A["product-interstitial__section-emoji"]},"👋"),React.createElement("h2",{className:_.A["product-interstitial__section-heading"]},__("Do you have any feedback?","jetpack-my-jetpack")),React.createElement("p",{className:_.A["product-interstitial__section-sub-heading"]},__("Help us improving the accuracy of our results and feel free to give us ideas for future implementations and improvements.","jetpack-my-jetpack")," ",React.createElement(u.ExternalLink,{href:Z},__("Share your feedback!","jetpack-my-jetpack")))))))}},7265:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(1040),c=a(7723),r=a(1504),s=a(280),i=a(1870),l=a(8252);const __=c.__;function o(){const{userConnectionData:e}=(0,i.A)(),t=e?.currentUser?.wpcomUser?.display_name||e?.currentUser?.wpcomUser?.login||e?.currentUser?.username,{isLoading:a,data:c}=(0,s.A)({name:r.Ck,query:{path:r.tb}}),o=(0,l.M)(c);return a?React.createElement(React.Fragment,null,__("Checking gold status…","jetpack-my-jetpack")):React.createElement(React.Fragment,null,React.createElement(n._,{tokenRedeemed:o,displayName:t}))}},9654:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(7723),c=a(1113),r=a(5788),s=a(1871),i=a(6994),l=a(1609),o=a.n(l),u=a(3),m=a(3336),d=a(3747);const __=n.__,p=({counts:e,previousCounts:t})=>o().createElement("div",{className:d.A["section-stats-highlights"]},o().createElement("h3",{className:d.A["section-title"]},o().createElement("span",null,__("7-day highlights","jetpack-my-jetpack")),o().createElement("small",{className:d.A["section-description"]},__("Compared to previous period","jetpack-my-jetpack"))),o().createElement("div",{className:d.A["cards-list"]},o().createElement(u.A,{heading:__("Views","jetpack-my-jetpack"),icon:o().createElement(c.A,{icon:m.A}),count:e?.views,previousCount:t?.views}),o().createElement(u.A,{heading:__("Visitors","jetpack-my-jetpack"),icon:o().createElement(c.A,{icon:r.A}),count:e?.visitors,previousCount:t?.visitors}),o().createElement(u.A,{heading:__("Likes","jetpack-my-jetpack"),icon:o().createElement(c.A,{icon:s.A}),count:e?.likes,previousCount:t?.likes}),o().createElement(u.A,{heading:__("Comments","jetpack-my-jetpack"),icon:o().createElement(c.A,{icon:i.A}),count:e?.comments,previousCount:t?.comments})))},3:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(6427),c=a(1113),r=a(6955),s=a(2510),i=a(3022),l=a(5739),o=a.n(l),u=a(1609),m=a.n(u),d=a(6581),p=a(3747);const h=({count:e=0,previousCount:t=0,icon:a,heading:l})=>{const o=(h=t,"number"!=typeof(u=e)||"number"!=typeof h?null:u-h);var u,h;const g=Math.abs(o),v=Number.isFinite(o)?((e,t)=>{if("number"!=typeof e||"number"!=typeof t)return null;if(0===e&&0===t)return 0;const a=e/t*100;return Math.abs(a)===1/0?100:Math.round(a)})(g,t):null;return m().createElement(n.Card,{className:p.A["stats-card"]},a&&m().createElement("div",{className:p.A["stats-card-icon"]},a),l&&m().createElement("div",{className:p.A["stats-card-heading"]},l),m().createElement("div",{className:p.A["stats-card-count"]},m().createElement("span",{className:p.A["stats-card-count-value"],title:Number.isFinite(e)?String(e):void 0},(0,d.A)(e)),null!==o?m().createElement("span",{className:(0,i.A)(p.A["stats-card-difference"],{[p.A["stats-card-difference--positive"]]:o<0,[p.A["stats-card-difference--negative"]]:o>0})},m().createElement("span",{className:p.A["stats-card-difference-icon"],title:String(o)},o<0&&m().createElement(c.A,{size:18,icon:r.A}),o>0&&m().createElement(c.A,{size:18,icon:s.A})),m().createElement("span",{className:p.A["stats-card-difference-absolute-value"]},g>9999?(0,d.A)(g):(0,d.A)(g,{})),null!==v&&m().createElement("span",{className:p.A["stats-card-difference-absolute-percentage"]},"(",v,"%)")):null))};h.propTypes={count:o().number,heading:o().node,icon:o().node,previousCount:o().number};const g=h},3336:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(6427);const c=React.createElement(n.SVG,{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement(n.Path,{d:"m4 13 .67.336.003-.005a2.42 2.42 0 0 1 .094-.17c.071-.122.18-.302.329-.52.298-.435.749-1.017 1.359-1.598C7.673 9.883 9.498 8.75 12 8.75s4.326 1.132 5.545 2.293c.61.581 1.061 1.163 1.36 1.599a8.29 8.29 0 0 1 .422.689l.002.005L20 13l.67-.336v-.003l-.003-.005-.008-.015-.028-.052a9.752 9.752 0 0 0-.489-.794 11.6 11.6 0 0 0-1.562-1.838C17.174 8.617 14.998 7.25 12 7.25S6.827 8.618 5.42 9.957c-.702.669-1.22 1.337-1.563 1.839a9.77 9.77 0 0 0-.516.845l-.008.015-.002.005-.001.002v.001L4 13Zm8 3a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"}))},1035:(e,t,a)=>{"use strict";a.d(t,{A:()=>h});var n=a(7723),c=a(1609),r=a(8837),s=a(1504),i=a(4923),l=a(280),o=a(8242),u=a(4526),m=a(1870),d=a(6176),p=a(9654);const __=n.__,h=()=>{const e="stats",{blogID:t}=(0,m.A)(),{detail:a}=(0,i.A)(e),{status:n}=a,h=!!(0,o.A$)("userIsAdmin"),{data:g}=(0,l.A)({name:s.MB,query:{path:(0,s.IM)(t)}}),v=g?.past_seven_days||{},f=g?.between_past_eight_and_fifteen_days||{},{recordEvent:w}=(0,u.A)(),E=(0,c.useCallback)((()=>{w("jetpack_myjetpack_stats_card_seedetailedstats_click",{product:e})}),[w]),k=(0,c.useCallback)((()=>!(n!==r.hp.CAN_UPGRADE)),[n]),y={href:"admin.php?page=stats",label:__("View detailed stats","jetpack-my-jetpack"),onClick:E,shouldShowButton:k},A={[r.hp.ACTIVE]:{label:__("View detailed stats","jetpack-my-jetpack")},[r.hp.SITE_CONNECTION_ERROR]:{label:__("Connect Jetpack to use Stats","jetpack-my-jetpack")},[r.hp.NEEDS_FIRST_SITE_CONNECTION]:{href:`#/add-${e}`}};return React.createElement(d.A,{admin:h,slug:e,primaryActionOverride:A,secondaryAction:y,showMenu:!0},React.createElement(p.A,{counts:v,previousCounts:f}))}},7881:(e,t,a)=>{"use strict";a.d(t,{A:()=>g});var n=a(8509),c=a(7425),r=a(5879),s=a(1112),i=a(4082),l=a(7723),o=a(1609),u=a(6007),m=a(1521),d=a(4526),p=a(753),h=a(5225);const __=l.__,g=({onActivateSite:e,onUpdateWelcomeFlowExperiment:t,isActivating:a})=>{const{recordEvent:l}=(0,d.A)(),{setNotice:g,resetNotice:v}=(0,o.useContext)(u.g),f=__("Activate Jetpack in one click","jetpack-my-jetpack"),w=(0,o.useCallback)((async()=>{l("jetpack_myjetpack_welcome_banner_connect_site_click"),t((e=>({...e,isLoading:!0}))),await e(),l("jetpack_myjetpack_welcome_banner_connect_site_success");try{await(0,p.A)(),(0,i.Pg)();const{variationName:e}=await(0,i.nQ)("jetpack_my_jetpack_evaluation_recommendations_202409");t((t=>({...t,variation:e})))}finally{v(),g(m.F,v),t((e=>({...e,isLoading:!1})))}}),[e,t,l,v,g]);return React.createElement(React.Fragment,null,React.createElement(n.A,{sm:6,md:8,lg:6,className:h.A["banner-description"]},React.createElement(c.Ay,{variant:"headline-small",mb:3},__("Welcome to Jetpack!","jetpack-my-jetpack")),React.createElement(c.Ay,{variant:"body",mb:2},__("Unlock the power of your WordPress site with Jetpack, the complete toolkit for enhancing your site’s security, speed, and growth.","jetpack-my-jetpack")),React.createElement(c.Ay,{variant:"body",mb:2},__("Jetpack works behind the scenes to keep your site safe, make it lightning-fast, and to help you get more traffic.","jetpack-my-jetpack")),React.createElement(r.A,{agreeButtonLabel:f,mb:4}),React.createElement(s.A,{variant:"primary",disabled:a,isLoading:a,onClick:w},a?__("Activating…","jetpack-my-jetpack"):f)),React.createElement(n.A,{sm:6,md:8,lg:6,className:h.A["banner-image"]}))}},9230:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(8509),c=a(7425),r=a(6427),s=a(7723),i=a(5225);const __=s.__,l=()=>React.createElement(n.A,{className:i.A["banner-evaluation"]},React.createElement("div",{className:i.A["banner-loader"]},React.createElement(r.Spinner,null)),React.createElement(c.Ay,{variant:"title-medium",mb:1},__("Finding the best Jetpack tools","jetpack-my-jetpack")),React.createElement(c.Ay,{variant:"body-small"},__("We‘re crunching the numbers to find the Jetpack tools that are the best match for your site.","jetpack-my-jetpack")))},6259:(e,t,a)=>{"use strict";a.d(t,{A:()=>p});var n=a(8509),c=a(7425),r=a(1112),s=a(6427),i=a(7723),l=a(3022),o=a(1609),u=a(5225);const __=i.__,m={protect:__("Protect my site","jetpack-my-jetpack"),performance:__("Improve my site‘s performance","jetpack-my-jetpack"),audience:__("Grow my audience","jetpack-my-jetpack"),content:__("Create quality content","jetpack-my-jetpack"),unsure:__("I don‘t know","jetpack-my-jetpack")},d={protect:!1,performance:!1,audience:!1,content:!1,unsure:!1},p=({onSkipOnboarding:e,onSubmitEvaluation:t})=>{const[a,i]=(0,o.useState)(d),p=(0,o.useCallback)((e=>t=>{i((a=>({...a,[e]:t})))}),[i]),h=(0,o.useCallback)((()=>t(a)),[t,a]),g=Object.values(a).some((e=>e));return React.createElement(React.Fragment,null,React.createElement(n.A,{sm:6,md:8,lg:6,className:u.A["banner-description"]},React.createElement(c.Ay,{variant:"headline-small",mb:3},__("What would you like Jetpack to do?","jetpack-my-jetpack")),React.createElement(c.Ay,{variant:"body",mb:2},__("Jetpack does a lot. Select the items that are most important to you and we‘ll find the Jetpack tools that are the best match for your site.","jetpack-my-jetpack")),React.createElement("form",{className:u.A.form},Object.entries(m).map((([e,t])=>React.createElement(s.CheckboxControl,{key:e,className:u.A["form-checkbox"],label:t,checked:a[e],onChange:p(e)}))),React.createElement("div",{className:u.A["form-actions"]},React.createElement(r.A,{variant:"primary",text:__("See solutions","jetpack-my-jetpack"),onClick:h,disabled:!g}),React.createElement(r.A,{variant:"link",className:u.A["form-link-action"],text:__("Skip onboarding","jetpack-my-jetpack"),onClick:e})))),React.createElement(n.A,{sm:6,md:8,lg:6,className:(0,l.A)(u.A["banner-image-evaluation"],{[u.A["is-selected"]]:g})}))}},8388:(e,t,a)=>{"use strict";a.d(t,{A:()=>k});var n=a(5918),c=a(8509),r=a(1112),s=a(7723),i=a(991),l=a(3022),o=a(1609),u=a(3804),m=a(4393),d=a(9812),p=a(4526),h=a(1870),g=a(2450),v=a(7881),f=a(9230),w=a(6259),E=a(5225);const __=s.__,k=({children:e})=>{const{recordEvent:t}=(0,p.A)(),{dismissWelcomeBanner:a}=(0,d.A)(),{recommendedModules:s,submitEvaluation:k,saveEvaluationResult:y}=(0,u.A)(),{siteIsRegistered:A,siteIsRegistering:b,isUserConnected:j,isSiteConnected:R,handleRegisterSite:C}=(0,h.A)({skipUserConnection:!0}),[_,x]=(0,o.useState)(!1),[N,z]=(0,o.useState)(""),[M,S]=(0,o.useState)({isLoading:!1,variation:"control"}),L=(0,o.useMemo)((()=>!A||M.isLoading?"connection":_?"evaluation-processing":s||"treatment"!==M.variation&&(0,m.A)()?"evaluation":null),[_,s,A,M.isLoading,M.variation]);(0,o.useEffect)((()=>{N!==L&&(t("jetpack_myjetpack_welcome_banner_step_view",{current_step:L}),z(L))}),[L,N,t]);const V=(0,o.useCallback)((()=>{t("jetpack_myjetpack_welcome_banner_dismiss_click",{current_step:L,is_user_connected:j,is_site_connected:R}),a()}),[t,L,j,R,a]),P=(0,o.useCallback)((()=>{t("jetpack_myjetpack_welcome_banner_skip_recommendations_click"),a()}),[a,t]),H=(0,o.useCallback)((async e=>{const n=Object.keys(e).filter((t=>e[t]));x(!0),t("jetpack_myjetpack_welcome_banner_evaluation_submit",{goals:n});try{const e=await k(n);await y(e),a()}catch(e){x(!1)}}),[a,t,y,k]);return(0,o.useEffect)((()=>{L||a()}),[L,a]),L?React.createElement(n.A,{horizontalSpacing:6,horizontalGap:2},e&&React.createElement(c.A,null,e),React.createElement(c.A,{lg:12,className:E.A.banner},React.createElement(g.O,{className:(0,l.A)(E.A["banner-card"],"connection"===L&&E.A["is-mandatory"])},React.createElement(n.A,{horizontalSpacing:0,horizontalGap:0,className:E.A["banner-content"]},"connection"===L&&React.createElement(v.A,{onActivateSite:C,onUpdateWelcomeFlowExperiment:S,isActivating:b||M.isLoading}),"evaluation"===L&&React.createElement(w.A,{onSkipOnboarding:P,onSubmitEvaluation:H}),"evaluation-processing"===L&&React.createElement(f.A,null))),React.createElement(r.A,{className:E.A.dismiss,variant:"secondary","aria-label":__("Don’t show the welcome message again","jetpack-my-jetpack"),size:"small",icon:i.A,disabled:b,onClick:V}))):null}},8837:(e,t,a)=>{"use strict";a.d(t,{ED:()=>c,NM:()=>s,OM:()=>n,hp:()=>i,mk:()=>r});const n="my-jetpack-my-plans-manage",c="my-jetpack-my-plans-purchase",r="my-jetpack-my-plans-purchase-no-site",s={Home:"/",Connection:"/connection",AddAkismet:"/add-akismet",AddAntiSpam:"/add-anti-spam",AddBackup:"/add-backup",AddBoost:"/add-boost",AddCRM:"/add-crm",AddCreator:"/add-creator",AddJetpackAI:"/add-jetpack-ai",AddExtras:"/add-extras",AddProtect:"/add-protect/:feature?",AddScan:"/add-scan",AddSocial:"/add-social",AddSearch:"/add-search",AddVideoPress:"/add-videopress",AddStats:"/add-stats",AddLicense:"/add-license",RedeemToken:"/redeem-token"},i={ACTIVE:"active",INACTIVE:"inactive",MODULE_DISABLED:"module_disabled",SITE_CONNECTION_ERROR:"site_connection_error",ABSENT:"plugin_absent",ABSENT_WITH_PLAN:"plugin_absent_with_plan",NEEDS_PLAN:"needs_plan",NEEDS_ACTIVATION:"needs_activation",NEEDS_FIRST_SITE_CONNECTION:"needs_first_site_connection",USER_CONNECTION_ERROR:"user_connection_error",CAN_UPGRADE:"can_upgrade"}},3537:(e,t,a)=>{"use strict";a.d(t,{EX:()=>c,PG:()=>n,pv:()=>r});const n=100,c=200,r=300},6007:(e,t,a)=>{"use strict";a.d(t,{A:()=>s,g:()=>r});var n=a(1609);const c={message:"",title:null,options:{level:"info",priority:0}},r=(0,n.createContext)({currentNotice:c,setNotice:null,resetNotice:null}),s=({children:e})=>{const[t,a]=(0,n.useState)(c),s=(0,n.useCallback)((()=>{a(c)}),[]),i=(0,n.useCallback)(((e,n)=>{if(!t.message||e.options.priority>t.options.priority){const t={...e.options,onClose:e.options?.onClose||(e.options?.hideCloseButton?void 0:n)};s(),a({...e,options:t})}}),[t.message,t.options.priority,s]);return React.createElement(r.Provider,{value:{currentNotice:t,setNotice:i,resetNotice:s}},e)}},1521:(e,t,a)=>{"use strict";a.d(t,{F:()=>r});var n=a(7723),c=a(3537);const r={message:(0,n.__)("Your site has been successfully connected.","jetpack-my-jetpack"),options:{id:"site-connection-success-notice",level:"success",actions:[],priority:c.pv,hideCloseButton:!1}}},6077:(e,t,a)=>{"use strict";a.d(t,{A:()=>s,_:()=>r});var n=a(1609);const c=(0,n.createContext)({state:{},setState:()=>{}}),r=(e,t)=>{const{state:a,setState:r}=(0,n.useContext)(c),{[e]:s=t}=a;(0,n.useEffect)((()=>{void 0===a[e]&&r((a=>({...a,[e]:t})))}),[t,e,r,a]);return[s,(0,n.useCallback)((t=>{r((a=>({...a,[e]:t})))}),[e,r])]},s=({children:e})=>{const[t,a]=(0,n.useState)({});return React.createElement(c.Provider,{value:{state:t,setState:a}},e)}},1504:(e,t,a)=>{"use strict";a.d(t,{AD:()=>u,Ck:()=>j,DB:()=>r,D_:()=>x,Dz:()=>k,FW:()=>g,IM:()=>p,L6:()=>m,MB:()=>A,MD:()=>C,Md:()=>f,O2:()=>l,QO:()=>b,Sm:()=>s,_:()=>w,dB:()=>R,gw:()=>y,jE:()=>v,jf:()=>o,no:()=>d,nw:()=>E,pN:()=>_,rR:()=>i,tb:()=>c,xF:()=>h});const n="my-jetpack/v1",c=`${n}/site/purchases`,r=`${n}/site/backup/undo-event`,s=`${n}/site/backup/count-items`,i=`${n}/chat/availability`,l=`${n}/chat/authentication`,o=`${n}/site/products`,u=`${n}/site/dismiss-welcome-banner`,m=`${n}/site/recommendations/evaluation`,d=`${n}/site/recommendations/evaluation/result`,p=e=>`jetpack/v4/stats-app/sites/${e}/stats/highlights`,h="product",g="activate product",v="install product",f="available licenses",w="chat availability",E="chat authentication",k="backup history",y="backup stats",A="stats counts",b="dismiss welcome banner",j="purchases",R="evaluate site recommendations",C="save site evaluation result",_="remove site evaluation result",x={ANTI_SPAM:"anti-spam",BACKUP:"backup",BOOST:"boost",CRM:"crm",CREATOR:"creator",EXTRAS:"extras",JETPACK_AI:"jetpack-ai",SCAN:"scan",SEARCH:"search",SOCIAL:"social",SECURITY:"security",PROTECT:"protect",VIDEOPRESS:"videopress",STATS:"stats"}},3804:(e,t,a)=>{"use strict";a.d(t,{A:()=>d});var n=a(7723),c=a(1609),r=a(6077),s=a(4526),i=a(1504),l=a(929),o=a(8242),u=a(4393),m=a(9812);const __=n.__,d=()=>{const{recordEvent:e}=(0,s.A)(),{isWelcomeBannerVisible:t,showWelcomeBanner:a}=(0,m.A)(),[n,d]=(0,r._)("recommendedModules",(0,o.A$)("recommendedModules").modules),p=(0,c.useMemo)((()=>{const{ownedProducts:e=[]}=(0,o.A$)("lifecycleStats");return n?.filter((t=>!e.includes(t))).slice(0,3)}),[n]),h=(0,c.useMemo)((()=>{const{dismissed:e}=(0,o.A$)("recommendedModules");return!e&&!t&&(0,u.A)()}),[t]),[g,v]=(0,r._)("recommendedModulesVisible",h&&!!p?.length),{mutate:f}=(0,l.A)({name:i.dB,query:{path:i.L6,method:"GET"},errorMessage:__("Failed to evaluate site recommendations","jetpack-my-jetpack")}),{mutate:w}=(0,l.A)({name:i.MD,query:{path:i.no,method:"POST"},errorMessage:__("Failed to save evaluation results. Please try again","jetpack-my-jetpack")}),{mutate:E}=(0,l.A)({name:i.pN,query:{path:i.no,method:"DELETE"},errorMessage:__("Failed to hide evaluation results. Please try again","jetpack-my-jetpack")});return{submitEvaluation:(0,c.useCallback)((e=>new Promise(((t,a)=>{f({queryParams:{goals:e}},{onSuccess:t,onError:a})}))),[f]),saveEvaluationResult:(0,c.useCallback)((e=>new Promise(((t,a)=>{w({data:{recommendations:e}},{onSuccess:e=>{d(e),v(!0),t()},onError:a})}))),[w,v,d]),removeEvaluationResult:(0,c.useCallback)((()=>{E({},{onSuccess:()=>{v(!1),e("jetpack_myjetpack_evaluation_recommendations_dismiss_click")}})}),[E,e,v]),redoEvaluation:(0,c.useCallback)((()=>{v(!1),a(),e("jetpack_myjetpack_evaluation_recommendations_redo_click")}),[e,v,a]),recommendedModules:p,isSectionVisible:g}}},2447:(e,t,a)=>{"use strict";a.d(t,{M:()=>o});var n=a(7723),c=a(1609),r=a(3537),s=a(6007),i=a(1504);const __=n.__,l=[i.Ck,i.FW,i.jE],o=({infoName:e,isError:t,overrideMessage:a})=>{const{setNotice:i}=(0,c.useContext)(s.g),o=a??(0,n.sprintf)(
+// translators: %s is the name of the information being fetched, e.g. "site purchases".
+__("There was an error fetching your %s information. Check your site connectivity and try again.","jetpack-my-jetpack"),e);(0,c.useEffect)((()=>{t&&l.includes(e)&&i({message:o,options:{id:"fetching-error-notice",level:"error",priority:r.PG}})}),[o,i,t,e])}},9935:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(7723),c=a(4526),r=a(1504),s=a(929),i=a(8242),l=a(4923);const __=n.__,o=e=>{const{detail:t,refetch:a}=(0,l.A)(e),{recordEvent:o}=(0,c.A)(),{mutate:u,isPending:m}=(0,s.A)({name:r.FW,query:{path:`${r.jf}/${e}`,method:"POST"},options:{onSuccess:()=>{(e=>{const{standalonePluginInfo:t,isPluginActive:a}=e;return t?.hasStandalonePlugin?t?.isStandaloneActive:a})(t)||(o("jetpack_myjetpack_product_activated",{product:e}),(e=>{const{items:t}=(0,i.A$)("products");t[e]?.standalone_plugin_info.has_standalone_plugin&&(window.myJetpackInitialState.products.items[e].standalone_plugin_info.is_standalone_active=!0,window.myJetpackInitialState.products.items[e].standalone_plugin_info.is_standalone_installed=!0)})(e)),a()}},errorMessage:(0,n.sprintf)(
+// translators: %$1s: Jetpack Product name
+__("Failed to activate %1$s. Please try again","jetpack-my-jetpack"),t.name)});return{activate:u,isPending:m}}},4367:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(7723),c=a(1504),r=a(929),s=a(4923);const __=n.__,i=e=>{const{detail:t,refetch:a}=(0,s.A)(e),{mutate:i,isPending:l}=(0,r.A)({name:c.jE,query:{path:`${c.jf}/${e}/install-standalone`,method:"POST"},options:{onSuccess:a},errorMessage:(0,n.sprintf)(
+// translators: %$1s: Jetpack Product name
+__("Failed to install standalone plugin for %1$s. Please try again","jetpack-my-jetpack"),t.name)});return{install:i,isPending:l}}},4923:(e,t,a)=>{"use strict";a.d(t,{A:()=>u,V:()=>l});var n=a(1609),c=a(1504),r=a(280),s=a(8242),i=a(8405);const l=()=>{const{items:e}=(0,s.A$)("products");return e?Object.entries(e).reduce(((e,[t,a])=>({...e,[t]:o(a)})),{}):{}},o=e=>{const t=(0,i.A)(e);return t.features=t.features||[],t.supportedProducts=t.supportedProducts||[],t.pricingForUi.fullPricePerMonth=(e=>"year"===e.pricingForUi.productTerm?Math.round(e.pricingForUi.fullPrice/12*100)/100:e.pricingForUi.fullPrice)(t),t.pricingForUi.discountPricePerMonth=(e=>"year"===e.pricingForUi.productTerm?Math.round(e.pricingForUi.discountPrice/12*100)/100:e.pricingForUi.discountPrice)(t),t},u=e=>{const t=l(),a=t?.[e],{refetch:s,isLoading:i}=(e=>(0,r.A)({name:`${c.xF}${e}`,query:{path:`${c.jf}/${e}`},options:{enabled:!1}}))(e);return{detail:a,refetch:(0,n.useCallback)((()=>(async(e,t)=>{const{data:a}=await t();window.myJetpackInitialState.products.items[e]=a})(e,s)),[e,s]),isLoading:i}}},357:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(5932),c=a(5104),r=a(2447),s=a(8242);const i=({name:e,queryFn:t,errorMessage:a})=>{const i=(0,c.I)({queryKey:[e],queryFn:()=>{const{apiRoot:e,apiNonce:a}=(0,s.qG)();return n.Ay.setApiRoot(e),n.Ay.setApiNonce(a),t(n.Ay)},refetchOnWindowFocus:!1,refetchIntervalInBackground:!1}),{isError:l,isLoading:o}=i;return(0,r.M)({infoName:e,isError:!o&&l,overrideMessage:a}),i}},929:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(4613),c=a(1455),r=a.n(c),s=a(3832),i=a(2447);const l=({name:e,query:t,options:a,errorMessage:c})=>{const l=(0,n.n)({mutationKey:[e],mutationFn:e=>{const a=Object.assign({},t);return e&&"queryParams"in e&&(a.path=(0,s.addQueryArgs)(a.path,e.queryParams),delete e.queryParams),r()({...a,...e})},...a}),{isError:o,isPending:u}=l;return(0,i.M)({infoName:e,isError:!u&&o,overrideMessage:c}),l}},280:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(5104),c=a(1455),r=a.n(c),s=a(2447);const i=({name:e,query:t,options:a,errorMessage:c})=>{const i=(0,n.I)({queryKey:[e],queryFn:()=>r()(t),refetchOnWindowFocus:!1,refetchIntervalInBackground:!1,...a}),{error:l,isError:o,isLoading:u}=i;return(0,s.M)({infoName:e,isError:!u&&o&&"not_connected"!==l.code,overrideMessage:c}),i}},4:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n=e=>{if(!e)return"unknown";const{modules:t,purchases:a,jetpackPlugins:n,isSiteConnected:c,isUserConnected:r}=e;return 0===a.length&&t.length<3?r&&c||0!==t.length||1!==n.length?"new":"brand-new":1===a.length&&t.length<10?"settling-in":"established"}},8242:(e,t,a)=>{"use strict";a.d(t,{A$:()=>n,SF:()=>r,qG:()=>c});const n=e=>e?window?.myJetpackInitialState?.[e]??{}:window?.myJetpackInitialState,c=()=>window?.myJetpackRest??{},r=e=>e?window?.JP_CONNECTION_INITIAL_STATE?.[e]??{}:window?.JP_CONNECTION_INITIAL_STATE},8117:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(8837);const c=e=>Object.values(e).filter((({requiresUserConnection:e,status:t})=>e&&(t===n.hp.ACTIVE||n.hp.USER_CONNECTION_ERROR))).map((({name:e})=>e))},4393:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(4),c=a(8242);const r=()=>{const e=(0,c.A$)("lifecycleStats");return["unknown","brand-new","new"].includes((0,n.A)(e))}},8405:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const n=e=>Array.isArray(e)?e.map((e=>n(e))):"object"==typeof e&&null!==e?Object.fromEntries(Object.entries(e).map((([e,t])=>[e.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace(/[-_]/g,""))),n(t)]))):e,c=n},9812:(e,t,a)=>{"use strict";a.d(t,{A:()=>o});var n=a(7723),c=a(1609),r=a(6077),s=a(1504),i=a(929),l=a(8242);const __=n.__,o=()=>{const{redBubbleAlerts:e}=(0,l.A$)(),[t,a]=(0,r._)("isWelcomeBannerVisible",Object.keys(e).includes("welcome-banner-active")),{mutate:n}=(0,i.A)({name:s.QO,query:{path:s.AD,method:"POST"},errorMessage:__("Failed to dismiss the welcome banner. Please try again","jetpack-my-jetpack")});return{dismissWelcomeBanner:(0,c.useCallback)((()=>{n(null,{onSuccess:()=>a(!1)})}),[n,a]),showWelcomeBanner:(0,c.useCallback)((()=>{a(!0)}),[a]),isWelcomeBannerVisible:t}}},4526:(e,t,a)=>{"use strict";a.d(t,{A:()=>i});var n=a(372),c=a(1609),r=a(8242),s=a(1870);const i=()=>{const{isUserConnected:e,isSiteConnected:t,connectedPlugins:a,userConnectionData:i={}}=(0,s.A)(),{login:l,ID:o}=i.currentUser?.wpcomUser||{},{myJetpackVersion:u=""}=(0,r.A$)();(0,c.useEffect)((()=>{e&&o&&l&&n.A.initialize(o,l)}),[o,e,l]);const m=Object.keys(a||{}).sort().join(",").replaceAll("jetpack-","");return{recordEvent:(0,c.useCallback)(((a,c)=>{n.A.tracks.recordEvent(a,{...c,version:u,is_site_connected:t,is_user_connected:e,referring_plugins:m})}),[])}}},3588:(e,t,a)=>{"use strict";a.d(t,{L:()=>i});var n=a(1609),c=a(8837),r=a(4526),s=a(3981);function i({slug:e}){const{recordEvent:t}=(0,r.A)(),a=(0,s.A)(c.NM.Home);return{onClickGoBack:(0,n.useCallback)((n=>{e&&t("jetpack_myjetpack_product_interstitial_back_link_click",{product:e}),document.referrer.includes(window.location.host)&&(n.preventDefault(),a())}),[t,e,a])}}},1870:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(9384),c=a(8242);const r=({skipUserConnection:e=!1,redirectUri:t=""}={})=>{const{apiRoot:a,apiNonce:r}=(0,c.qG)(),{topJetpackMenuItemUrl:s,blogID:i}=(0,c.A$)(),{registrationNonce:l}=(0,c.SF)(),o=(0,n.useConnection)({apiRoot:a,apiNonce:r,registrationNonce:l,skipUserConnection:e,from:"my-jetpack",redirectUri:t,autoTrigger:!1}),u=o.isRegistered,m=o.isRegistered;return{apiNonce:r,apiRoot:a,blogID:i,registrationNonce:l,...o,isSiteConnected:u,siteIsRegistered:m,topJetpackMenuItemUrl:s}}},3981:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(1609),c=a(9539);function r(e){const t=(0,c.Zp)();return(0,n.useCallback)((a=>t(e,a)),[t,e])}},5994:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(28);const c=()=>{const[e]=(0,n.ok)(),t=e.get("returnTo");return t?`admin.php?page=my-jetpack#/${t}`:"admin.php?page=my-jetpack"}},7436:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(8242),c=a(5048),r=a(8245),s=a(3711),i=a(2963);const l=()=>{const{redBubbleAlerts:e}=(0,n.A$)();(0,c.A)(e),(0,i.A)(e),(0,r.A)(),(0,s.A)(e)}},5048:(e,t,a)=>{"use strict";a.d(t,{A:()=>l});var n=a(7723),c=a(1609),r=a(3537),s=a(6007),i=a(4526);const __=n.__,l=e=>{const{setNotice:t}=(0,c.useContext)(s.g),{recordEvent:a}=(0,i.A)();(0,c.useEffect)((()=>{const c=Object.keys(e).filter((e=>e.endsWith("-bad-installation")));if(0===c.length)return;const s=e[c[0]],{plugin:i}=s.data,l=(0,n.sprintf)(
+// translators: %s is the name of the plugin that has a bad installation.
+__("Your installation of %1$s is incomplete. If you installed %1$s from GitHub, please refer to the developer documentation to set up your development environment.","jetpack-my-jetpack"),i),o={id:"bad-installation-notice",level:"error",actions:[{label:__("See documentation","jetpack-my-jetpack"),onClick:()=>{window.open("https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md"),a("jetpack_my_jetpack_bad_installation_notice_cta_click",{plugin:i})},noDefaultClasses:!0}],priority:r.EX};t({message:l,options:o})}),[e,t,a])}},8245:(e,t,a)=>{"use strict";a.d(t,{A:()=>m});var n=a(8509),c=a(7425),r=a(9384),s=a(7723),i=a(1609),l=a(3537),o=a(6007),u=a(4526);const __=s.__,m=()=>{const{setNotice:e,currentNotice:t}=(0,i.useContext)(o.g),{hasConnectionError:a,connectionErrorMessage:m}=(0,r.useConnectionErrorNotice)(),{restoreConnection:d,isRestoringConnection:p,restoreConnectionError:h}=(0,r.useRestoreConnection)(),{recordEvent:g}=(0,u.A)();(0,i.useEffect)((()=>{if(!a)return;let t=m;h&&(t=React.createElement(n.A,null,React.createElement(c.Ay,{mb:2},(0,s.sprintf)(/* translators: placeholder is the error. */
+__("There was an error reconnecting Jetpack. Error: %s","jetpack-my-jetpack"),h)),React.createElement(c.Ay,{mb:2},m)));const r=__("Reconnecting Jetpack…","jetpack-my-jetpack"),i={id:"connection-error-notice",level:"error",actions:[{label:__("Restore Connection","jetpack-my-jetpack"),onClick:()=>{d(),g("jetpack_my_jetpack_connection_error_notice_reconnect_cta_click")},isLoading:p,loadingText:r,noDefaultClasses:!0}],priority:l.pv+(p?1:0)};e({message:t,options:i})}),[e,g,a,m,d,p,h,t.options.priority])}},3711:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(1609),c=a(3537),r=a(6007);const s=e=>{const{setNotice:t,resetNotice:a}=(0,n.useContext)(r.g);(0,n.useEffect)((()=>{const n=Object.keys(e).filter((e=>e.endsWith("-deprecate-feature")));if(0===n.length)return;const r=e[n[0]],{text:s,link:i,id:l}=r.data,o={id:"deprecate-feature-notice",level:"error",actions:[{label:i.label,onClick:()=>{window.open(i.url)},noDefaultClasses:!0}],hideCloseButton:!1,onClose:()=>{document.cookie=`jetpack_deprecate_dismissed[${l}]=1; expires=Fri, 31 Dec 9999 23:59:59 GMT; SameSite=None;`,delete e[n[0]],a()},priority:c.EX};t({message:s,options:o})}),[e,t,a])}},2963:(e,t,a)=>{"use strict";a.d(t,{A:()=>f});var n=a(8509),c=a(7425),r=a(5879),s=a(7723),i=a(1609),l=a(8837),o=a(3537),u=a(6007),m=a(1521),d=a(4923),p=a(8117),h=a(4526),g=a(1870),v=a(3981);const __=s.__,f=e=>{const{recordEvent:t}=(0,h.A)(),{setNotice:a,resetNotice:f}=(0,i.useContext)(u.g),{handleRegisterSite:w,siteIsRegistering:E}=(0,g.A)({skipUserConnection:!0}),k=(0,d.V)(),y=(0,v.A)(l.NM.Connection),A="missing-connection",b=e[A];(0,i.useEffect)((()=>{if(!b)return;const i=(0,p.A)(k),l="user"===b.type,u=(0,s.sprintf)(/* translators: placeholder is product name. */
+__("Jetpack %s needs a user connection to WordPress.com to be able to work.","jetpack-my-jetpack"),i[0]),d={message:1===i.length?u:__("Some products need a user connection to WordPress.com to be able to work.","jetpack-my-jetpack"),buttonLabel:__("Connect your user account","jetpack-my-jetpack"),title:__("Missing user connection","jetpack-my-jetpack")},h={message:__("Some products need a connection to WordPress.com to be able to work.","jetpack-my-jetpack"),buttonLabel:__("Connect your site","jetpack-my-jetpack"),title:__("Missing site connection","jetpack-my-jetpack")},g={id:A,level:b.is_error?"error":"info",actions:[{label:l?d.buttonLabel:h.buttonLabel,isLoading:E,loadingText:__("Connecting…","jetpack-my-jetpack"),onClick:()=>{l&&(t("jetpack_my_jetpack_user_connection_notice_cta_click"),y()),t("jetpack_my_jetpack_site_connection_notice_cta_click"),w().then((()=>{a(m.F,f),delete e[A],window.myJetpackInitialState.redBubbleAlerts=e}))},noDefaultClasses:!0}],priority:o.pv+(E?1:0),isRedBubble:!0,tracksArgs:{type:b.type,is_error:b.is_error}},v=l?d.message:React.createElement(n.A,null,React.createElement(c.Ay,{mb:2},h.message),React.createElement(r.A,{agreeButtonLabel:h.buttonLabel}));a({message:v,title:l?d.title:h.title,options:g})}),[w,y,k,t,e,f,a,E,b])}},1413:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});var n=a(1609);const c=(e,t)=>{(0,n.useEffect)((()=>{const a=a=>{a.target instanceof Element&&e.current&&!e.current.contains(a.target)&&t(a)};return document.addEventListener("mousedown",a),()=>{document.removeEventListener("mousedown",a)}}),[e,t])}},1524:(e,t,a)=>{"use strict";function n(){const e=window.location.search;return new URLSearchParams(e).has("redirect_to_referrer","1")&&""!==document.referrer?document.referrer:null}a.d(t,{y:()=>n})},6581:(e,t,a)=>{"use strict";a.d(t,{A:()=>r});var n=a(7975);const c={maximumFractionDigits:1,notation:"compact"},r=(e,t=c)=>null!==e&&Number.isFinite(e)?(0,n.A)(e,t):"-"},2753:(e,t,a)=>{"use strict";a.d(t,{A:()=>n});const n=e=>{const t=Math.floor(3600*e),a=Math.floor(t/60);e=Math.floor(e);const n=Math.floor(e/24),c=Math.floor(n/365);return c>0?`${c}y ${n%365}d`:n>0?`${n}d ${e%24}h`:e>0?`${e}h ${a%60}m`:a>0?`${a}m ${t%60}s`:`${Math.floor(t)}s`}},6256:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(3924),c=a(8837),r=a(8242);const s=()=>{const{siteSuffix:e="",blogID:t}=(0,r.A$)();return(0,n.A)(c.OM,{site:t??e})}},3542:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(3924),c=a(8837),r=a(8242);const s=()=>{const{siteSuffix:e="",blogID:t,myJetpackCheckoutUri:a,lifecycleStats:s}=(0,r.A$)(),{isSiteConnected:i,isUserConnected:l}=s,o=i&&l?c.ED:c.mk;return(0,n.A)(o,(()=>{const n=a?`redirect_to=${a}`:null;return i&&l?{site:t??e,query:n}:{query:n}})())}},3658:(e,t,a)=>{"use strict";a.d(t,{w:()=>c});var n=a(8242);const c=()=>{const{plugins:e}=(0,n.A$)()||{},t=Object.values(e).find((e=>"Jetpack"===e?.Name));return t&&t.active}},8252:(e,t,a)=>{"use strict";a.d(t,{M:()=>c,b:()=>n});const n=({partner_slug:e})=>!!e&&"goldenticket"===e;function c(e){return!!Array.isArray(e)&&e.filter((e=>n(e))).length>0}},2434:(e,t,a)=>{"use strict";a.d(t,{A:()=>c});const n=/\s+(\S*)$/,c=(e,t=2)=>((e,t)=>{let a=0;if(e&&e.length>0){let c=e,r="";for(;a{"use strict";function n(){return window._tkq=window._tkq||[],e=`//stats.wp.com/w.js?${function(){const e=new Date,t=e.getFullYear(),a=new Date(t,0,1),n=Math.floor((e.getTime()-a.getTime())/864e5);return`${t}${Math.ceil((n+a.getDay()+1)/7).toString().padStart(2,"0")}`}()}`,new Promise(((t,a)=>{const n=document.createElement("script");n.src=e,n.onload=()=>t(),n.onerror=()=>{a(new Error(`Failed to load script: ${e}`))},document.head.appendChild(n)}));var e}a.d(t,{A:()=>n})},4542:(e,t,a)=>{"use strict";a.d(t,{_:()=>c});var n=a(7723);const _n=n._n,__=n.__;function c(e){const t=new Date,a=6e4*t.getTimezoneOffset(),c=Math.floor((new Date(t.getTime()+a).getTime()-e)/1e3);let r=c/31536e3;return r>1?(0,n.sprintf)(
+// translators: placeholder is a number amount of years i.e. "5 years ago".
+_n("%s year ago","%s years ago",Math.floor(r),"jetpack-my-jetpack"),Math.floor(r)):(r=c/2592e3,r>1?(0,n.sprintf)(
+// translators: placeholder is a number amount of months i.e. "5 months ago".
+_n("%s month ago","%s months ago",Math.floor(r),"jetpack-my-jetpack"),Math.floor(r)):(r=c/86400,r>1?(0,n.sprintf)(
+// translators: placeholder is a number amount of days i.e. "5 days ago".
+_n("%s day ago","%s days ago",Math.floor(r),"jetpack-my-jetpack"),Math.floor(r)):(r=c/3600,r>1?(0,n.sprintf)(
+// translators: placeholder is a number amount of hours i.e. "5 hours ago".
+_n("%s hour ago","%s hours ago",Math.floor(r),"jetpack-my-jetpack"),Math.floor(r)):(r=c/60,r>1?(0,n.sprintf)(
+// translators: placeholder is a number amount of minutes i.e. "5 minutes ago".
+_n("%s minute ago","%s minutes ago",Math.floor(r),"jetpack-my-jetpack"),Math.floor(r)):__("a few seconds ago","jetpack-my-jetpack")))))}},6309:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-license-activation-with-lock-cef570e11997f185e23d.png"},7139:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-license-activation-with-success-c5c132e713a79e05985f.png"},2822:(e,t,a)=>{"use strict";e.exports=a.p+"images/apple-92dacafad84e79708a74.svg"},8395:(e,t,a)=>{"use strict";e.exports=a.p+"images/connect-c399837fe1621b176d10.png"},5975:(e,t,a)=>{"use strict";e.exports=a.p+"images/github-45c648158e3e86b560f5.svg"},5519:(e,t,a)=>{"use strict";e.exports=a.p+"images/google-dec2a429bf1d8e83f9ad.svg"},6579:(e,t,a)=>{"use strict";e.exports=a.p+"images/wordpress-1fc3e0ba6c52e9707900.svg"},5042:(e,t,a)=>{"use strict";e.exports=a.p+"images/cloud-81ac85ba680343200f54.svg"},3168:(e,t,a)=>{"use strict";e.exports=a.p+"images/empty-avatar-fea23feddfa99b07c2e8.svg"},7757:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-gray-7eeb5eb060c8adea8622.svg"},7319:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-9de1caef5eb5c22da5d6.svg"},4576:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-manage-3a7ecaa604823c98c3cf.svg"},6068:(e,t,a)=>{"use strict";e.exports=a.p+"images/shield-inactive-cba3b43d918377b506e5.svg"},850:(e,t,a)=>{"use strict";e.exports=a.p+"images/shield-off-47426e7b562ef20ae513.svg"},4538:(e,t,a)=>{"use strict";e.exports=a.p+"images/shield-partial-48b279219c6389a129b9.svg"},4516:(e,t,a)=>{"use strict";e.exports=a.p+"images/shield-success-e64a26c3a6d0888fba06.svg"},8769:(e,t,a)=>{"use strict";e.exports=a.p+"images/boost-9e9a227e7e7280d0aa85.png"},5296:(e,t,a)=>{"use strict";e.exports=a.p+"images/crm-8a2b204e2c720730e928.png"},4660:(e,t,a)=>{"use strict";e.exports=a.p+"images/extras-c6bd0796750901faa7fd.png"},9923:(e,t,a)=>{"use strict";e.exports=a.p+"images/jetpack-ai-d29bf65dcea46074d72f.png"},7642:(e,t,a)=>{"use strict";e.exports=a.p+"images/search-d177a31292d96d5ccbc2.png"},15:(e,t,a)=>{"use strict";e.exports=a.p+"images/social-b8744a40c7c19a7bcc37.png"},9409:(e,t,a)=>{"use strict";e.exports=a.p+"images/stats-95b42796ede4f632b642.png"},5044:(e,t,a)=>{"use strict";e.exports=a.p+"images/videopress-9c064bc7b89c386e5e50.png"},5990:e=>{"use strict";if(void 0==={consumer_slug:"my_jetpack"}){var t=new Error('Cannot find module \'{"consumer_slug":"my_jetpack"}\'');throw t.code="MODULE_NOT_FOUND",t}e.exports={consumer_slug:"my_jetpack"}},9384:e=>{"use strict";e.exports=window.JetpackConnection},7999:e=>{"use strict";e.exports=window.JetpackScriptDataModule},1609:e=>{"use strict";e.exports=window.React},790:e=>{"use strict";e.exports=window.ReactJSXRuntime},1455:e=>{"use strict";e.exports=window.wp.apiFetch},6427:e=>{"use strict";e.exports=window.wp.components},9491:e=>{"use strict";e.exports=window.wp.compose},7143:e=>{"use strict";e.exports=window.wp.data},8443:e=>{"use strict";e.exports=window.wp.date},6087:e=>{"use strict";e.exports=window.wp.element},7723:e=>{"use strict";e.exports=window.wp.i18n},5573:e=>{"use strict";e.exports=window.wp.primitives},3832:e=>{"use strict";e.exports=window.wp.url},6072:e=>{function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";a.d(t,{m:()=>r});var n=a(5530),c=a(698),r=new class extends n.Q{#e;#t;#a;constructor(){super(),this.#a=e=>{if(!c.S$&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e((e=>{"boolean"==typeof e?this.setFocused(e):this.onFocus()}))}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){this.listeners.forEach((e=>{e()}))}isFocused(){return"boolean"==typeof this.#e?this.#e:"hidden"!==globalThis.document?.visibilityState}}},9101:(e,t,a)=>{"use strict";a.d(t,{PL:()=>c});var n=a(698);function c(e){return{onFetch:(t,a)=>{const c=async()=>{const a=t.options,c=t.fetchOptions?.meta?.fetchMore?.direction,i=t.state.data?.pages||[],l=t.state.data?.pageParams||[],o={pages:[],pageParams:[]};let u=!1;const m=t.options.queryFn||(()=>Promise.reject(new Error(`Missing queryFn: '${t.options.queryHash}'`))),d=async(e,a,c)=>{if(u)return Promise.reject();if(null==a&&e.pages.length)return Promise.resolve(e);const r={queryKey:t.queryKey,pageParam:a,direction:c?"backward":"forward",meta:t.options.meta};var s;s=r,Object.defineProperty(s,"signal",{enumerable:!0,get:()=>(t.signal.aborted?u=!0:t.signal.addEventListener("abort",(()=>{u=!0})),t.signal)});const i=await m(r),{maxPages:l}=t.options,o=c?n.ZZ:n.y9;return{pages:o(e.pages,i,l),pageParams:o(e.pageParams,a,l)}};let p;if(c&&i.length){const e="backward"===c,t={pages:i,pageParams:l},n=(e?s:r)(a,t);p=await d(t,n,e)}else{p=await d(o,l[0]??a.initialPageParam);const t=e??i.length;for(let e=1;et.options.persister?.(c,{queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},a):t.fetchFn=c}}}function r(e,{pages:t,pageParams:a}){const n=t.length-1;return e.getNextPageParam(t[n],t,a[n],a)}function s(e,{pages:t,pageParams:a}){return e.getPreviousPageParam?.(t[0],t,a[0],a)}},4352:(e,t,a)=>{"use strict";a.d(t,{$:()=>i,s:()=>s});var n=a(1795),c=a(1450),r=a(4610),s=class extends c.k{#n;#c;#r;#s;constructor(e){super(),this.mutationId=e.mutationId,this.#c=e.defaultOptions,this.#r=e.mutationCache,this.#n=[],this.state=e.state||{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0},this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options={...this.#c,...e},this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#n.includes(e)||(this.#n.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#n=this.#n.filter((t=>t!==e)),this.scheduleGc(),this.#r.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#n.length||("pending"===this.state.status?this.scheduleGc():this.#r.remove(this))}continue(){return this.#s?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>(this.#s=(0,r.II)({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(e,t)=>{this.#i({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode}),this.#s.promise),a="pending"===this.state.status;try{if(!a){this.#i({type:"pending",variables:e}),await(this.#r.config.onMutate?.(e,this));const t=await(this.options.onMutate?.(e));t!==this.state.context&&this.#i({type:"pending",context:t,variables:e})}const n=await t();return await(this.#r.config.onSuccess?.(n,e,this.state.context,this)),await(this.options.onSuccess?.(n,e,this.state.context)),await(this.#r.config.onSettled?.(n,null,this.state.variables,this.state.context,this)),await(this.options.onSettled?.(n,null,e,this.state.context)),this.#i({type:"success",data:n}),n}catch(t){try{throw await(this.#r.config.onError?.(t,e,this.state.context,this)),await(this.options.onError?.(t,e,this.state.context)),await(this.#r.config.onSettled?.(void 0,t,this.state.variables,this.state.context,this)),await(this.options.onSettled?.(void 0,t,e,this.state.context)),t}finally{this.#i({type:"error",error:t})}}}#i(e){this.state=(t=>{switch(e.type){case"failed":return{...t,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...t,isPaused:!0};case"continue":return{...t,isPaused:!1};case"pending":return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:!(0,r.v_)(this.options.networkMode),status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}})(this.state),n.j.batch((()=>{this.#n.forEach((t=>{t.onMutationUpdate(e)})),this.#r.notify({mutation:this,type:"updated",action:e})}))}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}},7708:(e,t,a)=>{"use strict";a.d(t,{q:()=>i});var n=a(1795),c=a(4352),r=a(698),s=a(5530),i=class extends s.Q{constructor(e={}){super(),this.config=e,this.#l=[],this.#o=0}#l;#o;#u;build(e,t,a){const n=new c.s({mutationCache:this,mutationId:++this.#o,options:e.defaultMutationOptions(t),state:a});return this.add(n),n}add(e){this.#l.push(e),this.notify({type:"added",mutation:e})}remove(e){this.#l=this.#l.filter((t=>t!==e)),this.notify({type:"removed",mutation:e})}clear(){n.j.batch((()=>{this.#l.forEach((e=>{this.remove(e)}))}))}getAll(){return this.#l}find(e){const t={exact:!0,...e};return this.#l.find((e=>(0,r.nJ)(t,e)))}findAll(e={}){return this.#l.filter((t=>(0,r.nJ)(e,t)))}notify(e){n.j.batch((()=>{this.listeners.forEach((t=>{t(e)}))}))}resumePausedMutations(){return this.#u=(this.#u??Promise.resolve()).then((()=>{const e=this.#l.filter((e=>e.state.isPaused));return n.j.batch((()=>e.reduce(((e,t)=>e.then((()=>t.continue().catch(r.lQ)))),Promise.resolve())))})).then((()=>{this.#u=void 0})),this.#u}}},4158:(e,t,a)=>{"use strict";a.d(t,{_:()=>i});var n=a(4352),c=a(1795),r=a(5530),s=a(698),i=class extends r.Q{#m;#d=void 0;#p;#h;constructor(e,t){super(),this.#m=e,this.setOptions(t),this.bindMethods(),this.#g()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){const t=this.options;this.options=this.#m.defaultMutationOptions(e),(0,s.f8)(t,this.options)||this.#m.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#p,observer:this}),t?.mutationKey&&this.options.mutationKey&&(0,s.EN)(t.mutationKey)!==(0,s.EN)(this.options.mutationKey)?this.reset():this.#p?.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#p?.removeObserver(this)}onMutationUpdate(e){this.#g(),this.#v(e)}getCurrentResult(){return this.#d}reset(){this.#p?.removeObserver(this),this.#p=void 0,this.#g(),this.#v()}mutate(e,t){return this.#h=t,this.#p?.removeObserver(this),this.#p=this.#m.getMutationCache().build(this.#m,this.options),this.#p.addObserver(this),this.#p.execute(e)}#g(){const e=this.#p?.state??(0,n.$)();this.#d={...e,isPending:"pending"===e.status,isSuccess:"success"===e.status,isError:"error"===e.status,isIdle:"idle"===e.status,mutate:this.mutate,reset:this.reset}}#v(e){c.j.batch((()=>{if(this.#h&&this.hasListeners()){const t=this.#d.variables,a=this.#d.context;"success"===e?.type?(this.#h.onSuccess?.(e.data,t,a),this.#h.onSettled?.(e.data,null,t,a)):"error"===e?.type&&(this.#h.onError?.(e.error,t,a),this.#h.onSettled?.(void 0,e.error,t,a))}this.listeners.forEach((e=>{e(this.#d)}))}))}}},1795:(e,t,a)=>{"use strict";a.d(t,{j:()=>n});var n=function(){let e=[],t=0,a=e=>{e()},n=e=>{e()},c=e=>setTimeout(e,0);const r=n=>{t?e.push(n):c((()=>{a(n)}))},s=()=>{const t=e;e=[],t.length&&c((()=>{n((()=>{t.forEach((e=>{a(e)}))}))}))};return{batch:e=>{let a;t++;try{a=e()}finally{t--,t||s()}return a},batchCalls:e=>(...t)=>{r((()=>{e(...t)}))},schedule:r,setNotifyFunction:e=>{a=e},setBatchNotifyFunction:e=>{n=e},setScheduler:e=>{c=e}}}()},5873:(e,t,a)=>{"use strict";a.d(t,{t:()=>r});var n=a(5530),c=a(698),r=new class extends n.Q{#f=!0;#t;#a;constructor(){super(),this.#a=e=>{if(!c.S$&&window.addEventListener){const t=()=>e(!0),a=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",a)}}}}onSubscribe(){this.#t||this.setEventListener(this.#a)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#a=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#f!==e&&(this.#f=e,this.listeners.forEach((t=>{t(e)})))}isOnline(){return this.#f}}},4135:(e,t,a)=>{"use strict";a.d(t,{X:()=>i});var n=a(698),c=a(1795),r=a(4610),s=a(1450),i=class extends s.k{#w;#E;#k;#y;#s;#n;#c;#A;constructor(e){super(),this.#A=!1,this.#c=e.defaultOptions,this.#b(e.options),this.#n=[],this.#k=e.cache,this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#w=e.state||function(e){const t="function"==typeof e.initialData?e.initialData():e.initialData,a=void 0!==t,n=a?"function"==typeof e.initialDataUpdatedAt?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:a?n??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}(this.options),this.state=this.#w,this.scheduleGc()}get meta(){return this.options.meta}#b(e){this.options={...this.#c,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){this.#n.length||"idle"!==this.state.fetchStatus||this.#k.remove(this)}setData(e,t){const a=(0,n.pl)(this.state.data,e,this.options);return this.#i({data:a,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),a}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#y;return this.#s?.cancel(e),t?t.then(n.lQ).catch(n.lQ):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#w)}isActive(){return this.#n.some((e=>!1!==e.options.enabled))}isDisabled(){return this.getObserversCount()>0&&!this.isActive()}isStale(){return this.state.isInvalidated||!this.state.dataUpdatedAt||this.#n.some((e=>e.getCurrentResult().isStale))}isStaleByTime(e=0){return this.state.isInvalidated||!this.state.dataUpdatedAt||!(0,n.j3)(this.state.dataUpdatedAt,e)}onFocus(){const e=this.#n.find((e=>e.shouldFetchOnWindowFocus()));e?.refetch({cancelRefetch:!1}),this.#s?.continue()}onOnline(){const e=this.#n.find((e=>e.shouldFetchOnReconnect()));e?.refetch({cancelRefetch:!1}),this.#s?.continue()}addObserver(e){this.#n.includes(e)||(this.#n.push(e),this.clearGcTimeout(),this.#k.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.#n.includes(e)&&(this.#n=this.#n.filter((t=>t!==e)),this.#n.length||(this.#s&&(this.#A?this.#s.cancel({revert:!0}):this.#s.cancelRetry()),this.scheduleGc()),this.#k.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.#n.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if("idle"!==this.state.fetchStatus)if(this.state.dataUpdatedAt&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#y)return this.#s?.continueRetry(),this.#y;if(e&&this.#b(e),!this.options.queryFn){const e=this.#n.find((e=>e.options.queryFn));e&&this.#b(e.options)}const a=new AbortController,n={queryKey:this.queryKey,meta:this.meta},c=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#A=!0,a.signal)})};c(n);const s={fetchOptions:t,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:()=>this.options.queryFn?(this.#A=!1,this.options.persister?this.options.persister(this.options.queryFn,n,this):this.options.queryFn(n)):Promise.reject(new Error(`Missing queryFn: '${this.options.queryHash}'`))};c(s),this.options.behavior?.onFetch(s,this),this.#E=this.state,"idle"!==this.state.fetchStatus&&this.state.fetchMeta===s.fetchOptions?.meta||this.#i({type:"fetch",meta:s.fetchOptions?.meta});const i=e=>{(0,r.wm)(e)&&e.silent||this.#i({type:"error",error:e}),(0,r.wm)(e)||(this.#k.config.onError?.(e,this),this.#k.config.onSettled?.(this.state.data,e,this)),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1};return this.#s=(0,r.II)({fn:s.fetchFn,abort:a.abort.bind(a),onSuccess:e=>{void 0!==e?(this.setData(e),this.#k.config.onSuccess?.(e,this),this.#k.config.onSettled?.(e,this.state.error,this),this.isFetchingOptimistic||this.scheduleGc(),this.isFetchingOptimistic=!1):i(new Error(`${this.queryHash} data is undefined`))},onError:i,onFail:(e,t)=>{this.#i({type:"failed",failureCount:e,error:t})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode}),this.#y=this.#s.promise,this.#y}#i(e){this.state=(t=>{switch(e.type){case"failed":return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...t,fetchStatus:"paused"};case"continue":return{...t,fetchStatus:"fetching"};case"fetch":return{...t,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:e.meta??null,fetchStatus:(0,r.v_)(this.options.networkMode)?"fetching":"paused",...!t.dataUpdatedAt&&{error:null,status:"pending"}};case"success":return{...t,data:e.data,dataUpdateCount:t.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const a=e.error;return(0,r.wm)(a)&&a.revert&&this.#E?{...this.#E,fetchStatus:"idle"}:{...t,error:a,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:a,fetchStatus:"idle",status:"error"};case"invalidate":return{...t,isInvalidated:!0};case"setState":return{...t,...e.state}}})(this.state),c.j.batch((()=>{this.#n.forEach((e=>{e.onQueryUpdate()})),this.#k.notify({query:this,type:"updated",action:e})}))}}},3205:(e,t,a)=>{"use strict";a.d(t,{$:()=>i});var n=a(698),c=a(4135),r=a(1795),s=a(5530),i=class extends s.Q{constructor(e={}){super(),this.config=e,this.#j=new Map}#j;build(e,t,a){const r=t.queryKey,s=t.queryHash??(0,n.F$)(r,t);let i=this.get(s);return i||(i=new c.X({cache:this,queryKey:r,queryHash:s,options:e.defaultQueryOptions(t),state:a,defaultOptions:e.getQueryDefaults(r)}),this.add(i)),i}add(e){this.#j.has(e.queryHash)||(this.#j.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#j.get(e.queryHash);t&&(e.destroy(),t===e&&this.#j.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){r.j.batch((()=>{this.getAll().forEach((e=>{this.remove(e)}))}))}get(e){return this.#j.get(e)}getAll(){return[...this.#j.values()]}find(e){const t={exact:!0,...e};return this.getAll().find((e=>(0,n.MK)(t,e)))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter((t=>(0,n.MK)(e,t))):t}notify(e){r.j.batch((()=>{this.listeners.forEach((t=>{t(e)}))}))}onFocus(){r.j.batch((()=>{this.getAll().forEach((e=>{e.onFocus()}))}))}onOnline(){r.j.batch((()=>{this.getAll().forEach((e=>{e.onOnline()}))}))}}},116:(e,t,a)=>{"use strict";a.d(t,{E:()=>u});var n=a(698),c=a(3205),r=a(7708),s=a(2464),i=a(5873),l=a(1795),o=a(9101),u=class{#R;#r;#c;#C;#_;#x;#N;#z;constructor(e={}){this.#R=e.queryCache||new c.$,this.#r=e.mutationCache||new r.q,this.#c=e.defaultOptions||{},this.#C=new Map,this.#_=new Map,this.#x=0}mount(){this.#x++,1===this.#x&&(this.#N=s.m.subscribe((()=>{s.m.isFocused()&&(this.resumePausedMutations(),this.#R.onFocus())})),this.#z=i.t.subscribe((()=>{i.t.isOnline()&&(this.resumePausedMutations(),this.#R.onOnline())})))}unmount(){this.#x--,0===this.#x&&(this.#N?.(),this.#N=void 0,this.#z?.(),this.#z=void 0)}isFetching(e){return this.#R.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#r.findAll({...e,status:"pending"}).length}getQueryData(e){return this.#R.find({queryKey:e})?.state.data}ensureQueryData(e){const t=this.getQueryData(e.queryKey);return void 0!==t?Promise.resolve(t):this.fetchQuery(e)}getQueriesData(e){return this.getQueryCache().findAll(e).map((({queryKey:e,state:t})=>[e,t.data]))}setQueryData(e,t,a){const c=this.#R.find({queryKey:e}),r=c?.state.data,s=(0,n.Zw)(t,r);if(void 0===s)return;const i=this.defaultQueryOptions({queryKey:e});return this.#R.build(this,i).setData(s,{...a,manual:!0})}setQueriesData(e,t,a){return l.j.batch((()=>this.getQueryCache().findAll(e).map((({queryKey:e})=>[e,this.setQueryData(e,t,a)]))))}getQueryState(e){return this.#R.find({queryKey:e})?.state}removeQueries(e){const t=this.#R;l.j.batch((()=>{t.findAll(e).forEach((e=>{t.remove(e)}))}))}resetQueries(e,t){const a=this.#R,n={type:"active",...e};return l.j.batch((()=>(a.findAll(e).forEach((e=>{e.reset()})),this.refetchQueries(n,t))))}cancelQueries(e={},t={}){const a={revert:!0,...t},c=l.j.batch((()=>this.#R.findAll(e).map((e=>e.cancel(a)))));return Promise.all(c).then(n.lQ).catch(n.lQ)}invalidateQueries(e={},t={}){return l.j.batch((()=>{if(this.#R.findAll(e).forEach((e=>{e.invalidate()})),"none"===e.refetchType)return Promise.resolve();const a={...e,type:e.refetchType??e.type??"active"};return this.refetchQueries(a,t)}))}refetchQueries(e={},t){const a={...t,cancelRefetch:t?.cancelRefetch??!0},c=l.j.batch((()=>this.#R.findAll(e).filter((e=>!e.isDisabled())).map((e=>{let t=e.fetch(void 0,a);return a.throwOnError||(t=t.catch(n.lQ)),"paused"===e.state.fetchStatus?Promise.resolve():t}))));return Promise.all(c).then(n.lQ)}fetchQuery(e){const t=this.defaultQueryOptions(e);void 0===t.retry&&(t.retry=!1);const a=this.#R.build(this,t);return a.isStaleByTime(t.staleTime)?a.fetch(t):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(n.lQ).catch(n.lQ)}fetchInfiniteQuery(e){return e.behavior=(0,o.PL)(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(n.lQ).catch(n.lQ)}resumePausedMutations(){return this.#r.resumePausedMutations()}getQueryCache(){return this.#R}getMutationCache(){return this.#r}getDefaultOptions(){return this.#c}setDefaultOptions(e){this.#c=e}setQueryDefaults(e,t){this.#C.set((0,n.EN)(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#C.values()];let a={};return t.forEach((t=>{(0,n.Cp)(e,t.queryKey)&&(a={...a,...t.defaultOptions})})),a}setMutationDefaults(e,t){this.#_.set((0,n.EN)(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#_.values()];let a={};return t.forEach((t=>{(0,n.Cp)(e,t.mutationKey)&&(a={...a,...t.defaultOptions})})),a}defaultQueryOptions(e){if(e?._defaulted)return e;const t={...this.#c.queries,...e?.queryKey&&this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=(0,n.F$)(t.queryKey,t)),void 0===t.refetchOnReconnect&&(t.refetchOnReconnect="always"!==t.networkMode),void 0===t.throwOnError&&(t.throwOnError=!!t.suspense),void 0===t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#c.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#R.clear(),this.#r.clear()}}},3397:(e,t,a)=>{"use strict";a.d(t,{$:()=>l});var n=a(698),c=a(1795),r=a(2464),s=a(5530),i=a(4610),l=class extends s.Q{constructor(e,t){super(),this.options=t,this.#m=e,this.#M=null,this.bindMethods(),this.setOptions(t)}#m;#S=void 0;#L=void 0;#d=void 0;#V;#P;#M;#H;#B;#O;#I;#T;#F;#U=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){1===this.listeners.size&&(this.#S.addObserver(this),o(this.#S,this.options)?this.#D():this.updateResult(),this.#q())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return u(this.#S,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return u(this.#S,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#J(),this.#G(),this.#S.removeObserver(this)}setOptions(e,t){const a=this.options,c=this.#S;if(this.options=this.#m.defaultQueryOptions(e),(0,n.f8)(a,this.options)||this.#m.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#S,observer:this}),void 0!==this.options.enabled&&"boolean"!=typeof this.options.enabled)throw new Error("Expected enabled to be a boolean");this.options.queryKey||(this.options.queryKey=a.queryKey),this.#$();const r=this.hasListeners();r&&m(this.#S,c,this.options,a)&&this.#D(),this.updateResult(t),!r||this.#S===c&&this.options.enabled===a.enabled&&this.options.staleTime===a.staleTime||this.#W();const s=this.#Q();!r||this.#S===c&&this.options.enabled===a.enabled&&s===this.#F||this.#K(s)}getOptimisticResult(e){const t=this.#m.getQueryCache().build(this.#m,e),a=this.createResult(t,e);return function(e,t){if(!(0,n.f8)(e.getCurrentResult(),t))return!0;return!1}(this,a)&&(this.#d=a,this.#P=this.options,this.#V=this.#S.state),a}getCurrentResult(){return this.#d}trackResult(e){const t={};return Object.keys(e).forEach((a=>{Object.defineProperty(t,a,{configurable:!1,enumerable:!0,get:()=>(this.#U.add(a),e[a])})})),t}getCurrentQuery(){return this.#S}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const t=this.#m.defaultQueryOptions(e),a=this.#m.getQueryCache().build(this.#m,t);return a.isFetchingOptimistic=!0,a.fetch().then((()=>this.createResult(a,t)))}fetch(e){return this.#D({...e,cancelRefetch:e.cancelRefetch??!0}).then((()=>(this.updateResult(),this.#d)))}#D(e){this.#$();let t=this.#S.fetch(this.options,e);return e?.throwOnError||(t=t.catch(n.lQ)),t}#W(){if(this.#J(),n.S$||this.#d.isStale||!(0,n.gn)(this.options.staleTime))return;const e=(0,n.j3)(this.#d.dataUpdatedAt,this.options.staleTime)+1;this.#I=setTimeout((()=>{this.#d.isStale||this.updateResult()}),e)}#Q(){return("function"==typeof this.options.refetchInterval?this.options.refetchInterval(this.#S):this.options.refetchInterval)??!1}#K(e){this.#G(),this.#F=e,!n.S$&&!1!==this.options.enabled&&(0,n.gn)(this.#F)&&0!==this.#F&&(this.#T=setInterval((()=>{(this.options.refetchIntervalInBackground||r.m.isFocused())&&this.#D()}),this.#F))}#q(){this.#W(),this.#K(this.#Q())}#J(){this.#I&&(clearTimeout(this.#I),this.#I=void 0)}#G(){this.#T&&(clearInterval(this.#T),this.#T=void 0)}createResult(e,t){const a=this.#S,c=this.options,r=this.#d,s=this.#V,l=this.#P,u=e!==a?e.state:this.#L,{state:p}=e;let h,{error:g,errorUpdatedAt:v,fetchStatus:f,status:w}=p,E=!1;if(t._optimisticResults){const n=this.hasListeners(),r=!n&&o(e,t),s=n&&m(e,a,t,c);(r||s)&&(f=(0,i.v_)(e.options.networkMode)?"fetching":"paused",p.dataUpdatedAt||(w="pending")),"isRestoring"===t._optimisticResults&&(f="idle")}if(t.select&&void 0!==p.data)if(r&&p.data===s?.data&&t.select===this.#H)h=this.#B;else try{this.#H=t.select,h=t.select(p.data),h=(0,n.pl)(r?.data,h,t),this.#B=h,this.#M=null}catch(e){this.#M=e}else h=p.data;if(void 0!==t.placeholderData&&void 0===h&&"pending"===w){let e;if(r?.isPlaceholderData&&t.placeholderData===l?.placeholderData)e=r.data;else if(e="function"==typeof t.placeholderData?t.placeholderData(this.#O?.state.data,this.#O):t.placeholderData,t.select&&void 0!==e)try{e=t.select(e),this.#M=null}catch(e){this.#M=e}void 0!==e&&(w="success",h=(0,n.pl)(r?.data,e,t),E=!0)}this.#M&&(g=this.#M,h=this.#B,v=Date.now(),w="error");const k="fetching"===f,y="pending"===w,A="error"===w,b=y&&k;return{status:w,fetchStatus:f,isPending:y,isSuccess:"success"===w,isError:A,isInitialLoading:b,isLoading:b,data:h,dataUpdatedAt:p.dataUpdatedAt,error:g,errorUpdatedAt:v,failureCount:p.fetchFailureCount,failureReason:p.fetchFailureReason,errorUpdateCount:p.errorUpdateCount,isFetched:p.dataUpdateCount>0||p.errorUpdateCount>0,isFetchedAfterMount:p.dataUpdateCount>u.dataUpdateCount||p.errorUpdateCount>u.errorUpdateCount,isFetching:k,isRefetching:k&&!y,isLoadingError:A&&0===p.dataUpdatedAt,isPaused:"paused"===f,isPlaceholderData:E,isRefetchError:A&&0!==p.dataUpdatedAt,isStale:d(e,t),refetch:this.refetch}}updateResult(e){const t=this.#d,a=this.createResult(this.#S,this.options);if(this.#V=this.#S.state,this.#P=this.options,void 0!==this.#V.data&&(this.#O=this.#S),(0,n.f8)(a,t))return;this.#d=a;const c={};!1!==e?.listeners&&(()=>{if(!t)return!0;const{notifyOnChangeProps:e}=this.options,a="function"==typeof e?e():e;if("all"===a||!a&&!this.#U.size)return!0;const n=new Set(a??this.#U);return this.options.throwOnError&&n.add("error"),Object.keys(this.#d).some((e=>{const a=e;return this.#d[a]!==t[a]&&n.has(a)}))})()&&(c.listeners=!0),this.#v({...c,...e})}#$(){const e=this.#m.getQueryCache().build(this.#m,this.options);if(e===this.#S)return;const t=this.#S;this.#S=e,this.#L=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#q()}#v(e){c.j.batch((()=>{e.listeners&&this.listeners.forEach((e=>{e(this.#d)})),this.#m.getQueryCache().notify({query:this.#S,type:"observerResultsUpdated"})}))}};function o(e,t){return function(e,t){return!(!1===t.enabled||e.state.dataUpdatedAt||"error"===e.state.status&&!1===t.retryOnMount)}(e,t)||e.state.dataUpdatedAt>0&&u(e,t,t.refetchOnMount)}function u(e,t,a){if(!1!==t.enabled){const n="function"==typeof a?a(e):a;return"always"===n||!1!==n&&d(e,t)}return!1}function m(e,t,a,n){return!1!==a.enabled&&(e!==t||!1===n.enabled)&&(!a.suspense||"error"!==e.state.status)&&d(e,a)}function d(e,t){return e.isStaleByTime(t.staleTime)}},1450:(e,t,a)=>{"use strict";a.d(t,{k:()=>c});var n=a(698),c=class{#Z;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),(0,n.gn)(this.gcTime)&&(this.#Z=setTimeout((()=>{this.optionalRemove()}),this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(n.S$?1/0:3e5))}clearGcTimeout(){this.#Z&&(clearTimeout(this.#Z),this.#Z=void 0)}}},4610:(e,t,a)=>{"use strict";a.d(t,{II:()=>u,v_:()=>i,wm:()=>o});var n=a(2464),c=a(5873),r=a(698);function s(e){return Math.min(1e3*2**e,3e4)}function i(e){return"online"!==(e??"online")||c.t.isOnline()}var l=class{constructor(e){this.revert=e?.revert,this.silent=e?.silent}};function o(e){return e instanceof l}function u(e){let t,a,o,u=!1,m=0,d=!1;const p=new Promise(((e,t)=>{a=e,o=t})),h=()=>!n.m.isFocused()||"always"!==e.networkMode&&!c.t.isOnline(),g=n=>{d||(d=!0,e.onSuccess?.(n),t?.(),a(n))},v=a=>{d||(d=!0,e.onError?.(a),t?.(),o(a))},f=()=>new Promise((a=>{t=e=>{const t=d||!h();return t&&a(e),t},e.onPause?.()})).then((()=>{t=void 0,d||e.onContinue?.()})),w=()=>{if(d)return;let t;try{t=e.fn()}catch(e){t=Promise.reject(e)}Promise.resolve(t).then(g).catch((t=>{if(d)return;const a=e.retry??(r.S$?0:3),n=e.retryDelay??s,c="function"==typeof n?n(m,t):n,i=!0===a||"number"==typeof a&&m{if(h())return f()})).then((()=>{u?v(t):w()}))):v(t)}))};return i(e.networkMode)?w():f().then(w),{promise:p,cancel:t=>{d||(v(new l(t)),e.abort?.())},continue:()=>{const e=t?.();return e?p:Promise.resolve()},cancelRetry:()=>{u=!0},continueRetry:()=>{u=!1}}}},5530:(e,t,a)=>{"use strict";a.d(t,{Q:()=>n});var n=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}}},698:(e,t,a)=>{"use strict";a.d(t,{Cp:()=>d,EN:()=>m,F$:()=>u,MK:()=>l,S$:()=>n,ZZ:()=>y,Zw:()=>r,f8:()=>h,gn:()=>s,j3:()=>i,lQ:()=>c,nJ:()=>o,pl:()=>E,y9:()=>k,yy:()=>w});var n="undefined"==typeof window||"Deno"in window;function c(){}function r(e,t){return"function"==typeof e?e(t):e}function s(e){return"number"==typeof e&&e>=0&&e!==1/0}function i(e,t){return Math.max(e+(t||0)-Date.now(),0)}function l(e,t){const{type:a="all",exact:n,fetchStatus:c,predicate:r,queryKey:s,stale:i}=e;if(s)if(n){if(t.queryHash!==u(s,t.options))return!1}else if(!d(t.queryKey,s))return!1;if("all"!==a){const e=t.isActive();if("active"===a&&!e)return!1;if("inactive"===a&&e)return!1}return("boolean"!=typeof i||t.isStale()===i)&&((void 0===c||c===t.state.fetchStatus)&&!(r&&!r(t)))}function o(e,t){const{exact:a,status:n,predicate:c,mutationKey:r}=e;if(r){if(!t.options.mutationKey)return!1;if(a){if(m(t.options.mutationKey)!==m(r))return!1}else if(!d(t.options.mutationKey,r))return!1}return(!n||t.state.status===n)&&!(c&&!c(t))}function u(e,t){return(t?.queryKeyHashFn||m)(e)}function m(e){return JSON.stringify(e,((e,t)=>v(t)?Object.keys(t).sort().reduce(((e,a)=>(e[a]=t[a],e)),{}):t))}function d(e,t){return e===t||typeof e==typeof t&&(!(!e||!t||"object"!=typeof e||"object"!=typeof t)&&!Object.keys(t).some((a=>!d(e[a],t[a]))))}function p(e,t){if(e===t)return e;const a=g(e)&&g(t);if(a||v(e)&&v(t)){const n=a?e:Object.keys(e),c=n.length,r=a?t:Object.keys(t),s=r.length,i=a?[]:{};let l=0;for(let c=0;c{setTimeout(t,e)}))}function E(e,t,a){return"function"==typeof a.structuralSharing?a.structuralSharing(e,t):!1!==a.structuralSharing?p(e,t):t}function k(e,t,a=0){const n=[...e,t];return a&&n.length>a?n.slice(1):n}function y(e,t,a=0){const n=[t,...e];return a&&n.length>a?n.slice(0,-1):n}},7115:(e,t,a)=>{"use strict";a.d(t,{Ht:()=>i,jE:()=>s});var n=a(1609),c=a(790),r=n.createContext(void 0),s=e=>{const t=n.useContext(r);if(e)return e;if(!t)throw new Error("No QueryClient set, use QueryClientProvider to set one");return t},i=({client:e,children:t})=>(n.useEffect((()=>(e.mount(),()=>{e.unmount()})),[e]),(0,c.jsx)(r.Provider,{value:e,children:t}))},9690:(e,t,a)=>{"use strict";a.d(t,{h:()=>s});var n=a(1609);a(790);function c(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var r=n.createContext(c()),s=()=>n.useContext(r)},4804:(e,t,a)=>{"use strict";a.d(t,{$1:()=>i,LJ:()=>r,wZ:()=>s});var n=a(1609),c=a(5492),r=(e,t)=>{(e.suspense||e.throwOnError)&&(t.isReset()||(e.retryOnMount=!1))},s=e=>{n.useEffect((()=>{e.clearReset()}),[e])},i=({result:e,errorResetBoundary:t,throwOnError:a,query:n})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(0,c.G)(a,[e.error,n])},4796:(e,t,a)=>{"use strict";a.d(t,{w:()=>r});var n=a(1609),c=n.createContext(!1),r=()=>n.useContext(c);c.Provider},937:(e,t,a)=>{"use strict";a.d(t,{EU:()=>c,iL:()=>r,tu:()=>n});var n=e=>{e.suspense&&"number"!=typeof e.staleTime&&(e.staleTime=1e3)},c=(e,t)=>e?.suspense&&t.isPending,r=(e,t,a)=>t.fetchOptimistic(e).catch((()=>{a.clearReset()}))},4611:(e,t,a)=>{"use strict";a.d(t,{t:()=>u});var n=a(1609),c=a(1795),r=a(9690),s=a(7115),i=a(4796),l=a(4804),o=a(937);function u(e,t,a){const u=(0,s.jE)(a),m=(0,i.w)(),d=(0,r.h)(),p=u.defaultQueryOptions(e);p._optimisticResults=m?"isRestoring":"optimistic",(0,o.tu)(p),(0,l.LJ)(p,d),(0,l.wZ)(d);const[h]=n.useState((()=>new t(u,p))),g=h.getOptimisticResult(p);if(n.useSyncExternalStore(n.useCallback((e=>{const t=m?()=>{}:h.subscribe(c.j.batchCalls(e));return h.updateResult(),t}),[h,m]),(()=>h.getCurrentResult()),(()=>h.getCurrentResult())),n.useEffect((()=>{h.setOptions(p,{listeners:!1})}),[p,h]),(0,o.EU)(p,g))throw(0,o.iL)(p,h,d);if((0,l.$1)({result:g,errorResetBoundary:d,throwOnError:p.throwOnError,query:u.getQueryCache().get(p.queryHash)}))throw g.error;return p.notifyOnChangeProps?g:h.trackResult(g)}},4613:(e,t,a)=>{"use strict";a.d(t,{n:()=>l});var n=a(1609),c=a(4158),r=a(1795),s=a(7115),i=a(5492);function l(e,t){const a=(0,s.jE)(t),[l]=n.useState((()=>new c._(a,e)));n.useEffect((()=>{l.setOptions(e)}),[l,e]);const u=n.useSyncExternalStore(n.useCallback((e=>l.subscribe(r.j.batchCalls(e))),[l]),(()=>l.getCurrentResult()),(()=>l.getCurrentResult())),m=n.useCallback(((e,t)=>{l.mutate(e,t).catch(o)}),[l]);if(u.error&&(0,i.G)(l.options.throwOnError,[u.error]))throw u.error;return{...u,mutate:m,mutateAsync:u.mutate}}function o(){}},5104:(e,t,a)=>{"use strict";a.d(t,{I:()=>r});var n=a(3397),c=a(4611);function r(e,t){return(0,c.t)(e,n.$,t)}},5492:(e,t,a)=>{"use strict";function n(e,t){return"function"==typeof e?e(...t):!!e}a.d(t,{G:()=>n})},3022:(e,t,a)=>{"use strict";function n(e){var t,a,c="";if("string"==typeof e||"number"==typeof e)c+=e;else if("object"==typeof e)if(Array.isArray(e)){var r=e.length;for(t=0;tc});const c=function(){for(var e,t,a=0,c="",r=arguments.length;a{"use strict";a.d(t,{A:()=>u});var n=a(3924),c=a(6087),r=a(7723),s=a(8120),i=a(1609),l=a(1183);const __=r.__,o=e=>{const{productId:t,siteRawUrl:a}=e,r=`https://cloud.jetpack.com/landing/${a}`,s=(0,l.p)(t),o={jetpack_anti_spam:{title:__("Jetpack Anti-spam is active!","jetpack-my-jetpack"),text:__("We'll take care of everything from here. Now you can enjoy a spam-free site!","jetpack-my-jetpack")},jetpack_backup:{title:__("Jetpack Backup is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("You can see your backups and restore your site on cloud.jetpack.com. If you ever lose access to your site, you can restore it there.","jetpack-my-jetpack"),{a:i.createElement("a",{href:r})})},jetpack_complete:{title:__("Jetpack Complete is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("You can see your backups, security scans, and restore your site on cloud.jetpack.com. If you ever lose access to your site, you can restore it there.","jetpack-my-jetpack"),{a:i.createElement("a",{href:r})})},jetpack_scan:{title:__("Jetpack Scan is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("You can see your security scans on cloud.jetpack.com.","jetpack-my-jetpack"),{a:i.createElement("a",{href:r})})},jetpack_search:{title:__("Jetpack Search is active!","jetpack-my-jetpack"),text:__("Next, we'll help you customize the Search experience for your visitors.","jetpack-my-jetpack")},jetpack_security:{title:__("Jetpack Security is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("You can see your backups, security scans, and restore your site on cloud.jetpack.com. If you ever lose access to your site, you can restore it there.","jetpack-my-jetpack"),{a:i.createElement("a",{href:r})})},jetpack_videopress:{title:__("Jetpack VideoPress is active!","jetpack-my-jetpack"),text:__("Experience high-quality, ad-free video built specifically for WordPress.","jetpack-my-jetpack")},jetpack_social_advanced:{title:__("Jetpack Social Advanced is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("Create amazing link previews for your posts using Social Image Generator. Learn more here.
Learn how to make the most out of Jetpack Social here.
","jetpack-my-jetpack"),{a:i.createElement("a",{href:(0,n.A)("jetpack-social-sig-support-page"),target:"_blank",rel:"noreferrer"}),br:i.createElement("br",null),link:i.createElement("a",{href:(0,n.A)("social-plugin-publicize-support-admin-page"),target:"_blank",rel:"noreferrer"})})},jetpack_social_basic:{title:__("Jetpack Social Basic is active!","jetpack-my-jetpack"),text:(0,c.createInterpolateElement)(__("Enjoy unlimited shares with Jetpack Social Basic. Learn how to make the most out of Jetpack Social here.","jetpack-my-jetpack"),{a:i.createElement("a",{href:(0,n.A)("social-plugin-publicize-support-admin-page"),target:"_blank",rel:"noreferrer"})})},default:{title:__("Your product is active!","jetpack-my-jetpack"),text:__("You're all set!","jetpack-my-jetpack")}};return i.createElement("div",{className:"jp-license-activation-screen-success-info--product-details"},i.createElement("h1",null,o[s].title," ",String.fromCodePoint(127881)),i.createElement("p",null,o[s].text))};o.propTypes={dashboardUrl:s.string,productId:s.number};const u=o},1183:(e,t,a)=>{"use strict";a.d(t,{p:()=>c});const n={jetpack_anti_spam:[2110,2111],jetpack_backup:[2100,2101,2102,2103,2112,2113,2114,2115],jetpack_complete:[2014,2015],jetpack_scan:[2106,2107,2108,2109],jetpack_search:[2104,2105],jetpack_security:[2010,2011,2012,2013,2016,2017,2019,2020],jetpack_videopress:[2116,2117],jetpack_social_advanced:[2602,2603,2604],jetpack_social_basic:[2503,2504,2037]};function c(e){return Object.keys(n).find((t=>n[t].includes(e)))||"default"}},3010:(e,t,a)=>{"use strict";a.d(t,{A:()=>s});var n=a(1455),c=a(6087);const r=async()=>(await n({path:"wp/v2/plugins"})).filter((e=>"active"===e.status));function s(){const[e,t]=(0,c.useState)([]),[a,n]=(0,c.useState)(!0),s=(0,c.useCallback)((async()=>{try{const e=await r();t(e)}catch{t([])}finally{n(!1)}}),[]);return(0,c.useEffect)((()=>{s()}),[s]),[e,a]}}},t={};function a(n){var c=t[n];if(void 0!==c)return c.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,a),r.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var c=n.length-1;c>-1&&(!e||!/^http(s?):/.test(e));)e=n[c--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{"use strict";var e=a(723),t=a(116),n=a(7115),c=a(6087),r=a(1609),s=a.n(r),i=a(9539),l=a(28),o=a(8848),u=a(1499),m=a(2912),d=a(6092),p=a(3418),h=a(8823),g=a(7265),v=a(8837),f=a(6007),w=a(6077),E=a(8242);a(4118);function k(){const e=(0,i.zy)();return(0,r.useEffect)((()=>window.scrollTo(0,0)),[e]),null}const y=()=>{const a=new t.E,{loadAddLicenseScreen:c}=(0,E.A$)();return s().createElement(e.Ay,null,s().createElement(f.A,null,s().createElement(w.A,null,s().createElement(n.Ht,{client:a},s().createElement(l.I9,null,s().createElement(k,null),s().createElement(i.BV,null,s().createElement(i.qh,{path:v.NM.Home,element:s().createElement(m.A,null)}),s().createElement(i.qh,{path:v.NM.Connection,element:s().createElement(u.A,null)}),s().createElement(i.qh,{path:v.NM.AddAkismet,element:s().createElement(d.wU,null)}),s().createElement(i.qh,{path:v.NM.AddAntiSpam,element:s().createElement(i.C5,{replace:!0,to:v.NM.AddAkismet})}),s().createElement(i.qh,{path:v.NM.AddBackup,element:s().createElement(d.xE,null)}),s().createElement(i.qh,{path:v.NM.AddBoost,element:s().createElement(d.yX,null)}),s().createElement(i.qh,{path:v.NM.AddCRM,element:s().createElement(d.X7,null)}),s().createElement(i.qh,{path:v.NM.AddCreator,element:s().createElement(d.B8,null)}),s().createElement(i.qh,{path:v.NM.AddJetpackAI,element:s().createElement(p.A,null)}),s().createElement(i.qh,{path:v.NM.AddExtras,element:s().createElement(d.QX,null)}),s().createElement(i.qh,{path:v.NM.AddProtect,element:s().createElement(d.qT,null)}),s().createElement(i.qh,{path:v.NM.AddScan,element:s().createElement(d.og,null)}),s().createElement(i.qh,{path:v.NM.AddSocial,element:s().createElement(d.C,null)}),s().createElement(i.qh,{path:v.NM.AddSearch,element:s().createElement(d.t7,null)}),s().createElement(i.qh,{path:v.NM.AddVideoPress,element:s().createElement(d.JM,null)}),s().createElement(i.qh,{path:v.NM.AddStats,element:s().createElement(d.Gf,null)}),c&&s().createElement(i.qh,{path:v.NM.AddLicense,element:s().createElement(o.A,null)}),s().createElement(i.qh,{path:v.NM.RedeemToken,element:s().createElement(g.A,null)}),s().createElement(i.qh,{path:"/redeem-token",element:s().createElement(g.A,null)}),s().createElement(i.qh,{path:"/jetpack-ai",element:s().createElement(h.A,null)})))))))};!function(){const e=document.getElementById("my-jetpack-container");null!==e&&(0,c.createRoot)(e).render(s().createElement(y,null))}()})()})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt
new file mode 100644
index 00000000..7a520558
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.js.LICENSE.txt
@@ -0,0 +1,47 @@
+/*
+ * Exposes number format capability
+ *
+ * @copyright Copyright (c) 2013 Kevin van Zonneveld (http://kvz.io) and Contributors (http://phpjs.org/authors).
+ * @license See CREDITS.md
+ * @see https://github.com/kvz/phpjs/blob/ffe1356af23a6f2512c84c954dd4e828e92579fa/functions/strings/number_format.js
+ */
+
+/*!
+ * cookie
+ * Copyright(c) 2012-2014 Roman Shtylman
+ * Copyright(c) 2015 Douglas Christopher Wilson
+ * MIT Licensed
+ */
+
+/**
+ * @remix-run/router v1.2.1
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * React Router DOM v6.6.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
+
+/**
+ * React Router v6.6.2
+ *
+ * Copyright (c) Remix Software Inc.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE.md file in the root directory of this source tree.
+ *
+ * @license MIT
+ */
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css
new file mode 100644
index 00000000..abfeeeaa
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/build/index.rtl.css
@@ -0,0 +1 @@
+.jp-license-activation-screen-controls{background:var(--jp-white);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-controls h1{font-size:44px;font-weight:700;line-height:1.4;margin:.67em 0}.jp-license-activation-screen-controls p{font-size:var(--font-body);margin:1em 0}.jp-license-activation-screen-controls label{font-size:var(--font-body);font-weight:600}@media screen and (min-width:780px){.jp-license-activation-screen-controls{padding:64px}}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error{max-width:500px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field .components-input-control__label.components-input-control__label.components-input-control__label,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error .components-input-control__label.components-input-control__label.components-input-control__label{font-size:var(--font-body);font-weight:600}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field select.components-select-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error select.components-select-control__input{border-radius:var(--jp-border-radius);font-size:18px;line-height:24px;margin:0;min-height:48px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field input.components-text-control__input{border:1px solid var(--jp-gray-40)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error input.components-text-control__input,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-with-error select.components-select-control__input{border:1px solid var(--jp-red)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error{align-items:flex-start;color:var(--jp-red);display:flex;flex-direction:row;max-width:500px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error svg{margin-left:4px;fill:var(--jp-red);min-width:24px}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--license-field-error span{font-size:var(--font-body)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active{background-color:var(--jp-black);border-radius:4px;color:var(--jp-white);display:flex;font-size:16px;font-size:var(--font-body);font-style:normal;font-weight:600;justify-content:center;line-height:24px;margin-top:24px;min-height:48px;min-width:158px;padding:13.5px 45px;width:100%}@media screen and (min-width:480px){.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active{width:auto}}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:hover,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:hover{background-color:var(--jp-black-80);color:var(--jp-white)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:focus,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:focus{background-color:var(--jp-black-80);border:1px solid var(--jp-white);color:var(--jp-white)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active:disabled,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active[disabled],.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:disabled,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button[disabled]{background-color:var(--jp-gray);color:var(--jp-gray-20)}.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button .jp-components-spinner,.jp-license-activation-screen-controls .jp-license-activation-screen-controls--button:active .jp-components-spinner{width:100%}@keyframes rotate-spinner{to{transform:rotate(-1turn)}}.jp-components-spinner{align-items:center;display:flex}.jp-components-spinner__inner,.jp-components-spinner__outer{animation:3s linear infinite;animation-name:rotate-spinner;border:.1em solid transparent;border-radius:50%;box-sizing:border-box;margin:auto}.jp-components-spinner__outer{border-top-color:#fff}.jp-components-spinner__inner{border-left-color:#fff;border-top-color:#fff;height:100%;opacity:.4;width:100%}.jp-license-activation-screen-illustration{align-items:center;background:var(--jp-white-off);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-illustration--wrapper{display:flex;flex:1}.jp-license-activation-screen-illustration--wrapper img{align-self:center;height:auto;max-width:100%}.jp-license-activation-screen-illustration--support-link{flex:0}.components-button.jp-license-activation-screen-success-info--button,.components-button.jp-license-activation-screen-success-info--button:active,.components-button.jp-license-activation-screen-success-info--button:visited{background-color:var(--jp-black);border-radius:4px;color:var(--jp-white);font-size:16px;font-size:var(--font-body);font-style:normal;font-weight:600;justify-content:center;line-height:24px;margin:0 0 20px 40px;min-height:48px;min-width:158px;padding:13.5px 45px;width:100%}@media screen and (min-width:480px){.components-button.jp-license-activation-screen-success-info--button,.components-button.jp-license-activation-screen-success-info--button:active,.components-button.jp-license-activation-screen-success-info--button:visited{width:auto}}.components-button.jp-license-activation-screen-success-info--button:active:hover,.components-button.jp-license-activation-screen-success-info--button:hover,.components-button.jp-license-activation-screen-success-info--button:visited:hover{background-color:var(--jp-black-80);color:var(--jp-white)}.components-button.jp-license-activation-screen-success-info--button:active:focus,.components-button.jp-license-activation-screen-success-info--button:focus,.components-button.jp-license-activation-screen-success-info--button:visited:focus{background-color:var(--jp-black-80);border:1px solid var(--jp-white);color:var(--jp-white)}.components-button.jp-license-activation-screen-success-info--button:active:disabled,.components-button.jp-license-activation-screen-success-info--button:active[disabled],.components-button.jp-license-activation-screen-success-info--button:disabled,.components-button.jp-license-activation-screen-success-info--button:visited:disabled,.components-button.jp-license-activation-screen-success-info--button:visited[disabled],.components-button.jp-license-activation-screen-success-info--button[disabled]{background-color:var(--jp-gray);color:var(--jp-gray-20)}.components-button.jp-license-activation-screen-success-info--button .jp-components-spinner,.components-button.jp-license-activation-screen-success-info--button:active .jp-components-spinner,.components-button.jp-license-activation-screen-success-info--button:visited .jp-components-spinner{width:100%}.jp-license-activation-screen-success-info--product-details h1{line-height:52px}.jp-license-activation-screen-success-info--product-details a{color:var(--jp-black);text-decoration:underline!important}.jp-license-activation-screen-success-info--external-link{color:var(--jp-black);font-size:16px;font-style:normal;font-weight:600;text-decoration:underline!important;white-space:nowrap}.jp-license-activation-screen-success-info{background:var(--jp-white);display:flex;flex-direction:column;justify-content:space-between;padding:32px}.jp-license-activation-screen-success-info h1{font-size:44px;font-weight:700;line-height:1.4;margin:.67em 0}.jp-license-activation-screen-success-info p{font-size:var(--font-body);margin:1em 0}.jp-license-activation-screen-success-info label{font-size:var(--font-body);font-weight:600}@media screen and (min-width:780px){.jp-license-activation-screen-success-info{padding:64px}}@media screen and (max-width:480px){.jp-license-activation-screen-success-info .jp-license-activation-screen-success-info--buttons{text-align:center}}.EiaNctK1_P9pPqOeiaSI{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.ogHZg_sJCljylz3VJfsf{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.ogHZg_sJCljylz3VJfsf{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.ogHZg_sJCljylz3VJfsf{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.zv7eGvijKRkbPVakubHw{grid-column-end:span 1}.VoJNoiya_1ck3_kXS6_C{grid-column-end:span 2}.ecv0NO526NoTNbpALA1A{grid-column-end:span 3}.OfBdkceMzeHvRbzhqDlP{grid-column-end:span 4}@media(min-width:600px){.JLb3NpEKN8pOaWd7K1bu{grid-column-end:span 1}.fsMPGqPKE4mjMIPFwl77{grid-column-end:span 2}.DIK_zdaGAQ09eKspBJ4E{grid-column-end:span 3}.shXYpxPu3WCJsR8aOHtz{grid-column-end:span 4}.s7ElrOqG_yGd5SIfwqOR{grid-column-end:span 5}.Cxml9uzGvArAL8_RDs_p{grid-column-end:span 6}.aANxBKDGx72eDqU0iUPj{grid-column-end:span 7}.XxyzuTY3mnQcl9EGZadm{grid-column-end:span 8}}@media(min-width:960px){.Sfo4WaSNIWInJ93Abd3w{grid-column-end:span 1}.tQS7SKUGrU4THhWMysbo{grid-column-end:span 2}.I94U7mpY4h16pcOksZNF{grid-column-end:span 3}.uWMb9k77kQxBdS5MTt0s{grid-column-end:span 4}.rKwEEZQxK9s_POMg5Jss{grid-column-end:span 5}.UcPXX_s06IPCkF7ZjH3D{grid-column-end:span 6}.CrQdtiCFkRbzY6K2dFvt{grid-column-end:span 7}.rEUALOmOdUBXO0Us871z{grid-column-end:span 8}.NqXa9TlcTEviVsB53hBV{grid-column-end:span 9}.OnWVeiQiwgQ9lzdGPW66{grid-column-end:span 10}.D2PkTcy7b8u2K9QXY6VQ{grid-column-end:span 11}.EcqBhzAyxo5RDc2Y6m7K{grid-column-end:span 12}}@media(max-width:960px){.gB1mWzHOM38d80lrhBRX{display:none}}@media(max-width:600px){.KNQXLP78ejczOkour3zg{display:none}}.rBVbaVWBnBRtTMrUKZxm{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);display:block;margin:32px 0;padding:16px 24px 16px 64px;position:relative;text-decoration:none}.rBVbaVWBnBRtTMrUKZxm span{display:block}.rBVbaVWBnBRtTMrUKZxm span:last-of-type{font-weight:600}.rBVbaVWBnBRtTMrUKZxm:focus span:last-of-type,.rBVbaVWBnBRtTMrUKZxm:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.rBVbaVWBnBRtTMrUKZxm:focus:after,.rBVbaVWBnBRtTMrUKZxm:hover:after{transform:translateY(-50%) translateX(-8px)}.rBVbaVWBnBRtTMrUKZxm:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.gfM_DIJrVbRhmKdAphIm{background:var(--jp-white);border-radius:var(--jp-modal-radius);box-shadow:0 12px 16px -.5px rgba(0,0,0,.15);height:max-content;margin:3rem auto;max-width:414px;overflow:hidden;position:relative;transition:height .25s cubic-bezier(.59,.37,.18,1.19) 0;width:90%;will-change:height}.gfM_DIJrVbRhmKdAphIm>div:first-child{padding:0}.gfM_DIJrVbRhmKdAphIm *{box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}.gfM_DIJrVbRhmKdAphIm p{color:var(--jp-black)}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN{display:none}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh{height:614px;transition-delay:2.15s}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh h2{margin-top:0}._j4GWTmW5psCHFYh6R0x{align-self:flex-start;margin-top:var(--jp-gap)!important;padding:8px var(--jp-modal-padding-small)!important;width:100%}.saSAjv8yulVXQDoqDJEI{font-weight:500;line-height:110%;margin-bottom:8px}.O_hcdbeMivIhBn7ApDnS{line-height:140%}@media(min-width:760px){.gfM_DIJrVbRhmKdAphIm{height:740px;max-width:1360px;position:relative;width:95%}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN{display:block;position:absolute;right:64px;top:64px;z-index:99}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN clipPath,.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN path{fill:#000}.gfM_DIJrVbRhmKdAphIm .zfJfONxRAw0fHjXUS7LN path.FCnyb_xCK7DhJ63p6TEd{fill:#fff}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh{height:740px;transition-delay:0}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN clipPath,.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN path{transition:fill 2s ease .5s;fill:#fff}.gfM_DIJrVbRhmKdAphIm.pnwbCuWbV0PNQr1LFpRh .zfJfONxRAw0fHjXUS7LN path.FCnyb_xCK7DhJ63p6TEd{transition:fill 2s ease .5s;fill:#000}}@keyframes OmAVpCQ270MqI4IsT9Ky{20%{transform:translateY(0) scale(1)}65%{transform:translateY(16%) scale(1.4)}to{transform:translateY(0) scale(1)}}.Qn5xayjI_jH2m1d6BEoq{border-radius:var(--jp-button-radius);display:flex;height:50%;justify-content:center;min-height:400px;overflow:hidden;position:relative;transition:height .55s cubic-bezier(.59,.37,.18,1) 0s;will-change:height}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq{height:100%;transition-delay:.65s}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq video{animation:OmAVpCQ270MqI4IsT9Ky 1.5s ease-in-out forwards}.Qn5xayjI_jH2m1d6BEoq video{height:100%;object-fit:cover;position:absolute;right:0;top:0;transform:scale(1);transition:all .85s cubic-bezier(1,0,.39,1) 0s;width:100%;will-change:transform}@media(min-width:760px){@keyframes Axe8f2LgqEBZHVcsRgY5{0%{animation-timing-function:cubic-bezier(.86,0,.07,1);right:60%;top:32px}50%{animation-timing-function:cubic-bezier(.17,.84,.44,1);bottom:32px;right:32px;top:32px;width:100%}to{right:32px;width:40%}}.Qn5xayjI_jH2m1d6BEoq{border-radius:12px;bottom:32px;display:block;height:auto;left:32px;overflow:hidden;position:absolute;right:60%;top:32px;transition-delay:0;transition:width .55s ease 0s;z-index:3}.Qn5xayjI_jH2m1d6BEoq video{height:100%;object-fit:cover;position:absolute;right:0;top:0;width:100%}.pnwbCuWbV0PNQr1LFpRh .Qn5xayjI_jH2m1d6BEoq{animation-delay:.25s;animation-duration:2s;animation-fill-mode:forwards;animation-name:Axe8f2LgqEBZHVcsRgY5;height:auto}}.iBMDoShSmqpt72YfJb36{padding:var(--jp-modal-padding)}.iBMDoShSmqpt72YfJb36 h2{font-size:clamp(1.5rem,-.7353rem + 4.7059vw,3.5rem)}.iBMDoShSmqpt72YfJb36 p{font-size:clamp(1rem,.6974rem + 1.1696vw,1.75rem)}.iBMDoShSmqpt72YfJb36 p.eQG1KKK8jjKtQyzfv573{display:none;font-size:clamp(1.25rem,1.1491rem + .3899vw,1.5rem)}@media(min-width:760px){.iBMDoShSmqpt72YfJb36{bottom:15%;display:flex;flex-direction:column;gap:64px;padding:0 0 0 var(--jp-modal-padding);position:absolute;right:64px;width:55%}.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC{align-items:flex-start;display:flex;flex-direction:column;gap:16px;padding:0 0 0 32px}.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC h2,.iBMDoShSmqpt72YfJb36 .l35bIyiqYJiZ6tVYvJtC p{margin:0}.iBMDoShSmqpt72YfJb36 p.eQG1KKK8jjKtQyzfv573{display:block}.iBMDoShSmqpt72YfJb36 ._j4GWTmW5psCHFYh6R0x{align-self:flex-start;padding:16px var(--jp-modal-padding-large)!important;width:auto}.pnwbCuWbV0PNQr1LFpRh .iBMDoShSmqpt72YfJb36{opacity:0;right:-20px;transition:all .55s cubic-bezier(.59,.37,.18,1) .3s}}.HQVDZ6J3x6SJNYFX5khS{background:var(--jp-white);opacity:0;position:absolute;right:0;top:100%;transition:transform .45s cubic-bezier(.59,.37,.18,1) 2s,opacity .45s linear;width:100%;will-change:transform,opacity;z-index:2}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS{opacity:1;transform:translateY(-100%);transition-delay:2s}@media(min-width:760px){.HQVDZ6J3x6SJNYFX5khS{align-items:flex-end;bottom:5%;container-type:inline-size;display:flex;flex-direction:column;gap:40px;left:32px;padding:0;right:45%;transform:translateY(0);transition-delay:0;transition:none;width:auto}.HQVDZ6J3x6SJNYFX5khS h2{width:100%}.HQVDZ6J3x6SJNYFX5khS ._j4GWTmW5psCHFYh6R0x{margin-left:var(--jp-modal-padding-large)}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS{bottom:12%;left:32px;opacity:1;right:45%;top:unset;transform:translateY(0);transition:all .45s cubic-bezier(.59,.37,.18,1) 2s,opacity .45s linear;transition-delay:2s;width:auto}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS .l35bIyiqYJiZ6tVYvJtC{padding-right:32px}.pnwbCuWbV0PNQr1LFpRh .HQVDZ6J3x6SJNYFX5khS ._j4GWTmW5psCHFYh6R0x{align-self:flex-end}}.KdvmPIjelQIFiPQGuIYf{background:var(--jp-gray-0);display:flex;flex-direction:column;gap:var(--jp-gap)}.KdvmPIjelQIFiPQGuIYf div{background-color:var(--jp-white);border:1px solid var(--jp-gray-10);border-radius:var(--jp-button-radius);box-shadow:0 0 40px 0 rgba(0,0,0,.08);flex:1;padding:var(--jp-modal-padding)}.KdvmPIjelQIFiPQGuIYf h3{font-size:24px;line-height:normal;margin:0}.KdvmPIjelQIFiPQGuIYf p{font-size:14px}@media(min-width:760px){.KdvmPIjelQIFiPQGuIYf{flex-direction:row;padding:var(--jp-modal-padding-large)}.KdvmPIjelQIFiPQGuIYf div{border:none;box-shadow:0 2px 16px rgba(0,0,0,.08),0 2px 2px rgba(0,0,0,.1)}.KdvmPIjelQIFiPQGuIYf div p{margin:8px 0}.KdvmPIjelQIFiPQGuIYf svg{margin-bottom:var(--jp-modal-padding-small)}}@container (max-width: 600px){.KdvmPIjelQIFiPQGuIYf div{padding:var(--jp-modal-padding-small)}}.cuoSlhSNrqf1dozY22Xb{fill:#000}.JLquNpQVlysAamuh5lJO,.lAIiifeLMmZAPlQ9n9ZR{fill:var(--jp-green-primary)}.cbOwD8Y4tFjwimmtchQI{fill:#757575}.cbOwD8Y4tFjwimmtchQI.aLWBKY0yRghEk7tNCgK3{fill:var(--color-bluesky)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw{fill:var(--color-facebook)}.cbOwD8Y4tFjwimmtchQI.aHOlEBGD5EA8NKRw3xTw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.af4Y_zItXvLAOEoSDPSv{fill:var(--color-twitter)}.cbOwD8Y4tFjwimmtchQI.f68aqF3XSD1OBvXR1get{fill:var(--color-linkedin)}.cbOwD8Y4tFjwimmtchQI.xFI0dt3UiXRlRQdqPWkx{fill:var(--color-tumblr)}.cbOwD8Y4tFjwimmtchQI.q7JEoyymveP6kF747M43{fill:var(--color-gplus)}.cbOwD8Y4tFjwimmtchQI.DKOBOTVmTLbh26gUH_73{fill:var(--color-mastodon)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw{fill:var(--color-nextdoor)}.cbOwD8Y4tFjwimmtchQI.n5XodNsuMfMAAvqHFmbw.social-logo{border-radius:50%}.cbOwD8Y4tFjwimmtchQI.cL3m0xBYTYhIKI7lCqDB{fill:var(--color-instagram)}.cbOwD8Y4tFjwimmtchQI.fftumuc_lJ6v0tq4UMVR{fill:var(--color-whatsapp)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI{fill:var(--color-threads)}.cbOwD8Y4tFjwimmtchQI.inzgC27qxdt7hSdhTWRI.social-logo{border-radius:40%}.SqdhUZkXCRuIpErj1B3z{--max-container-width:1128px;--vertical-gutter:24px;--horizontal-spacing:8px;column-gap:var(--vertical-gutter);display:grid;margin:0 auto;max-width:var(--max-container-width);width:100%}@media(max-width:599px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 16px}}@media(min-width:600px)and (max-width:959px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(8,minmax(0,1fr));padding:0 18px}}@media(min-width:960px){.SqdhUZkXCRuIpErj1B3z{grid-template-columns:repeat(12,minmax(0,1fr));padding:0 24px}}.SqdhUZkXCRuIpErj1B3z.OZC_9a1LhpWF9dv15Gdh{max-width:none;padding:unset}@media(max-width:599px){.RuVLl3q4lxTQa3wbhBJB{grid-column-end:span 1}.f9LZTRG4MMK42rS89afW{grid-column-start:1}.bHe_zKxjjpUwHw_MdYE1{grid-column-end:2}.QZbNrOqE2aNSn50xVhpU{grid-column-end:span 2}.ev7W3z7zVYPeHAlYqZjf{grid-column-start:2}.NJWd1m_e7lOiPYru2ZMP{grid-column-end:3}.Xc6nt1Qc1DI0Z2A3gt1r{grid-column-end:span 3}.UIcN_GXiPRoIsin8Kohg{grid-column-start:3}.GRKCyqb5LufCSCgykKFc{grid-column-end:4}.i_qTq8gqhhC3vIUepVRB{grid-column-end:span 4}.G3qaZ3Jpbvam_1XvGxgc{grid-column-start:4}.VRCNYKZtO9zukEwmgP1y{grid-column-end:5}}@media(min-width:600px)and (max-width:959px){.tRm008K_WJL79WoNZTNL{grid-column-end:span 1}.l5T2P_bgKts4tdaRkS1d{grid-column-start:1}.zOCxfLZpF6BlgC7a_Yq1{grid-column-end:2}.F80DdgVn0m5OpvtSQWka{grid-column-end:span 2}.oI1c7JYfiJtMQHbhngtU{grid-column-start:2}.pMQtA_4jh1_1lVknqEP5{grid-column-end:3}.VenqMpdgyKQVUNNQcfqd{grid-column-end:span 3}.seNYL99uoczf9V4MxBxT{grid-column-start:3}.YKfF1HFhI9KygA5l3b2J{grid-column-end:4}.yAi0Cv1xDWkoqsaUhvhR{grid-column-end:span 4}.ubhnyZOnkgxNhh6XtVWv{grid-column-start:4}.RGOPGQbWMJ9Ei5oFxS7X{grid-column-end:5}.Sz1E2aWbX483ijdi6yge{grid-column-end:span 5}.tku6_bRYrX9tMbgYGmIl{grid-column-start:5}.b5JHttOhSEcI1WBlqAjk{grid-column-end:6}.FboSx5MoKTAWbxXyYlCw{grid-column-end:span 6}.Jhs8yEEmodG30edbJvag{grid-column-start:6}.IpzbbKVqEqPcfIGkXkwt{grid-column-end:7}.mhCPwfAZ4Kmm_empzJAq{grid-column-end:span 7}.x034ilrJF7rO9UJB2rI1{grid-column-start:7}.Wt8t2e16viRrOJ1lLA5v{grid-column-end:8}.S6pIrEy9AMLKx9bgh_Ae{grid-column-end:span 8}.kEfI4tGyuWfHTlRnvIab{grid-column-start:8}.PUzX4RRsKq1dnsz3gebS{grid-column-end:9}}@media(min-width:960px){.X_pdcLJikd8LS_YAdJlB{grid-column-end:span 1}.tl936d14Huby4khYp05X{grid-column-start:1}.hnge0LnR69d3NXEtEE1t{grid-column-end:2}.fj0NUMuyZQcPNgKcjp5Z{grid-column-end:span 2}.R2ncBX7a2NigdYCcV1OX{grid-column-start:2}.t8vMSDVYno9k9itRwnXb{grid-column-end:3}.wsDuEN2GqHx6qzo8dUdk{grid-column-end:span 3}.cIEVPUweWtLBy3xaXnMx{grid-column-start:3}.fajUWBwu1m2B479j3jmz{grid-column-end:4}.YR0c7fQTgMkDdWzwSyLp{grid-column-end:span 4}.xlwp8BmplxkKNMI7gamo{grid-column-start:4}._C4O1w9DUqx1m3gPf8aA{grid-column-end:5}.Z54F1hAErckAIrKlxnXW{grid-column-end:span 5}.ezSDWkRHmKSxDJXxuiOH{grid-column-start:5}.T0ChoeAjGJjkkNrYhD4g{grid-column-end:6}.qtMoMPF6yHvGJnWHSsde{grid-column-end:span 6}.gdoywN5VPiWERfIBqkph{grid-column-start:6}.wUev_VH5uf_pwFFlbnAU{grid-column-end:7}.egIPDFJsOpownTClq9XP{grid-column-end:span 7}.yGhp9yoAW7k0kQik9AB7{grid-column-start:7}.SJ43U9mR5wUg5V2qBeQA{grid-column-end:8}.cTuyHfMwSUJxN_HdIEgd{grid-column-end:span 8}.smCr8DaIagcumdvdldiK{grid-column-start:8}.T03NHzQJvzwL6wAfIiTL{grid-column-end:9}.pMvxM3RJGjqyNdf9qg1Y{grid-column-end:span 9}.iIVpNRwEnQ_JI5gpp9EN{grid-column-start:9}.ZbQ4u4vGSX5rJOje4uGL{grid-column-end:10}.gKb5wuIDAlKGbrjK2vxy{grid-column-end:span 10}.Z7pINdImE2WJiYnZBTqm{grid-column-start:10}.ZTxp6qpvwurMdOnLLSz1{grid-column-end:11}.NnQTlbfnxPDR6cQ7rygg{grid-column-end:span 11}.O137wZd6Yl0olSA9PsXR{grid-column-start:11}.zf2OJtQ2MPz6SDoh6CB0{grid-column-end:12}.U3H6UHW6HqRt9hdzVg3O{grid-column-end:span 12}.zynnNeS_ZBTxABcVpUQH{grid-column-start:12}.vI8tltFZtFUNAy9Iag9s{grid-column-end:13}}.zI5tJ_qhWE6Oe6Lk75GY{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);--wp-admin-border-width-focus:1.51px;border-radius:var(--jp-border-radius);font-weight:600;justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo{height:calc(var(--spacing-base)*5);padding:var(--spacing-base);width:calc(var(--spacing-base)*5)}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo>svg:first-child{margin:0;padding:0}.zI5tJ_qhWE6Oe6Lk75GY.tuBt2DLqimiImoqVzPqo.Na39I683LAaSA99REg14{height:calc(var(--spacing-base)*4);min-width:calc(var(--spacing-base)*4);padding:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*4)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body);height:auto;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.zI5tJ_qhWE6Oe6Lk75GY.ipS7tKy9GntCS4R3vekF:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK{padding:var(--spacing-base) calc(var(--spacing-base)*2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo){font-size:var(--font-body-extra-small);height:auto;line-height:20px;padding:calc(var(--spacing-base)/2) var(--spacing-base)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo).paGLQwtPEaJmtArCcmyK>svg:first-child{margin-left:calc(var(--spacing-base)/2)}.zI5tJ_qhWE6Oe6Lk75GY.Na39I683LAaSA99REg14:not(.tuBt2DLqimiImoqVzPqo)>.components-spinner{height:20px}.zI5tJ_qhWE6Oe6Lk75GY.lZAo6_oGfclXOO9CC6Rd{font-weight:400}.zI5tJ_qhWE6Oe6Lk75GY.xJDOiJxTt0R_wSl8Ipz_{min-width:100%}.zI5tJ_qhWE6Oe6Lk75GY.is-primary:disabled,.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:disabled{background:var(--jp-gray);color:var(--jp-gray-20)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary{background:var(--jp-white);box-shadow:inset 0 0 0 1.51px var(--jp-black)}.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:active:not(:disabled),.zI5tJ_qhWE6Oe6Lk75GY.is-secondary:hover:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-link.Na39I683LAaSA99REg14,.zI5tJ_qhWE6Oe6Lk75GY.is-link.ipS7tKy9GntCS4R3vekF{padding:0}.zI5tJ_qhWE6Oe6Lk75GY.is-link:hover:not(:disabled){text-decoration-thickness:3px}.zI5tJ_qhWE6Oe6Lk75GY.is-link:focus:not(:disabled){text-decoration-line:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:not(:disabled){background:var(--jp-red-50);box-shadow:inset 0 0 0 1px var(--jp-red-50);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:hover:not(:disabled){background:var(--jp-red-60);box-shadow:inset 0 0 0 1px var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:focus:not(:disabled){background:var(--jp-red-70);box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-white)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-primary:active:not(:disabled){background:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary{box-shadow:none}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:not(:disabled){background:var(--jp-white);box-shadow:inset 0 0 0 1.5px var(--jp-red-50);color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:hover:not(:disabled){background:var(--jp-red-0);box-shadow:inset 0 0 0 1.5px var(--jp-red-60);color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-secondary:active:not(:disabled){background:var(--jp-gray-0)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:not(:disabled){color:var(--jp-red-50)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:hover:not(:disabled){box-shadow:none;color:var(--jp-red-60)}.zI5tJ_qhWE6Oe6Lk75GY.is-destructive.is-link:focus:not(:disabled){box-shadow:inset 0 0 0 1px var(--jp-white),0 0 0 var(--wp-admin-border-width-focus) var(--jp-red-70);color:var(--jp-red-70)}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6{position:relative}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6.has-icon{justify-content:center}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>:not(.components-spinner){visibility:hidden}.zI5tJ_qhWE6Oe6Lk75GY.q_tVWqMjl39RcY6WtQA6>.components-spinner{margin:0;position:absolute}.CDuBjJp_8jxzx5j6Nept{margin-right:calc(var(--spacing-base)/2)}.jp-license-activation-screen{border-radius:4px;box-shadow:0 4px 24px 0 rgba(0,0,0,.149);display:flex;flex-direction:column;min-height:540px;overflow:hidden}@media screen and (min-width:780px){.jp-license-activation-screen{flex-direction:row}}.hdasSNj9k3Sc5PwXK4uE{margin-left:4px;width:16px}.eWN8Hj0SBRDq1F48n_Fg{--gray-70:#3c434a;align-items:center;color:var(--gray-70);display:flex;font-size:14px;text-decoration:none}.jp-dashboard-footer{align-items:center;color:var(--jp-black);display:flex;flex-wrap:wrap;font-size:var(--font-body-extra-small);line-height:1.333;max-width:1128px;width:100%}.jp-dashboard-footer a{text-decoration:none}.jp-dashboard-footer a:any-link,.jp-dashboard-footer a[role=button]{color:inherit}.jp-dashboard-footer a:hover{text-decoration:underline;text-decoration-thickness:1.5px}.jp-dashboard-footer a:focus{border-radius:2px;box-shadow:none;outline:1.5px solid currentColor;outline-offset:3px}.jp-dashboard-footer.is-sm>ul{gap:.125rem}.jp-dashboard-footer.is-md,.jp-dashboard-footer.is-sm>ul{align-items:flex-start;flex-direction:column}.jp-dashboard-footer>ul{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;list-style:none;margin:0;padding:0;width:100%}.jp-dashboard-footer>ul>li{margin-bottom:0}.jp-dashboard-footer>ul>li>a{align-items:center;display:flex;gap:.25rem;min-height:44px}.jp-dashboard-footer__accessible-external-link{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;overflow-wrap:normal;padding:0;position:absolute;width:1px}.jp-dashboard-footer__jp-item{font-weight:600;padding-inline-end:1rem}.jp-dashboard-footer.is-sm .jp-dashboard-footer__jp-item{padding-bottom:1rem}.jp-dashboard-footer.is-lg .jp-dashboard-footer__a8c-item{margin-inline-start:auto}.jp-dashboard-footer.is-sm .jp-dashboard-footer__a8c-item{padding-top:1rem}.jp-dashboard-footer__a8c-item>a,.jp-dashboard-footer__jp-item>a{text-decoration:none}.sexr0jUxC1jVixdKiDnC{margin-right:-20px}@media(max-width:782px){.sexr0jUxC1jVixdKiDnC{margin-right:-10px}}.sexr0jUxC1jVixdKiDnC.vKQ11sLeAM45M04P1ccj{background-color:var(--jp-white)}.rV_5QyvhDnsVjCX4pb0h{--gray-90:#1e1e1e;fill:var(--gray-90);width:24px}.MO1jDNY8VPqeNS9xL8jE{align-items:center;display:flex;text-decoration:none}.zvd4dCB_bBDiXJKKDqXm{position:relative}.ly4o9lSswAGHFXqGUEIO{left:32px;position:absolute;top:32px;z-index:1}.u64Go3kwEZ7MD9eji0H1{color:var(--jp-gray-50);font-size:13px;margin-bottom:8px;width:60%}._RT41NE3LU4R0ubcij2y{align-items:center;display:flex;gap:8px}._RT41NE3LU4R0ubcij2y li{background:none!important;margin:0!important;padding:0!important}.cFGWJeRiGHjAr8D7CWJW{max-width:110px}.Iz3l7a05TP6HK9S92TIL{width:16px}.lmQ0wFmnk4kKkGVjokPA{height:18px}.ZSFTmY3zE3VP4w0QeaqV{width:16px}.AoIs8wD92wKR8RpQj6Uc{align-items:center;display:inline-flex}.WQVtrU6q0L1Igcj7wCrQ{margin:0;padding:0}.UujoBFTnQNY2cWU2SIsH{font-size:var(--font-headline-medium);font-weight:700;line-height:52px}.TeGO5V_thHw5lDAm1_2M{font-weight:700}.TeGO5V_thHw5lDAm1_2M,.WolQzb2MsSgiNmLtc7_j{font-size:var(--font-headline-small);line-height:40px}.WolQzb2MsSgiNmLtc7_j{font-weight:400}.hUB0JT8p1T2Hw28N6qC8{font-weight:500}.gKZWDv5chz3_O3Syp74H,.hUB0JT8p1T2Hw28N6qC8{font-size:var(--font-title-medium);line-height:32px}.gKZWDv5chz3_O3Syp74H{font-weight:600}.zY2No8Ga4b8shbOQGhnv{font-size:var(--font-title-small);font-weight:500;line-height:30px}.tIj0D1t8Cc892ikmgFPZ{font-size:var(--font-body);font-weight:400;line-height:24px}.KdcN0BnOaVeVhyLRKqhS{font-size:var(--font-body-small);font-weight:400;line-height:24px}.dso3Rh3tl3Xv1GumBktz{font-weight:400}.dso3Rh3tl3Xv1GumBktz,.mQ1UlbN9u4Mg9byO8m7v{font-size:var(--font-body-extra-small);line-height:20px}.mQ1UlbN9u4Mg9byO8m7v{font-weight:700}.PItlW5vRExLnTj4a8eLE{font-size:var(--font-body-extra-small);font-weight:600;line-height:16px}.TwRpPlktzxhmFVeua7P5{margin:calc(var( --spacing-base )*0)}.zVfqx7gyb3o9mxfGynn1{margin-left:calc(var( --spacing-base )*0);margin-right:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy{margin-bottom:calc(var( --spacing-base )*0)}.iSHVzNiB9iVleGljaQxy,.xqDIp6cNVr_E6RXaiPyD{margin-top:calc(var( --spacing-base )*0)}.S8EwaXk1kyPizt6x4WH2{margin-left:calc(var( --spacing-base )*0)}.ODX5Vr1TARoLFkDDFooD{margin-bottom:calc(var( --spacing-base )*0)}.cphJ8dCpfimnky7P2FHg{margin-right:calc(var( --spacing-base )*0)}.PFgIhNxIyiSuNvQjAIYj{margin:calc(var( --spacing-base )*1)}.M2jKmUzDxvJjjVEPU3zn{margin-left:calc(var( --spacing-base )*1);margin-right:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk{margin-bottom:calc(var( --spacing-base )*1)}.io15gAh8tMTNbSEfwJKk,.rcTN5uw9xIEeMEGL3Xi_{margin-top:calc(var( --spacing-base )*1)}.CQSkybjq2TcRM1Xo9COV{margin-left:calc(var( --spacing-base )*1)}.hfqOWgq6_MEGdFE82eOY{margin-bottom:calc(var( --spacing-base )*1)}.I8MxZQYTbuu595yfesWA{margin-right:calc(var( --spacing-base )*1)}.kQkc6rmdpvLKPkyoJtVQ{margin:calc(var( --spacing-base )*2)}.j6vFPxWuu4Jan2ldoxpp{margin-left:calc(var( --spacing-base )*2);margin-right:calc(var( --spacing-base )*2)}.hqr39dC4H_AbactPAkCG{margin-bottom:calc(var( --spacing-base )*2)}.c3dQnMi16C6J6Ecy4283,.hqr39dC4H_AbactPAkCG{margin-top:calc(var( --spacing-base )*2)}.YNZmHOuRo6hU7zzKfPdP{margin-left:calc(var( --spacing-base )*2)}.Db8lbak1_wunpPk8NwKU{margin-bottom:calc(var( --spacing-base )*2)}.ftsYE5J9hLzquQ0tA5dY{margin-right:calc(var( --spacing-base )*2)}.Det4MHzLUW7EeDnafPzq{margin:calc(var( --spacing-base )*3)}.h_8EEAztC29Vve1datb5{margin-left:calc(var( --spacing-base )*3);margin-right:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM{margin-bottom:calc(var( --spacing-base )*3)}.YXIXJ0h1k47u6hzK8KcM,.soADBBkcIKCBXzCTuV9_{margin-top:calc(var( --spacing-base )*3)}.zSX59ziEaEWGjnpZa4uV{margin-left:calc(var( --spacing-base )*3)}.yrVTnq_WBMbejg89c2ZQ{margin-bottom:calc(var( --spacing-base )*3)}.UKtHPJnI2cXBWtPDm5hM{margin-right:calc(var( --spacing-base )*3)}.guexok_Tqd5Tf52hRlbT{margin:calc(var( --spacing-base )*4)}.oS1E2KfTBZkJ3F0tN7T6{margin-left:calc(var( --spacing-base )*4);margin-right:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd{margin-bottom:calc(var( --spacing-base )*4)}.DN1OhhXi6AoBgEdDSbGd,.ot2kkMcYHv53hLZ4LSn0{margin-top:calc(var( --spacing-base )*4)}.A1krOZZhlQ6Sp8Cy4bly{margin-left:calc(var( --spacing-base )*4)}.pkDbXXXL32237M0hokEh{margin-bottom:calc(var( --spacing-base )*4)}.XXv4kDTGvEnQeuGKOPU3{margin-right:calc(var( --spacing-base )*4)}.yGqHk1a57gaISwkXwXe6{margin:calc(var( --spacing-base )*5)}.X8cghM358X3DkXLc9aNK{margin-left:calc(var( --spacing-base )*5);margin-right:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f{margin-bottom:calc(var( --spacing-base )*5)}.GdfSmGwHlFnN2S6xBn1f,.yqeuzwyGQ7zG0avrGqi_{margin-top:calc(var( --spacing-base )*5)}.g9emeCkuHvYhveiJbfXO{margin-left:calc(var( --spacing-base )*5)}.Lvk3dqcyHbZ07QCRlrUQ{margin-bottom:calc(var( --spacing-base )*5)}.r3yQECDQ9qX0XZzXlVAg{margin-right:calc(var( --spacing-base )*5)}.aQhlPwht2Cz1X_63Miw0{margin:calc(var( --spacing-base )*6)}.JyHb0vK3wJgpblL9s5j8{margin-left:calc(var( --spacing-base )*6);margin-right:calc(var( --spacing-base )*6)}.cY2gULL1lAv6WPNIRuf3{margin-bottom:calc(var( --spacing-base )*6)}.NBWQ9Lwhh_fnry3lg_p7,.cY2gULL1lAv6WPNIRuf3{margin-top:calc(var( --spacing-base )*6)}.yIOniNe5E40C8fWvBm5V{margin-left:calc(var( --spacing-base )*6)}.t30usboNSyqfQWIwHvT3{margin-bottom:calc(var( --spacing-base )*6)}.Nm_TyFkYCMhOoghoToKJ{margin-right:calc(var( --spacing-base )*6)}.C4qJKoBXpgKtpmrqtEKB{margin:calc(var( --spacing-base )*7)}.S93Srbu6NQ_PBr7DmTiD{margin-left:calc(var( --spacing-base )*7);margin-right:calc(var( --spacing-base )*7)}.fJj8k6gGJDks3crUZxOS{margin-bottom:calc(var( --spacing-base )*7)}.cW6D6djs7Ppm7fD7TeoV,.fJj8k6gGJDks3crUZxOS{margin-top:calc(var( --spacing-base )*7)}.DuCnqNfcxcP3Z__Yo5Ro{margin-left:calc(var( --spacing-base )*7)}.im8407m2fw5vOg7O2zsw{margin-bottom:calc(var( --spacing-base )*7)}.G0fbeBgvz2sh3uTP9gNl{margin-right:calc(var( --spacing-base )*7)}.kvW3sBCxRxUqz1jrVMJl{margin:calc(var( --spacing-base )*8)}.tOjEqjLONQdkiYx_XRnw{margin-left:calc(var( --spacing-base )*8);margin-right:calc(var( --spacing-base )*8)}.op5hFSx318zgxsoZZNLN{margin-bottom:calc(var( --spacing-base )*8)}.c9WfNHP6TFKWIfLxv52J,.op5hFSx318zgxsoZZNLN{margin-top:calc(var( --spacing-base )*8)}.sBA75QqcqRwwYSHJh2wc{margin-left:calc(var( --spacing-base )*8)}.GpL6idrXmSOM6jB8Ohsf{margin-bottom:calc(var( --spacing-base )*8)}.HbtWJoQwpgGycz8dGzeT{margin-right:calc(var( --spacing-base )*8)}.uxX3khU88VQ_Ah49Ejsa{padding:calc(var( --spacing-base )*0)}.KX0FhpBKwKzs9fOUdbNz{padding-left:calc(var( --spacing-base )*0);padding-right:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz{padding-bottom:calc(var( --spacing-base )*0)}.PfK8vKDyN32dnimlzYjz,.emxLHRjQuJsImnPbQIzE{padding-top:calc(var( --spacing-base )*0)}.kJ8WzlpTVgdViXt8ukP9{padding-left:calc(var( --spacing-base )*0)}.tg_UIUI11VBzrTAn2AzJ{padding-bottom:calc(var( --spacing-base )*0)}.uczvl8kaz84oPQJ2DB2R{padding-right:calc(var( --spacing-base )*0)}.o7UHPcdVK3lt7q3lqV4o{padding:calc(var( --spacing-base )*1)}.IDqEOxvDoYrFYxELPmtX{padding-left:calc(var( --spacing-base )*1);padding-right:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2{padding-bottom:calc(var( --spacing-base )*1)}.DdywPW2qSYlu2pt8tpO2,.npy3hw4A5QSkDicb2CJJ{padding-top:calc(var( --spacing-base )*1)}.LgbptTApNY5NwLQvEFAt{padding-left:calc(var( --spacing-base )*1)}.WZQy2SZuZso59bUsXXyl{padding-bottom:calc(var( --spacing-base )*1)}.o331apInxNunbYB3SfPE{padding-right:calc(var( --spacing-base )*1)}.fMPIyD9Vqki1Lrc_yJnG{padding:calc(var( --spacing-base )*2)}.i2pMcTcdrr10IQoiSm_L{padding-left:calc(var( --spacing-base )*2);padding-right:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH{padding-bottom:calc(var( --spacing-base )*2)}.eA702gn32kwptiI1obXH,.o9bGieUKcYc8o0Ij9oZX{padding-top:calc(var( --spacing-base )*2)}.SwZcFez1RDqWsOFjB5iG{padding-left:calc(var( --spacing-base )*2)}.eHpLc_idmuEqeqCTvqkN{padding-bottom:calc(var( --spacing-base )*2)}.vU39i2B4P1fUTMB2l6Vo{padding-right:calc(var( --spacing-base )*2)}.JHWNzBnE29awhdu5BEh1{padding:calc(var( --spacing-base )*3)}.X72lGbb56L3KFzC2xQ9N{padding-left:calc(var( --spacing-base )*3);padding-right:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e{padding-bottom:calc(var( --spacing-base )*3)}.BzfNhRG8wXdCEB5ocQ6e,.srV0KSDC83a2fiimSMMQ{padding-top:calc(var( --spacing-base )*3)}.lUWfkmbQjCskhcNwkyCm{padding-left:calc(var( --spacing-base )*3)}.Ts0dIlc3aTSL7V4cIHis{padding-bottom:calc(var( --spacing-base )*3)}.CzlqQXXhX6MvorArFZ8B{padding-right:calc(var( --spacing-base )*3)}.TqMPkQtR_DdZuKb5vBoV{padding:calc(var( --spacing-base )*4)}.a7UrjhI69Vetlcj9ZVzz{padding-left:calc(var( --spacing-base )*4);padding-right:calc(var( --spacing-base )*4)}.StEhBzGs2Gi5dDEkjhAv{padding-bottom:calc(var( --spacing-base )*4)}.FGneZfZyvYrt1dG0zcnm,.StEhBzGs2Gi5dDEkjhAv{padding-top:calc(var( --spacing-base )*4)}.APEH216rpdlJWgD2fHc8{padding-left:calc(var( --spacing-base )*4)}.oGwXC3ohCic9XnAj6x69{padding-bottom:calc(var( --spacing-base )*4)}.U6gnT9y42ViPNOcNzBwb{padding-right:calc(var( --spacing-base )*4)}.IpdRLBwnHqbqFrixgbYC{padding:calc(var( --spacing-base )*5)}.HgNeXvkBa9o3bQ5fvFZm{padding-left:calc(var( --spacing-base )*5);padding-right:calc(var( --spacing-base )*5)}.tJtFZM3XfPG9v9TSDfN1{padding-bottom:calc(var( --spacing-base )*5)}.PdifHW45QeXYfK568uD8,.tJtFZM3XfPG9v9TSDfN1{padding-top:calc(var( --spacing-base )*5)}.mbLkWTTZ0Za_BBbFZ5b2{padding-left:calc(var( --spacing-base )*5)}.vVWpZpLlWrkTt0hMk8XU{padding-bottom:calc(var( --spacing-base )*5)}.RxfaJj5a1Nt6IavEo5Zl{padding-right:calc(var( --spacing-base )*5)}.SppJULDGdnOGcjZNCYBy{padding:calc(var( --spacing-base )*6)}.palY2nLwdoyooPUm9Hhk{padding-left:calc(var( --spacing-base )*6);padding-right:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_{padding-bottom:calc(var( --spacing-base )*6)}.WYw1JvZC0ppLdvSAPhr_,.YEEJ9b90ueQaPfiU8aeN{padding-top:calc(var( --spacing-base )*6)}.QE0ssnsKvWJMqlhPbY5u{padding-left:calc(var( --spacing-base )*6)}.n8yA3jHlMRyLd5UIfoND{padding-bottom:calc(var( --spacing-base )*6)}.tXHmxYnHzbwtfxEaG51n{padding-right:calc(var( --spacing-base )*6)}.kBTsPKkO_3g_tLkj77Um{padding:calc(var( --spacing-base )*7)}.RyhrFx6Y1FGDrGAAyaxm{padding-left:calc(var( --spacing-base )*7);padding-right:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO{padding-bottom:calc(var( --spacing-base )*7)}.CBwRpB0bDN3iEdQPPMJO,.vQVSq6SvWKbOMu6r4H6b{padding-top:calc(var( --spacing-base )*7)}.oBy5__aEADMsH46mrgFX{padding-left:calc(var( --spacing-base )*7)}.KVEXoJqf1s92j0JMdNmN{padding-bottom:calc(var( --spacing-base )*7)}.ZMXGNrNaKW3k_3TLz0Fq{padding-right:calc(var( --spacing-base )*7)}.tuiR9PhkHXhGyEgzRZRI{padding:calc(var( --spacing-base )*8)}.U7454qyWkQNa2iaSJziu{padding-left:calc(var( --spacing-base )*8);padding-right:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8{padding-bottom:calc(var( --spacing-base )*8)}.VLYIv2GVocjuN93e8HC8,.X1rm9DQ1zLGLfogja5Gn{padding-top:calc(var( --spacing-base )*8)}.JS7G6kAuqJo5GIuF8S5t{padding-left:calc(var( --spacing-base )*8)}.Y8F9ga1TDCMbM1lj4gUz{padding-bottom:calc(var( --spacing-base )*8)}.AJuyNGrI63BOWql719H8{padding-right:calc(var( --spacing-base )*8)}.terms-of-service{color:var(--jp-black);font-size:var(--font-body)}.terms-of-service .terms-of-service__link{color:var(--jp-green-50);text-decoration:underline;white-space:nowrap}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe{align-items:center;display:flex;gap:var(--spacing-base);margin-bottom:calc(var(--spacing-base)*3)}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .VmtuLc2xRqmsO6cK8qjF{position:relative;width:54px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .MdTRfQ3eo5qZKChZlzNj,.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .PbEpL02SEH9VNAlbKCfV{width:32px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .TD4AUM9gcTVAB6JHB5ZR{border-radius:50%;margin-right:-10px;position:absolute;width:32px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .yjl73qv0VWoPP8IhGreh{border-top-style:solid;border-top:2px dashed var(--jp-black);height:0;width:67px}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .J0GIu2rNR7rXocQTyd8p{border-color:var(--jp-red)}.kezuOHNvu9vdvlJ86Fwg .qJizORs2q_CVCj9L6XLe .rAV2E93SG8WpokuGk9jh{border-color:var(--jp-yellow-40)}.kezuOHNvu9vdvlJ86Fwg .YZ7FNKEm9qpvQ4ZkbAz5{transform:rotate(-180deg)}.kezuOHNvu9vdvlJ86Fwg .TYNMsILey2vUwnyZSjJU{align-self:flex-end;margin-bottom:2px}.kezuOHNvu9vdvlJ86Fwg .oH9tzGE80LnB6Og69RFz{margin-bottom:var(--spacing-base)}.kezuOHNvu9vdvlJ86Fwg .oH9tzGE80LnB6Og69RFz,.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp{align-items:center;display:flex;gap:var(--spacing-base)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.J0GIu2rNR7rXocQTyd8p{color:var(--jp-red);fill:var(--jp-red)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.rAV2E93SG8WpokuGk9jh{color:var(--jp-yellow-40);fill:var(--jp-yellow-40)}.kezuOHNvu9vdvlJ86Fwg .xXVEWvQllVsFGmJY8WEp.q4_FOHifGawULuFBZke9 svg{fill:var(--jp-green-50)}.OpMBda4vebhRbW8Fm6YC{background:var(--jp-white);border:1px solid var(--jp-gray-5);border-radius:var(--jp-border-radius-rna);box-shadow:0 4px 12px 0 rgba(0,0,0,.06);display:flex;flex-direction:column;height:100%;padding:calc(var(--spacing-base)*3)}.OpMBda4vebhRbW8Fm6YC.BghJAx9hSagUdHWOUaYE{background:none;background-color:var(--jp-white-off);color:var(--jp-black-80);text-decoration:none}.OpMBda4vebhRbW8Fm6YC.BghJAx9hSagUdHWOUaYE:focus{background-color:var(--jp-white);box-shadow:0 0 0 1.5px var(--jp-black);outline:3px solid transparent}.OpMBda4vebhRbW8Fm6YC.IWsEW5nnNWUqqcT3K5L1{box-shadow:0 0 0 1.5px var(--jp-red-60)}.r3UCwgwCthua6lDCvIBI{align-items:center;display:flex;gap:var(--spacing-base);justify-content:space-between;margin-bottom:var(--spacing-base);width:100%}.r3UCwgwCthua6lDCvIBI h3{font-weight:700}.vpluqUMgmwx9_f8wCVIn{align-items:center;display:flex;flex-wrap:wrap-reverse;gap:var(--spacing-base);height:100%}.pIsYsXFAJ9KX2VrS5rmY{min-height:200px;position:relative}.gmPKCDKZcfQt9WieTyKS{flex-grow:1}.fDBaV7I4yUO6w5AWVEtr{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:auto;min-height:28px;padding-top:calc(var(--spacing-base)*3);width:100%}.SelsBZT7eIWRQyl1dasZ{display:flex;gap:var(--spacing-base);justify-content:flex-start}.LHYJUrOej3toDvOAiz4k{align-items:center;display:flex;gap:var(--spacing-base);justify-content:space-between;margin-bottom:calc(var(--spacing-base)*.5);width:100%}.LHYJUrOej3toDvOAiz4k h3{font-weight:700;line-height:28px}.JFjbc0JgC4qC92ehOiUr{display:flex;position:relative}.JFjbc0JgC4qC92ehOiUr .NBZgqk_CGGfY3Q16OHjT{align-items:center;border:.5px solid var(--jp-black);border-bottom-left-radius:var(--jp-border-radius);border-top-left-radius:var(--jp-border-radius);box-shadow:inset 0 0 0 1px var(--jp-black);cursor:pointer;display:flex;justify-content:center;padding:0}.JFjbc0JgC4qC92ehOiUr .Jh6TlOGQNgBwU_fFxPrm{background-color:var(--jp-black);margin-right:.5px}.JFjbc0JgC4qC92ehOiUr .VBxTkBZVxHaVoyhMRJcz{background-color:var(--jp-white);border-right-width:0;margin-right:-.5px}.UZ3NDyOSbGY9NZWb3bUD{background:var(--jp-white);border-radius:calc(var(--jp-border-radius)/2);box-shadow:0 1px 1px 0 rgba(0,0,0,.1),0 1px 1.5px 0 rgba(0,0,0,.1),0 2px 3px -.5px rgba(0,0,0,.1);padding:var(--spacing-base);position:absolute;right:0;top:calc(100% + var(--spacing-base));z-index:1}.UZ3NDyOSbGY9NZWb3bUD .IpJGe_nvXXUiBOsAOkaV{align-items:center;background-color:var(--jp-white);border:none;cursor:pointer;display:flex;gap:calc(var(--spacing-base)*7);padding:var(--spacing-base);width:100%}.UZ3NDyOSbGY9NZWb3bUD .IpJGe_nvXXUiBOsAOkaV:hover{background-color:var(--jp-gray-0)}.UZ3NDyOSbGY9NZWb3bUD .SjzpxiAAVsU_xRrw55ub{align-items:center;display:flex;font-size:var(--font-label);gap:calc(var(--spacing-base)*.5)}.UZ3NDyOSbGY9NZWb3bUD .GQy61X1G7Wv3L3erNwxR{background-color:var(--jp-green-50);height:25px;width:25px}.QSePbRSFylCvM2cX8nN_ a,.QSePbRSFylCvM2cX8nN_ button{border-bottom-left-radius:0;border-top-left-radius:0}.aZvwqVNw6rvImSxn0DM9{align-items:baseline;display:flex;gap:calc(var(--spacing-base)*.5);margin-bottom:var(--spacing-base)}.R4OXFRkmlHAH8ScIgYXh{color:var(--jp-gray-100);font-size:var(--font-body);font-weight:600}.R4OXFRkmlHAH8ScIgYXh.g0_8bbVjnVh0D_pS264j{color:var(--jp-gray-30);text-decoration:line-through}.nqFgW_S2jbHPu9yPq9E_{color:var(--jp-gray-30);font-size:var(--font-body-extra-small)}.f5VJYwuJmjxH8PVxEbbv{align-items:center;display:flex;height:28px;white-space:nowrap}.f5VJYwuJmjxH8PVxEbbv:before{border-radius:50%;content:"";display:inline-block;height:8px;margin-left:var(--spacing-base);width:8px}.f5VJYwuJmjxH8PVxEbbv.ry3pxoGtmQ0ZeSwp7F_3{color:var(--jp-green-50)}.f5VJYwuJmjxH8PVxEbbv.ry3pxoGtmQ0ZeSwp7F_3:before{background:var(--jp-green-50)}.f5VJYwuJmjxH8PVxEbbv.LZzE3EG7m3CDR46wwwEr{color:var(--jp-gray-50)}.f5VJYwuJmjxH8PVxEbbv.LZzE3EG7m3CDR46wwwEr:before{background:var(--jp-gray-50)}.f5VJYwuJmjxH8PVxEbbv.TZUP7W6QYGajITiMNYas{color:var(--jp-yellow-40)}.f5VJYwuJmjxH8PVxEbbv.TZUP7W6QYGajITiMNYas:before{background:var(--jp-yellow-40)}.f5VJYwuJmjxH8PVxEbbv.Vx_jpT02r8W6NfsRSB02{color:var(--jp-red-60)}.f5VJYwuJmjxH8PVxEbbv.Vx_jpT02r8W6NfsRSB02:before{background:var(--jp-red-60)}.f5VJYwuJmjxH8PVxEbbv.PdsJCfyyjSgrNDheF2qi:before{animation:dWP7ypkVXudMbAa38W5Z .5s linear infinite}@keyframes dWP7ypkVXudMbAa38W5Z{0%{opacity:0}50%{opacity:.5}to{opacity:0}}.wI7QgVzPXvVVu6kfnTT8{align-items:center;color:var(--jp-black);display:flex;justify-content:space-between;margin-top:1rem}.wI7QgVzPXvVVu6kfnTT8 .eqyxcUmdF0s3gmmlZGyD{display:flex;gap:1.5rem}.wI7QgVzPXvVVu6kfnTT8 .gxY6D0PeVtGk9iSB5E_u{align-items:center;display:flex;font-size:var(--font-body-small);gap:2px;margin:0}.wI7QgVzPXvVVu6kfnTT8 .D_uE0LD5CvpfM2FNp55k{align-items:center;display:flex;gap:2px}.wI7QgVzPXvVVu6kfnTT8 .VTBUdi1D4DW34F0yixMk{font-size:var(--font-body-small);margin:0}.BXQQYCO_pEmYmzBBwYxR{align-items:center;color:var(--jp-black);display:flex;gap:.25rem;margin-top:1rem}.BXQQYCO_pEmYmzBBwYxR .qdvOzzbrd3KQK7DNg8eg{font-size:var(--font-body-small);margin:0}.PFbMp_gtGLBMWbbYtO0q{display:flex;flex-grow:1;flex-wrap:wrap;gap:.25rem;justify-content:space-between}.ZFCNMiywyFvaifoIQI5w{color:var(--jp-gray-40)}.mj-boost-speed-score{margin:calc(var(--spacing-base)*-1);margin-bottom:0;padding:calc(var(--spacing-base))}.mj-boost-speed-score__grade{align-items:center;column-gap:1em;display:flex;font-size:var(--font-body-small);justify-content:space-between;line-height:24px;margin:8px 0}.mj-boost-speed-score__grade--letter{all:unset;border-radius:var(--jp-border-radius);color:var(--jp-green);cursor:pointer;font-size:var(--font-title-small);font-weight:700;line-height:24px;padding:0 5px}.mj-boost-speed-score__grade--letter:focus{outline:1px dotted var(--jp-black)}.boost-score-tooltip__heading{color:#000;font-size:var(--font-title-small);line-height:30px;margin:0}.boost-score-tooltip__content{font-size:var(--font-body);line-height:24px}.boost-score-tooltip__parent{max-width:340px;min-height:150px;padding:24px;width:calc(100vw - 64px)}@media(min-width:783px){.boost-score-tooltip__parent{width:100vw}}.boost-score-tooltip__parent p:last-child{margin-bottom:0}.mj-boost-speed-score__bar .jb-score-bar__label{display:none}.mj-boost-speed-score__bar .jb-score-bar__filler{border-radius:12px;min-width:49px}.mj-boost-speed-score__bar .jb-score-bar__bounds{border-radius:12px;height:24px;margin-right:0}.mj-boost-speed-score__bar .jb-score-bar__score{border-radius:12px;height:24px;width:30px}.mj-boost-speed-score__increase{align-items:center;color:var(--jp-green-50);display:flex;font-size:var(--font-body-small);left:24px;line-height:28px;position:absolute;top:26px;fill:var(--jp-green-50)}.gridicon{fill:currentColor;display:inline-block}.gridicon.needs-offset g{transform:translate(-1px,1px)}.gridicon.needs-offset-x g{transform:translate(-1px)}.gridicon.needs-offset-y g{transform:translateY(1px)}.jb-score-bar__label,.jb-score-bar__loading,.jb-score-bar__score{align-items:center;background-color:#fff;border:2px solid transparent;border-radius:42px;display:flex;height:42px}.jb-score-bar{color:var(--jp-gray-70);display:flex;width:100%}.jb-score-bar--mobile{margin-bottom:1.5rem}@media(max-width:767px){.jb-score-bar{flex-direction:column}.jb-score-bar__label{background-color:transparent}}.jb-score-bar__loading{align-items:center;display:flex;justify-content:center;width:42px}.jb-score-bar__label{display:grid;grid-template-columns:24px 1fr;grid-column-gap:10px;font-size:14px;justify-content:center;position:relative}@media(min-width:768px){.jb-score-bar__label{padding-left:15px;padding-right:15px;width:200px;z-index:50}}.jb-score-bar__score{border-radius:100%;font-weight:700;height:42px;justify-content:center;left:-1px;position:absolute;width:42px}.jb-score-bar__bounds{background-color:#f1f1f1;border-radius:21px;display:flex;height:42px;max-width:100%;position:relative;width:100%;z-index:40}@media(min-width:768px){.jb-score-bar__bounds{margin-right:-21px;width:calc(100% + 21px)}}.jb-score-bar__filler{border-radius:42px 0 0 42px;display:flex;justify-content:flex-end;min-width:85px;position:relative;transition:width .3s ease-in-out;width:0;will-change:width}@media(max-width:767px){.jb-score-bar__filler{border-radius:inherit;min-width:43px}}.jb-score-bar__no_boost_score{--clearance-space:74px;background:#fff;background-clip:padding-box;border:2px solid transparent;border-radius:50%;cursor:pointer;font-size:.7em;height:28px;line-height:1.625;padding:3px;position:absolute;text-align:center;top:6px;width:28px;z-index:2}.jb-score-bar__no_boost_score:hover{border:2px solid hsla(0,0%,100%,.5)}.jb-score-bar__no_boost_score:after{border-bottom:6px solid #fff;border-left:6px solid transparent;border-right:6px solid transparent;content:" ";height:0;position:absolute;right:6px;top:28px;width:0}.jb-score-bar__no_boost_score_tooltip{background:#fff;border-radius:4px;box-shadow:0 0 20px 0 hsla(0,0%,67%,.28);display:none;margin:0 16px;padding:16px;position:absolute;right:-10em;top:-62px;width:20em}.jb-score-bar__no_boost_score_tooltip:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;content:" ";height:0;margin:0 -10px;position:absolute;right:10em;width:0}.jb-score-bar__no_boost_score:hover .jb-score-bar__no_boost_score_tooltip{display:block}.jb-score-bar .fill-loading{background-color:var(--jp-white)}.jb-score-bar .fill-good{background-color:var(--jp-green)}.jb-score-bar .fill-mediocre{background-color:var(--jp-orange-20)}.jb-score-bar .fill-bad{background-color:var(--jp-red-50)}.info-tooltip__button{align-items:center;background:transparent;border:none;color:var(--jp-gray-50);cursor:pointer;display:flex;padding:2px}.info-tooltip__button svg{margin:0 auto}.info-tooltip__content h3{color:var(--jp-black);font-size:var(--font-title-small);font-weight:500;line-height:calc(var(--font-title-small) + 6px);margin:0 0 calc(var(--spacing-base)*2)}.info-tooltip__content p{color:var(--jp-gray-70);font-size:var(--font-body);line-height:var(--font-title-small);margin-bottom:0}.info-tooltip__content p a{color:var(--jp-black);text-decoration:underline}.info-tooltip__content p a:focus,.info-tooltip__content p a:hover{text-decoration:none}.g4lyov8aMDggdD4yOi1p{align-items:baseline;display:flex;margin-top:calc(var(--spacing-base)/2)}.g4lyov8aMDggdD4yOi1p .Ys5ScZ_dYn2O2AzDE5Yi{font-size:32px;font-weight:400;line-height:36px;margin-left:var(--spacing-base)}.sUNg_b7XteVXOrpHAkJg :last-child{margin-top:4px}.cF6QAJf1vXXAMuutXPcq{align-items:baseline;display:flex}.cF6QAJf1vXXAMuutXPcq.coY634LconQ7gzDDNJeu{color:var(--jp-gray-10);fill:var(--jp-gray-10)}.cF6QAJf1vXXAMuutXPcq.kyqpwKaL2FyQ8CtxJQ0f{color:var(--jp-green-50);fill:var(--jp-green-50)}.cF6QAJf1vXXAMuutXPcq.aXf37lEOcjpNV8ImLaYK{color:var(--jp-red-40);fill:var(--jp-red-40)}.cF6QAJf1vXXAMuutXPcq .OyGdoGzsQ48VaVVR99_H{position:relative;right:2px;top:2px}.cF6QAJf1vXXAMuutXPcq .cKLicfMCaDSGPlX222jF{font-size:14px;font-weight:600;line-height:24px}.ZaPXoMGC_e8NfFoBgA95,.gb2kSZHPauLu96D9HAIg{margin-bottom:1.5rem}.qpN923qyxjI06NCgFC8j>li{margin-bottom:0}.hpd1bQCLIZYXpZJa22qw{color:var(--jp-gray-100);font-size:var(--font-body-extra-small);font-weight:500;line-height:var(--font-title-small);margin-bottom:calc(var(--spacing-base) + 2px)}@media screen and (min-width:599px)and (max-width:1290px){ul.qpN923qyxjI06NCgFC8j{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}ul.qpN923qyxjI06NCgFC8j>li{grid-column-end:auto}}.value-section{display:flex;justify-content:space-between;margin-top:calc(var(--spacing-base)/2)}.value-section>div{align-items:flex-start;display:flex;flex-direction:column}.value-section__heading{align-items:center;display:flex;text-wrap:nowrap}.value-section__last-scan{align-items:center;column-gap:1px;display:flex;justify-content:flex-end;left:calc(var(--spacing-base)*3);margin-top:var(--spacing-base);position:absolute;width:calc(57% - var(--spacing-base)*3)}.value-section__last-scan div{color:var(--jp-gray-50);font-size:var(--font-body-extra-small);line-height:var(--font-body);text-align:left}@media(max-width:480px){.value-section__last-scan{width:calc(53% - var(--spacing-base)*3)}}.value-section__data{align-items:center;color:var(--jp-gray-50);display:flex;flex:1;font-size:var(--font-body-extra-small);font-weight:500;justify-content:center;line-height:var(--font-title-small)}.value-section__status-icon{display:block;margin-left:calc(var(--spacing-base) - 2px)}.value-section__status-text{letter-spacing:-.24px;margin-left:1px}.scan-threats__threat-count{color:var(--jp-black);font-size:calc(var(--font-title-large) - 4px);font-weight:400;line-height:var(--font-title-large)}.scan-threats__critical-threats{align-items:center;display:flex}.scan-threats__critical-threat-container{margin-right:1px}.scan-threats__critical-threat-container>button>svg{fill:var(--jp-red-50)}.scan-threats__critical-threat-count{color:var(--jp-red-50);margin-right:calc(var(--spacing-base)/4)}.logins_blocked__count{color:var(--jp-black);font-size:calc(var(--font-headline-small) - 4px);font-weight:400;line-height:var(--font-title-large)}.info-tooltip__content{max-width:340px;min-height:150px;padding:24px;width:calc(100vw - 64px)}.videopress-card__video-count{color:var(--jp-gray-90);display:flex;font-size:calc(var(--font-headline-small) - 4px);line-height:1.125;margin-top:calc(var(--spacing-base)/2)}.videopress-card__video-count .videopress-card__tooltip{height:18px}p.description{color:var(--jp-gray-70);font-size:var(--font-body-small);margin:0 0 1rem}.videopress-card__value-section{display:flex;gap:.75rem;justify-content:space-between}.videopress-card__value-section__container{align-items:flex-start;display:flex;flex-direction:column}.videopress-card__value-section__value-container{align-items:flex-end;display:flex;flex-wrap:wrap}.videopress-card__value-section__value{color:var(--jp-gray-90);font-size:calc(var(--font-headline-small) - 4px);line-height:1}.videopress-card__value-section__previous-value{align-items:center;display:flex;font-size:var(--font-body-extra-small);font-weight:600;line-height:18px}.videopress-card__value-section__previous-value.increase *{color:var(--jp-green-50);fill:var(--jp-green-50)}.videopress-card__value-section__previous-value.decrease *{color:var(--jp-red-50);fill:var(--jp-red-50)}.videopress-card__value-section__heading{align-items:center;display:flex;text-wrap:nowrap}.videopress-card__no-video-tooltip .info-tooltip__button{display:inline;vertical-align:middle}.iG63b_J1HNfT8xEIq619{margin-bottom:.75rem}.T8UhA3lZQjpZsyaah9J6{width:200px}@media screen and (min-width:599px)and (max-width:1290px){ul.g69ZGQc9wey1u1beD0IP{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}ul.g69ZGQc9wey1u1beD0IP>li{grid-column-end:auto}}.HeJe1crc9XaWWpLvIPit .components-modal__frame{border-bottom-right-radius:4px;border-right:4px solid #e68b28;border-top-right-radius:4px;max-height:100%}.HeJe1crc9XaWWpLvIPit .components-modal__content{margin-top:0;padding:0}.HeJe1crc9XaWWpLvIPit .components-modal__header{display:none}.HeJe1crc9XaWWpLvIPit .or0JUScxkJPmNsfrxkEK .jp-idc__idc-screen{border:0}.components-surface.components-card{border-radius:var(--jp-border-radius-rna)}.upsell-banner{background:#f9f9f6;background:linear-gradient(-133deg,#ced9f2,#f9f9f6 10%,#f9f9f6 80%,#f5e6b3);display:flex;flex-direction:column}@media screen and (min-width:660px){.upsell-banner{flex-direction:row}}.upsell-banner.components-card__body.components-card-body{border-radius:var(--jp-border-radius-rna);padding:36px}.upsell-banner .upsell-banner--icon{align-items:flex-start;display:flex;margin-bottom:16px;margin-left:0;margin-top:16px}@media screen and (min-width:660px){.upsell-banner .upsell-banner--icon{align-items:center;margin-bottom:0;margin-left:28px;margin-top:0}}.upsell-banner .upsell-banner--content{display:flex;flex:1;flex-direction:column;justify-content:space-between}@media screen and (min-width:660px){.upsell-banner .upsell-banner--content{flex-direction:row}}.upsell-banner .upsell-banner--content .upsell-banner--content-info{display:flex;flex-direction:column}.upsell-banner .upsell-banner--content .upsell-banner--content-info h3{font-size:1.5rem;font-weight:500;line-height:32px;margin:0}.upsell-banner .upsell-banner--content .upsell-banner--content-info p{font-size:1rem;margin:8px 0 0}.upsell-banner .upsell-banner--content .upsell-banner--content-cta{align-items:center;display:flex;flex-direction:row;margin-right:0;margin-top:16px}@media screen and (min-width:660px){.upsell-banner .upsell-banner--content .upsell-banner--content-cta{margin-right:16px;margin-top:0}}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button{box-shadow:inset 0 0 0 1.5px #000;font-weight:400;padding:8px 16px;white-space:nowrap}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button.secondary{background-color:var(--jp-white);color:var(--jp-black)}.upsell-banner .upsell-banner--content .upsell-banner--content-cta .upsell-banner--content-cta-button.primary{margin-right:8px}.yWUvvF4WJLNDSpMgBMfm{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.ka1fVHj2HOkHjhdoEFOZ{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.ka1fVHj2HOkHjhdoEFOZ{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.ka1fVHj2HOkHjhdoEFOZ{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.JMOO4Y_9yhTO9lwLnRUx{grid-column-end:span 1}.PFDPAqk51qox_ChLqJwm{grid-column-end:span 2}.ault0jHVfWpShqOGooIP{grid-column-end:span 3}.GqpvdRzmzPJELtSm4FEN{grid-column-end:span 4}@media(min-width:600px){.Ym4_YneEGD_iZD6W1C2o{grid-column-end:span 1}.NbvHnnDtWw8n9BEUQ0Oy{grid-column-end:span 2}.ElMT7rhxe5ZJKO41MnhW{grid-column-end:span 3}.yKjnqjibn_wW_1tWWt5Q{grid-column-end:span 4}.Pb30lOcQFpzUX57GwflS{grid-column-end:span 5}.pC1wxc_R8y4pNILHsiiY{grid-column-end:span 6}.pChscSCnudQoWGjMFKI_{grid-column-end:span 7}.qw1H2gAgF3lDCI2Tbkmb{grid-column-end:span 8}}@media(min-width:960px){.VzcA_rrxBK3g4ozA0oD9{grid-column-end:span 1}.pNAa7O2adRZD8Slgk9iR{grid-column-end:span 2}.tlIMLlipexblj8CeOx4B{grid-column-end:span 3}.Dvt0u5l2Rr1BhBmvYAzl{grid-column-end:span 4}.BiUsgNTc0tyc7tC5jnzE{grid-column-end:span 5}.ulJXAsj7G2ROJ1g3_s28{grid-column-end:span 6}.HsoVlyVLsXYClx9Atox0{grid-column-end:span 7}.oXxjRQNNj2cfIpFBqC1W{grid-column-end:span 8}.qXgUn4Adg9xE_JnbuDio{grid-column-end:span 9}.xMpqTLiLfYFEJiRPQQQq{grid-column-end:span 10}.IiGo3Sz2FDZN7_eGElwA{grid-column-end:span 11}.Om8BNCjfgqQ_wmPQjfOY{grid-column-end:span 12}}@media(max-width:960px){.t10ZWzP7ADjJnR4tqxRS{display:none}}@media(max-width:600px){.eOUlZG8Pelh_Xj0aSoHG{display:none}}.l546LrwBEePz434NFK5Q{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);display:block;margin:32px 0;padding:16px 24px 16px 64px;position:relative;text-decoration:none}.l546LrwBEePz434NFK5Q span{display:block}.l546LrwBEePz434NFK5Q span:last-of-type{font-weight:600}.l546LrwBEePz434NFK5Q:focus span:last-of-type,.l546LrwBEePz434NFK5Q:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.l546LrwBEePz434NFK5Q:focus:after,.l546LrwBEePz434NFK5Q:hover:after{transform:translateY(-50%) translateX(-8px)}.l546LrwBEePz434NFK5Q:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.Q7w4fcEcemZ2nlwaYNog{fill:var(--jp-yellow-30)!important;display:inline-block!important;width:1.1em!important}.AoNQsOaTt6gSf0H6Yasz{display:inline-block;position:relative}.v13ZwGzUnecPA7Y3URAl{height:18px;pointer-events:none;position:absolute;right:-53px;top:0;width:124px}.EeDbu9pXFWTsCzfTpv2v{pointer-events:all}.BmSvoIi3rErkcrRiOi2W{color:var(--jp-black);font-size:16px;font-weight:600;line-height:19px}.BmSvoIi3rErkcrRiOi2W:not(:last-child){margin-bottom:8px}.mojRoVuWdDJo0E6LEjJw{font-size:14px;font-weight:400;line-height:24px}.golden-token-icon-tooltip .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-left:-62px}.golden-token-icon-tooltip .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-right:-62px}.golden-token-icon-tooltip .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.golden-token-icon-tooltip .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.golden-token-icon-tooltip .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.golden-token-icon-tooltip .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;outline:none;padding:24px;white-space:normal;width:304px}.golden-token-icon-tooltip .components-button.is-link:focus:not(:disabled){box-shadow:none}.wiobThfXJCuhGNrbFIT6 a,.wiobThfXJCuhGNrbFIT6 a:active,.wiobThfXJCuhGNrbFIT6 a:hover{color:var(--jp-black)}.VgAxgahF9bC2M__FiIgV{display:flex;margin-bottom:calc(var(--spacing-base)*3)}.dbRwkMLqcMF67njPoAF7{margin-left:8px}.Doju0RxvvN9JS12mf489{line-height:calc(var(--spacing-base)*3);margin:0 0 var(--spacing-base) 0}.Jvb1njqMy7ML1zikhbWn{margin-top:1rem}.mpr8_ygU8woV4bVR1xvw{align-items:center;display:flex;font-size:var(--font-title-small);font-weight:500;line-height:1.5;margin-bottom:.5rem;margin-top:0}.gwO_Q0L0jbwMARVlBezu{color:var(--jp-gray-60);font-family:SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:var(--font-body-small);font-weight:400;letter-spacing:-.15px;line-height:20px;margin-right:.75rem}.qwy7CsLeEbXvaPwgC9WV{display:flex;flex-flow:row nowrap;max-width:100%;overflow-x:scroll;padding:1px;scrollbar-width:none}.qwy7CsLeEbXvaPwgC9WV::-webkit-scrollbar{display:none}.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR{border-color:var(--jp-gray-5);border-radius:5px;margin-bottom:0;margin-left:1.5rem;min-width:180px;padding:1rem 1.5rem;width:100%}@media only screen and (min-width:960px){.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR{min-width:220px}}.qwy7CsLeEbXvaPwgC9WV .Hrbg7DeSJs6gas9zdPDR:last-child{margin-left:0}.NFpbo5AINn6I6avKFGby{margin-bottom:1.5rem}.aoQZCG0JeyWmy2J6vVxF{font-weight:500;line-height:20px;margin-bottom:.25rem}.M6ApyXg79vuXo6GwDkbO{align-items:flex-end;display:flex;flex-wrap:wrap;font-size:36px;font-weight:400;line-height:40px}.M6ApyXg79vuXo6GwDkbO.DYHb5e6QhgXejWyo9s78{cursor:pointer}.OlInbY5YnDO06MEQHv98{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1;margin-left:.5rem}.EtbKbd5m85w7oYT4stIs{color:var(--jp-gray-20);display:none;font-size:var(--font-body-small);font-weight:600;line-height:24px;fill:var(--jp-gray-20)}@media screen and (min-width:960px){.EtbKbd5m85w7oYT4stIs{align-items:center;display:flex}}.EtbKbd5m85w7oYT4stIs.Awr7zl75sfAsFPHK9kDG{color:var(--jp-red-50);fill:var(--jp-red-50)}.EtbKbd5m85w7oYT4stIs.QFSZbIKFdWO3HEPBZyhc{color:var(--jp-green-50);fill:var(--jp-green-50)}.GgJAnS4gaEEGmRCP5n8y{align-content:flex-end;display:flex}.mjiNtwdbKpfo9edGVes4{margin-left:2px}.pAt4v_KG9Ir19wNcEtEj{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:calc(var(--spacing-base)*2.5);min-height:28px;width:100%}.vMa4i_Dza2t5Zi_Bw9Nf{background:var(--jp-white-off);padding-top:1px}.jrGNTKcgeXk9HKzolut9{position:relative}.jrGNTKcgeXk9HKzolut9>.wg3mZsoPekZWlBgOvdZ6{overflow:hidden;padding:0}.jrGNTKcgeXk9HKzolut9>.wg3mZsoPekZWlBgOvdZ6.aDxB89WgtARQqNWd4ZeK:before{background-color:var(--jp-red-50);border:2px solid var(--jp-white-off);border-radius:50%;content:"";height:18px;position:absolute;right:-11px;top:-11px;width:18px}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR{background-color:var(--jp-white);border-radius:50%;box-shadow:0 0 5px 1px rgba(0,0,0,.1);left:16px;padding:8px;position:absolute;top:16px;transform:scale(.75)}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:focus,.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:hover{background-color:var(--jp-white)}.jrGNTKcgeXk9HKzolut9>.sGP8lxDpRSjt0Fh7wxoR:disabled{pointer-events:none}.z5EQSkU36nsjxHEBSfNN{padding:0}.MwBwVaEj6u_zRgfrFR9b{padding:24px 16px}@media screen and (min-width:600){.MwBwVaEj6u_zRgfrFR9b{padding:32px 24px}}@media screen and (min-width:960px){.MwBwVaEj6u_zRgfrFR9b{padding:48px 48px 48px 12px}}.UgPNtuFW7lTJ06k39EsK{background-image:url(images/evaluation-blank-fbbfbcd75b50ade0f092.png),radial-gradient(circle at 40% 70%,rgba(206,217,242,.75) 0,hsla(0,0%,100%,0) 40%),radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 80% 20%,hsla(46,77%,83%,.75) 0,hsla(0,0%,100%,0) 50%);background-position:25%;background-repeat:no-repeat;background-size:393px,cover,cover,cover}.UgPNtuFW7lTJ06k39EsK.ilVOud0_OCGK4HciazB_{background-image:url(images/evaluation-selected-196d1790b76830f9b73a.png),radial-gradient(circle at 40% 70%,rgba(206,217,242,.75) 0,hsla(0,0%,100%,0) 40%),radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 80% 20%,hsla(46,77%,83%,.75) 0,hsla(0,0%,100%,0) 50%)}.EtcggGK0Bk8POQD986Og{background-image:url(images/site-cards-29522f090d5422fd7afd.png),radial-gradient(circle at 90% 30%,rgba(6,158,8,.15) 0,hsla(0,0%,100%,0) 35%),radial-gradient(circle at 75% 65%,rgba(206,217,242,.5) 5%,hsla(0,0%,100%,0) 15%),radial-gradient(circle at 90% 90%,hsla(46,77%,83%,.5) 0,hsla(0,0%,100%,0) 25%);background-repeat:no-repeat;background-size:cover}@media screen and (max-width:960px){.EtcggGK0Bk8POQD986Og{background-image:url(images/site-cards-29522f090d5422fd7afd.png),radial-gradient(circle at 55% 30%,rgba(6,158,8,.15) 0,hsla(0,0%,100%,0) 100%),radial-gradient(circle at 25% 40%,rgba(206,217,242,.5) 5%,hsla(0,0%,100%,0) 50%),radial-gradient(circle at 50% 85%,hsla(46,77%,83%,.3) 0,hsla(0,0%,100%,0) 35%);min-height:160px;order:-1}}.TSiu5sC6MdANROjUkUJM{margin-top:24px}.iqJfpZM9IYXuFSXvuoEe{font-size:16px!important;margin-top:16px}.Vozbq8Inlk5SxoVnn2G5{column-gap:40px;display:flex;flex-direction:row;margin-top:64px}.s_V1BM1Wtt3He4eF2TCu{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3);text-decoration:none!important}.wXWt0uFLFkFT7CqgOijQ{align-items:center;background-image:radial-gradient(circle at 80% 80%,rgba(6,158,8,.15) 5%,hsla(0,0%,100%,0) 50%);background-position:0 80%;background-repeat:no-repeat;background-size:cover;display:flex;flex-direction:column;justify-content:center;padding:144px 0}.m_muvynofDds3hoh9u5m{margin-bottom:24px}.m_muvynofDds3hoh9u5m svg{color:var(--jp-green-40);height:48px;width:48px}.m_muvynofDds3hoh9u5m svg circle{stroke:var(--jp-green-5)}.m_muvynofDds3hoh9u5m svg circle,.m_muvynofDds3hoh9u5m svg path{stroke-width:4px}.jErCC9oKHSM15BxzFyQK{margin-bottom:0}.oVoYbwbFB6U2o90Njusk>div{background-color:var(--jp-white);font-size:16px;line-height:22px;margin:0;position:relative}.oVoYbwbFB6U2o90Njusk>div .components-notice__content{align-items:flex-start;display:flex;flex-direction:column;margin:0;padding:12px 4px}@media screen and (min-width:960px){.oVoYbwbFB6U2o90Njusk>div .components-notice__content{gap:6rem}}.oVoYbwbFB6U2o90Njusk>div .is-link{color:var(--jp-black);font-size:16px;font-weight:600}.oVoYbwbFB6U2o90Njusk>div .components-notice__dismiss{align-self:center}.oVoYbwbFB6U2o90Njusk>div .components-notice__action{align-items:center;background:#000;border-radius:var(--jp-border-radius);color:var(--jp-white);cursor:pointer;font-size:16px;font-weight:600;height:auto;justify-content:center;letter-spacing:-.01em;line-height:24px;margin-right:0;margin-top:24px;padding:8px 24px;text-decoration:none}@media screen and (min-width:960px){.oVoYbwbFB6U2o90Njusk>div .components-notice__action{margin-right:calc(var(--spacing-base)*2 + 24px)}}.oVoYbwbFB6U2o90Njusk>div.Snc8NEmDelsbhlH4285s .components-notice__action{margin-right:0;margin-top:0;white-space:nowrap}.oVoYbwbFB6U2o90Njusk>div.Snc8NEmDelsbhlH4285s .components-notice__content{align-items:center;flex-direction:row}.oVoYbwbFB6U2o90Njusk .R5tvcsARTGN0A_z3DygA{min-width:auto}.wBVXH4OTNwLHPRpN4nsq{display:flex;flex-grow:1;margin-left:var(--spacing-base)}.wBVXH4OTNwLHPRpN4nsq .terms-of-service{color:var(--jp-gray-70);font-size:var(--font-body-small)}.wBVXH4OTNwLHPRpN4nsq>svg{fill:var(--jp-red-60);align-self:flex-start;flex-shrink:0;margin-left:calc(var(--spacing-base)*2)}.wBVXH4OTNwLHPRpN4nsq>svg.F1qvEnFfHs5nz3zFZUOV{fill:none}.SrQxAOBa5ZaSKP8wlut9{border-bottom:none;margin:0}.TcCZnGE6mad8Dvz9pCZi{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgZmlsbD0ibm9uZSI+PHBhdGggc3Ryb2tlPSIjRDYzNjM5IiBzdHJva2Utd2lkdGg9IjEuNSIgZD0iTTEyIDIwYTggOCAwIDEgMCAwLTE2IDggOCAwIDAgMCAwIDE2WiIvPjxwYXRoIGZpbGw9IiNENjM2MzkiIGQ9Ik0xMyA3aC0ydjZoMnpNMTMgMTVoLTJ2MmgyeiIvPjwvc3ZnPg==) no-repeat 100% 0;color:var(--jp-red);line-height:25px;padding-right:25px}._mn6o2Dtm5pfFWc8_A1K{--spacing-base:8px;min-width:264px}.VHYulMcpzbr10HWR0iSE{align-items:flex-start;border:1px solid var(--jp-black);border-color:var(--jp-gray-5);border-radius:4px;border-right-width:6px;display:flex;font-size:var(--font-body);padding:24px 18px 27px 31px}.FGpSkMCiIHQjszcV0dbn{margin-left:20px}.FGpSkMCiIHQjszcV0dbn,.KoWZcCwhW13xvkEb0QON{height:calc(var(--spacing-base)*3);width:calc(var(--spacing-base)*3)}.KoWZcCwhW13xvkEb0QON{background-color:transparent;border:none;cursor:pointer;outline:none}@media screen and (max-width:600px){.VHYulMcpzbr10HWR0iSE{box-shadow:0 4px 8px rgba(0,0,0,.03),0 1px 2px rgba(0,0,0,.06);padding-top:68px;position:relative}.FGpSkMCiIHQjszcV0dbn{position:absolute;right:24px;top:24px}.KoWZcCwhW13xvkEb0QON{left:24px;position:absolute;top:24px}}.smrfczkC53EaFM8OJUXs{flex-grow:1}.IKYRWoPwt9xOVEx1wzNS{font-weight:600;margin-bottom:8px}.qM0qY6mPYp1MPN54A3Kg{align-items:center;display:flex;margin-top:20px}.qM0qY6mPYp1MPN54A3Kg a,.qM0qY6mPYp1MPN54A3Kg a:active,.qM0qY6mPYp1MPN54A3Kg a:focus,.qM0qY6mPYp1MPN54A3Kg a:hover{color:var(--jp-black)}.qM0qY6mPYp1MPN54A3Kg>*{margin-left:24px}.A5YkDkkXuiYgavrY6Nux{border-right-color:var(--jp-red)}.A5YkDkkXuiYgavrY6Nux .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-red)}.cT5rwuPMZzWvi5o6shMl{border-right-color:var(--jp-yellow-20)}.cT5rwuPMZzWvi5o6shMl .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-yellow-20)}.yo0O3uvNomPsYUXFCpAS{border-right-color:var(--black)}.yo0O3uvNomPsYUXFCpAS .y_IPyP1wIAOhyNaqvXJq{fill:var(--black)}.oZdDFf1jBLkzn5ICCC6x{border-right-color:var(--jp-green)}.oZdDFf1jBLkzn5ICCC6x .y_IPyP1wIAOhyNaqvXJq{fill:var(--jp-green)}.cAbGtJDGgLubucBnz7vM,.q0T8YyQxRawhpDtvJjxI{background-color:var(--jp-white)}.q0T8YyQxRawhpDtvJjxI{height:100%;padding:calc(var(--spacing-base)*8);position:relative}.B7JDqI_vtKxSy5GjvqA1{display:flex;flex-direction:column;height:100%}.zj7xadmhIWeuf7ZwvVTS{align-items:center;background:var(--jp-black);border-radius:var(--jp-border-radius) var(--jp-border-radius) 0 0;color:var(--jp-white);display:flex;height:calc(var(--spacing-base)*4);padding:0 var(--spacing-base);position:absolute;right:0;top:0;width:100%}.GsioW6IsC8EMYE3U6788{fill:var(--jp-white);margin-left:var(--spacing-base)}.cfEO8udWbRGPFJzW8Jg5,.dbz07JqxOlivjKO4vBEF{align-items:center;display:flex;height:calc(var(--spacing-base)*4);margin-bottom:calc(var(--spacing-base)*4)}.zlh3zbjUe4Z8cBs7uVVe{fill:#8c8f94;height:24px;line-height:24px}.qoZuzG5EcDa231hC6t0P{align-items:center;display:flex;justify-content:center}.qoZuzG5EcDa231hC6t0P svg{margin-left:var(--spacing-base)}.Q6uUUQCPWS6_6nLxIn68{display:inline-block;min-height:42px;padding:.5em 2em;text-align:center;width:100%}.Q6uUUQCPWS6_6nLxIn68 .YU4iBCRze09ZP3iCsdcb{margin:0}.Q6uUUQCPWS6_6nLxIn68.components-button.is-primary{height:auto;white-space:normal}.Q6uUUQCPWS6_6nLxIn68.is-secondary:hover:not(:disabled){background-color:var(--jp-black);color:var(--jp-white)}.OrQG7DjDd9Ha2Xj1Mx3L{margin-top:calc(var(--spacing-base)*2)}.Q1jaYDpa2AVfJpA29wT0{flex-grow:1;margin:0;margin-bottom:calc(var(--spacing-base)*2);padding:0}.Q1jaYDpa2AVfJpA29wT0 li{align-items:flex-start;display:flex;list-style:none;margin-bottom:var(--spacing-base)}.Q1jaYDpa2AVfJpA29wT0 svg{fill:var(--jp-green-primary);flex-shrink:0;margin-left:var(--spacing-base)}.HL4gSxsF0skYGhGuqH90 li:last-of-type{font-weight:700}.sEcLfpWjo0GF7QrxD3Lt{margin-top:calc(var(--spacing-base)*2)}.xgv3jRkeF39aEQELCwru{align-items:flex-end;color:var(--jp-black);display:flex;flex-wrap:wrap}.twlleZ5Ehq4bB7CvKVSW{position:relative}.twlleZ5Ehq4bB7CvKVSW:first-child{margin-left:calc(var(--spacing-base)*2)}.twlleZ5Ehq4bB7CvKVSW.Qg4rPEvXsqmod1s_31d8{color:var(--jp-gray-20)}.twlleZ5Ehq4bB7CvKVSW.Qg4rPEvXsqmod1s_31d8:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.ApsgxIornVy_3KnciVeJ{color:var(--jp-gray-40);margin-bottom:calc(var(--spacing-base)*3)}.NMxcZL17aEP7v81uG3zD{margin-top:calc(var(--spacing-base)*5)}.gCTKfAPzJqZas7CaRbKN{margin-bottom:calc(var(--spacing-base)*4)}.demNsMJjhi7BLY7xhjU5{align-items:center;display:flex;font-size:var(--font-body);line-height:calc(var(--spacing-base)*3);margin:calc(var(--spacing-base)*2) 0;min-height:calc(var(--spacing-base)*3)}.QiUjdjJSkqh6nH7YMG5A{align-self:flex-start;height:calc(var(--spacing-base)*3);margin-left:calc(var(--spacing-base)/2);width:calc(var(--spacing-base)*3)}.Q080AHcq29J2fc68Hhk5{color:var(--jp-red)}.Q080AHcq29J2fc68Hhk5 .hYWbIwhppukXmGnsiT9H{fill:var(--jp-red)}.JjHuxWly0HI9C60gorbq{color:var(--jp-yellow-40)}.JjHuxWly0HI9C60gorbq .hYWbIwhppukXmGnsiT9H{fill:var(--jp-yellow-40)}.Cm8ZFHi3mngl4cj9Gatx{color:var(--jp-blue-40)}.Cm8ZFHi3mngl4cj9Gatx .hYWbIwhppukXmGnsiT9H{fill:var(--jp-blue-40)}.ytGBsU015p3LGwOPwFDx{color:var(--jp-green)}.ytGBsU015p3LGwOPwFDx .hYWbIwhppukXmGnsiT9H{fill:var(--jp-green)}:root{--font-title-large:36px;--font-title-small:24px;--font-body:16px;--font-label:12px;--jp-black:#000;--jp-black-80:#2c3338;--jp-white:#fff;--jp-white-off:#f9f9f6;--jp-gray:#dcdcde;--jp-gray-0:#f6f7f7;--jp-gray-5:#dcdcde;--jp-gray-10:#c3c4c7;--jp-gray-20:#a7aaad;--jp-gray-30:#8c8f94;--jp-gray-40:#787c82;--jp-gray-50:#646970;--jp-gray-60:#50575e;--jp-gray-70:#3c434a;--jp-gray-80:#2c3338;--jp-gray-90:#1d2327;--jp-gray-100:#101517;--jp-gray-off:#e2e2df;--jp-yellow-5:#f5e6b3;--jp-yellow-10:#f2cf75;--jp-yellow-40:#c08c00;--jp-orange-20:#faa754;--jp-blue-5:#ced9f2;--jp-red-0:#f7ebec;--jp-red-50:#d63638;--jp-red-60:#b32d2e;--jp-red-80:#8a2424;--jp-red:#d63639;--jp-pink:#c9356e;--jp-green-0:#f0f2eb;--jp-green-5:#d0e6b8;--jp-green-10:#9dd977;--jp-green-20:#64ca43;--jp-green-30:#2fb41f;--jp-green-40:#069e08;--jp-green-50:#008710;--jp-green-60:#007117;--jp-green-70:#005b18;--jp-green-80:#004515;--jp-green-90:#003010;--jp-green-100:#001c09;--jp-green:#069e08;--jp-green-primary:var(--jp-green-40);--jp-green-secondary:var(--jp-green-30);--jp-border-radius:4px;--jp-border-radius-rna:8px;--jp-menu-border-height:1px;--jp-underline-thickness:2px;--jp-modal-padding-large:32px;--jp-modal-padding:24px;--jp-modal-padding-small:16px;--jp-modal-radius:8px;--jp-button-padding:8px;--jp-button-radius:4px;--jp-gap:16px;--jp-highlight:#3858e9}:where(body){font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;margin:0;min-height:100%;padding:0}.jp-wrap{align-items:center;display:flex;flex-wrap:wrap;margin:0 auto;max-width:1128px}.jp-row{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr);margin:0 16px;width:100%}@media(min-width:600px){.jp-row{grid-template-columns:repeat(8,1fr);margin:0 18px}}@media(min-width:960px){.jp-row{grid-template-columns:repeat(12,1fr);margin:0 24px;max-width:1128px}}.sm-col-span-1{grid-column-end:span 1}.sm-col-span-2{grid-column-end:span 2}.sm-col-span-3{grid-column-end:span 3}.sm-col-span-4{grid-column-end:span 4}@media(min-width:600px){.md-col-span-1{grid-column-end:span 1}.md-col-span-2{grid-column-end:span 2}.md-col-span-3{grid-column-end:span 3}.md-col-span-4{grid-column-end:span 4}.md-col-span-5{grid-column-end:span 5}.md-col-span-6{grid-column-end:span 6}.md-col-span-7{grid-column-end:span 7}.md-col-span-8{grid-column-end:span 8}}@media(min-width:960px){.lg-col-span-1{grid-column-end:span 1}.lg-col-span-2{grid-column-end:span 2}.lg-col-span-3{grid-column-end:span 3}.lg-col-span-4{grid-column-end:span 4}.lg-col-span-5{grid-column-end:span 5}.lg-col-span-6{grid-column-end:span 6}.lg-col-span-7{grid-column-end:span 7}.lg-col-span-8{grid-column-end:span 8}.lg-col-span-9{grid-column-end:span 9}.lg-col-span-10{grid-column-end:span 10}.lg-col-span-11{grid-column-end:span 11}.lg-col-span-12{grid-column-end:span 12}}@media(max-width:960px){.md-col-span-0{display:none}}@media(max-width:600px){.sm-col-span-0{display:none}}.jp-cut{border:2px solid var(--jp-green-primary);border-radius:var(--jp-border-radius);margin:32px 0;padding:16px 24px 16px 64px;position:relative;text-decoration:none}.jp-cut,.jp-cut span{display:block}.jp-cut span:last-of-type{font-weight:600}.jp-cut:focus span:last-of-type,.jp-cut:hover span:last-of-type{text-decoration:underline;text-decoration-thickness:var(--jp-underline-thickness)}.jp-cut:focus:after,.jp-cut:hover:after{transform:translateY(-50%) translateX(-8px)}.jp-cut:after{color:var(--jp-green-primary);content:"→";font-size:24px;font-weight:600;left:24px;position:absolute;top:50%;transform:translateY(-50%);transition:transform .15s ease-out}.components-popover:not(.is-without-arrow):before{border-color:var(--jp-gray)}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=left] .components-popover__content{margin-left:-62px}.icon-tooltip-helper .components-popover:not([data-y-axis=middle])[data-x-axis=right] .components-popover__content{margin-right:-62px}.icon-tooltip-helper .components-popover[data-y-axis=bottom] .components-popover__content{top:2px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:before{top:-6px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=bottom]:after{top:-4px!important}.icon-tooltip-helper .components-popover[data-y-axis=top] .components-popover__content{bottom:10px!important}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:before{bottom:3px}.icon-tooltip-helper .components-popover:not(.is-without-arrow)[data-y-axis=top]:after{bottom:4px}.icon-tooltip-helper.is-wide .components-popover__content{width:440px}.icon-tooltip-wrapper{color:var(--jp-black);display:inline-block;position:relative}.icon-tooltip-wrapper .components-button.is-link:focus:not(:disabled){box-shadow:none}.icon-tooltip-helper{height:18px;pointer-events:none;position:absolute;right:-53px;top:0;width:124px}.icon-tooltip-container{pointer-events:all}.icon-tooltip-container .components-popover__content{border:1px solid var(--jp-gray);border-radius:4px;margin:0 10px;max-width:90vw;outline:none;padding:24px;white-space:normal;width:304px}.icon-tooltip-title{font-size:16px;font-weight:600;line-height:19px}.icon-tooltip-title:not(:last-child){margin-bottom:8px}.icon-tooltip-content{font-size:14px;font-weight:400;line-height:24px}.icon-tooltip-content ul{list-style-type:disc;margin:0 1rem 0 0}.icon-tooltip-content ul li:last-child{margin-bottom:0}.p4qz2tkq0p9hxucJ6Qk2{--padding:calc(var(--spacing-base)*4);color:var(--jp-black)}.lbNDyXioOwvyvbALtCBm{--gap:calc(var(--spacing-base)*3);padding:var(--padding) 0;position:relative}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm{column-gap:var(--gap);display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--columns),1fr);grid-template-rows:repeat(var(--rows),minmax(min-content,max-content))}.cLaNK_XcbTGlRQ4Tp43Q{margin-top:var(--padding)}.s2Lsn4kbm6BrS3DSndRB .cLaNK_XcbTGlRQ4Tp43Q{display:contents}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>*{background:var(--jp-white);position:relative}.cLaNK_XcbTGlRQ4Tp43Q.CYt1X0eH1icRjhtJ28jx>:after{bottom:0;box-shadow:0 4px 24px rgba(0,0,0,.05);content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.cLaNK_XcbTGlRQ4Tp43Q>:first-child{border-top-left-radius:var(--jp-border-radius);border-top-right-radius:var(--jp-border-radius);border-width:1px 1px 0}.cLaNK_XcbTGlRQ4Tp43Q>:last-child{border-bottom-left-radius:var(--jp-border-radius);border-bottom-right-radius:var(--jp-border-radius);border-width:0 1px 1px}.DAkZc1P9A3K12fjEliMg{display:flex;flex-direction:column;justify-content:space-between;padding:var(--padding)}.WUBuYABl8nymjs9NnCEL{align-items:center;display:flex;padding-bottom:calc(var(--spacing-base)*2);position:relative}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)){padding-top:calc(var(--spacing-base)*2)}.WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{background-color:var(--jp-gray);content:"";height:1px;left:var(--padding);position:absolute;right:var(--padding);top:0;z-index:5}.s2Lsn4kbm6BrS3DSndRB .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{left:unset;right:0;width:calc(100% + var(--gap))}.s2Lsn4kbm6BrS3DSndRB .lbNDyXioOwvyvbALtCBm>:last-child .WUBuYABl8nymjs9NnCEL:not(:nth-child(2)):before{width:100%}.ANtCFeb41NhA8PA3H7ZN,.WUBuYABl8nymjs9NnCEL:last-of-type{padding-bottom:var(--padding)}.Ql2gy_148yW8Vw5vhaKD{padding-left:var(--padding);padding-right:var(--padding)}.EAQrAnQEW1z1BfdY5gbC{margin:0 var(--spacing-base);fill:var(--jp-gray);flex-shrink:0}.EAQrAnQEW1z1BfdY5gbC.JDSTlLoOC_4aUoH2oNM2{fill:var(--jp-green-40)}.EAQrAnQEW1z1BfdY5gbC.zNdQRJ1w7BvaQOYyqzHK{fill:var(--jp-red-50)}.lr7vbX95SKtoe7DarJcZ{margin-right:auto}.s2Lsn4kbm6BrS3DSndRB .lr7vbX95SKtoe7DarJcZ{margin:0 var(--spacing-base);top:1px}.WUBuYABl8nymjs9NnCEL .KRrGp2xdkeBOxLZeuQ6X{fill:var(--jp-gray-20);flex-shrink:0}.H_ZJiRVJg0LiMXPGOcmt{text-align:center;width:fit-content}.H_ZJiRVJg0LiMXPGOcmt>a{color:#000}.s2Lsn4kbm6BrS3DSndRB .H_ZJiRVJg0LiMXPGOcmt{grid-column:2;overflow:hidden;padding-left:var(--padding);padding-right:var(--padding);white-space:nowrap}.x21z_DixObRDsDaWotP1{align-items:right;display:flex;justify-content:right;margin:0 calc(var(--spacing-base)*4)}.dovianZYLKhnbnh9I06o{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-end}.lljtQMhW7lq5tE5SDJEf{align-items:flex-start;display:flex;flex-basis:0;flex-grow:2}.lljtQMhW7lq5tE5SDJEf .NubApIV1vQCRUNprfm6b{margin-right:auto}.dhFQXpZfMwVI8vuYHnwC{align-items:flex-start;display:inline-flex;flex:0 0 auto;position:relative}.dhFQXpZfMwVI8vuYHnwC:first-child{margin-left:calc(var(--spacing-base)*2)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k{color:var(--jp-gray-20)}.dhFQXpZfMwVI8vuYHnwC.eD7hzxFmdtG_MgmBtl_k:after{background:var(--jp-red);border-radius:var(--jp-border-radius);content:" ";display:block;height:3px;margin-top:-2px;pointer-events:none;position:absolute;top:50%;width:100%}.C64ZjjUAqJC1T2Sa7apS{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start;margin-bottom:calc(var(--spacing-base)*3)}.UpZDGew6Ay1hPoP6eI7b{color:var(--jp-gray-40);font-size:var(--font-body-small);line-height:20px}.UpZDGew6Ay1hPoP6eI7b:after{content:""}.NubApIV1vQCRUNprfm6b{background-color:var(--jp-yellow-10);border-radius:4px;font-size:13px;font-weight:600;margin-right:var(--spacing-base);padding-left:var(--spacing-base);padding-right:var(--spacing-base)}.TDiiPbuW1Z0_05u_pvcK{font-weight:400}.SWwV4Pw6OZ5vU3PqPXmr{--product-card-shadow:rgb(0 0 0/3%);background-color:var(--jp-white);border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);box-shadow:0 2px 6px var(--product-card-shadow),0 1px 2px var(--product-card-shadow)}.r7tUofa9Z3A5ziKVR1H7{align-items:center;display:flex}.r7tUofa9Z3A5ziKVR1H7 img{object-fit:cover;width:100%}.i_AnOR3MaQLraGvb2QU5{background-color:#f9f9f6}.YcYvLvdvWrb1EUZoVsE8{display:flex;flex-wrap:wrap;gap:calc(var(--horizontal-spacing)*2);justify-content:space-between}.uGTTsKoIOoZdYhk6uPnl{white-space:nowrap}.uGTTsKoIOoZdYhk6uPnl>span{font-size:var(--font-body-small)}.NzDTsxhX8D1mlckNpewR{font-weight:400!important}.svE2cJL5t2FarzcDQYNe{--product-card-shadow:rgb(0 0 0/3%);background-color:var(--jp-white);border:1px solid var(--jp-gray);border-radius:var(--jp-border-radius);box-shadow:0 2px 6px var(--product-card-shadow),0 1px 2px var(--product-card-shadow)}.dvEJEDNTnmVfVxtLa4uU{align-items:center;display:flex}.dvEJEDNTnmVfVxtLa4uU img{object-fit:cover;width:100%}.K1VY4DNP8PHMWAEVBC_h{background-color:#f9f9f6}.nk_COGPrkBNLp7lVt4sQ{display:flex;flex-wrap:wrap;gap:calc(var(--horizontal-spacing)*2);justify-content:space-between}.ukgQ5TmLablG3svUKjdw{white-space:nowrap}.ukgQ5TmLablG3svUKjdw>span{font-size:var(--font-body-small)}.Vofm70ADXSe43GamWEaF{font-weight:400!important}.EUcF2LKeC2GyhWD2FKCP{background-color:var(--jp-white);height:100%;padding:calc(var(--spacing-base)*8);position:relative}.Bm21LIBQtpRo3ZhOxXBG{display:flex;gap:calc(var(--spacing-base)*2)}.jwIGzADCnBI_ai9xYYiS{align-items:center;display:flex;flex-wrap:nowrap;font-size:22px;padding-bottom:calc(var(--spacing-base)*3);padding-top:calc(var(--spacing-base)*3)}.jwIGzADCnBI_ai9xYYiS .fTbxuhh_SfMgenyWvGN0{padding-bottom:calc(var(--spacing-base)/3);padding-right:var(--spacing-base)}.eR56lApoP14RIBAhO1UN{display:flex;flex-wrap:wrap;gap:calc(var(--spacing-base)*6);justify-content:space-between;margin:0 auto;max-width:1128px}@media only screen and (max-width:1366px){.eR56lApoP14RIBAhO1UN{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD{display:flex;flex:1;flex-direction:column;justify-content:center}@media screen and (min-width:960px){.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD{max-width:70%}}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .vAGLpjIGi6GA8ghbumN7{font-size:36px;font-weight:700;line-height:40px}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .oag8YaslCEiUVu8GKKL3{font-weight:400;margin:calc(var(--spacing-base)*3) 0}.eR56lApoP14RIBAhO1UN .vHnITd5JOCOgxCgXTgoD .FhH03GPt9FK1VH9NZhYA{align-self:flex-start;font-size:16px;font-weight:500;letter-spacing:-.01em;line-height:24px;padding:var(--spacing-base) calc(var(--spacing-base)*3)}.eR56lApoP14RIBAhO1UN .VUXAtah2JvUCNc4cXjPp{align-items:center;display:flex;flex-wrap:wrap;gap:calc(var(--spacing-base)*3);justify-content:flex-end}@media only screen and (max-width:430px){.eR56lApoP14RIBAhO1UN .VUXAtah2JvUCNc4cXjPp{flex:1}}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{border-color:var(--jp-gray-5);border-radius:5px;flex-grow:0;height:168px;margin-bottom:0;padding:calc(var(--spacing-base)*2) calc(var(--spacing-base)*3);width:168px}@media only screen and (max-width:960px){.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{width:30vw}}@media only screen and (max-width:430px){.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw{min-width:168px;width:100%}}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw>div:first-child{display:flex;flex-direction:column;justify-content:space-between}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .Ll1l9bEuf5G5oh3AENep{fill:var(--jp-green)}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .WrzTysWiqUiuEPvpFqau{margin-bottom:var(--spacing-base)}.eR56lApoP14RIBAhO1UN .dyPAjc3M4y3Q6gJfWnjw .d4faYkf9yL7oW7pwcjmP{font-size:36px;font-weight:700}.acffvOSYc5S8x4P_AYnQ{font-size:16px;line-height:24px;padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6)}.acffvOSYc5S8x4P_AYnQ:first-child{padding-bottom:0;padding-top:0}.acffvOSYc5S8x4P_AYnQ:nth-child(2n){background-color:var(--jp-white-off);padding-bottom:calc(var(--spacing-base)*8);padding-top:calc(var(--spacing-base)*8)}@media only screen and (max-width:960px){.acffvOSYc5S8x4P_AYnQ:nth-child(2n){padding-bottom:calc(var(--spacing-base)*6);padding-top:calc(var(--spacing-base)*6)}}.acffvOSYc5S8x4P_AYnQ a{color:inherit}.acffvOSYc5S8x4P_AYnQ .M5YNmgy60Q_UtaxKgQcv{margin:0 auto;max-width:744px}@media only screen and (max-width:1366px){.acffvOSYc5S8x4P_AYnQ .M5YNmgy60Q_UtaxKgQcv{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.acffvOSYc5S8x4P_AYnQ .HJiOvun8sHkiFpNL0sl6{margin:0 auto;max-width:1128px}@media only screen and (max-width:1366px){.acffvOSYc5S8x4P_AYnQ .HJiOvun8sHkiFpNL0sl6{padding-left:calc(var(--spacing-base)*3);padding-right:calc(var(--spacing-base)*3)}}.acffvOSYc5S8x4P_AYnQ .mXinUJfpSTS9EVB8M8K_{font-size:34px;font-weight:400;line-height:40px;margin:0}.acffvOSYc5S8x4P_AYnQ .QKjsnliPyLu4n08yVUUM{font-size:16px}.acffvOSYc5S8x4P_AYnQ .xQJJkJ4v7Jm8iSJ0z0Dj{font-size:48px;line-height:24px;margin-bottom:calc(var(--spacing-base)*6)}.VWIBGwuHqtAKg_5Hch92{flex-direction:column}.VWIBGwuHqtAKg_5Hch92,.VWIBGwuHqtAKg_5Hch92 .mnkNhprYIatxfziERMwM{display:flex;gap:calc(var(--spacing-base)*3);padding:calc(var(--spacing-base)*2) 0}.VWIBGwuHqtAKg_5Hch92 .mnkNhprYIatxfziERMwM{flex-wrap:wrap;min-height:190px}.VWIBGwuHqtAKg_5Hch92 .WEiaYLqJwV2IzC8LD9Fs{background-color:var(--jp-white-off);border-radius:calc(var(--spacing-base)/2);height:157.5px;width:280px}.VWIBGwuHqtAKg_5Hch92 .WEiaYLqJwV2IzC8LD9Fs iframe{border-radius:inherit}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU{display:flex;flex:1;flex-direction:column;gap:var(--spacing-base);min-width:280px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU ._OeUvI9GrP00qh6Uk7Tg{font-size:20px;font-weight:500;line-height:22px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU .C6I5jYHW2IJSDBoKvhcB{color:var(--jp-gray-60);flex-grow:1;font-size:16px;font-weight:300;line-height:24px}.VWIBGwuHqtAKg_5Hch92 .GJlowVsJybna1MFcIiIU .XdnAdAwkxAW5yvUx3NRr{font-size:15px;padding-right:0;text-decoration:underline}.MCKgMfLVZtkgWu5m5u6L{margin-bottom:calc(var(--spacing-base)*8)}.c0SItK48SRkWfZUCECbZ{border:1px solid var(--jp-green-40);border-radius:4px;color:var(--jp-green-40);font-size:12px;font-weight:500;height:22px;margin-right:5px;padding:2px 8px;position:relative;text-transform:uppercase;top:-2px}#my-jetpack-container{--wp-admin-theme-color:var(--jp-black);--wp-admin-theme-color-darker-10:var(--jp-black-80);--wp-admin-theme-color-darker-20:var(--jp-black-80);height:100%}#my-jetpack-container .jp-dashboard-footer__jetpack-symbol{height:16px}#wpbody-content>.notice{display:none!important}#wpwrap{background-color:var(--jp-white-off)}._fUXxnSp5pagKBp9gSN7 *{box-sizing:border-box}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/composer.json
new file mode 100644
index 00000000..1ee21482
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/composer.json
@@ -0,0 +1,91 @@
+{
+ "name": "automattic/jetpack-my-jetpack",
+ "description": "WP Admin page with information and configuration shared among all Jetpack stand-alone plugins",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-admin-ui": "^0.4.5",
+ "automattic/jetpack-assets": "^2.3.7",
+ "automattic/jetpack-boost-speed-score": "^0.3.12",
+ "automattic/jetpack-connection": "^4.0.1",
+ "automattic/jetpack-explat": "^0.1.7",
+ "automattic/jetpack-jitm": "^3.1.21",
+ "automattic/jetpack-licensing": "^2.0.9",
+ "automattic/jetpack-plugins-installer": "^0.4.3",
+ "automattic/jetpack-redirect": "^2.0.4",
+ "automattic/jetpack-constants": "^2.0.4",
+ "automattic/jetpack-plans": "^0.4.10",
+ "automattic/jetpack-status": "^4.0.1",
+ "automattic/jetpack-sync": "^3.10.0",
+ "automattic/jetpack-protect-status": "^0.1.5"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/wordbless": "@dev"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/",
+ "src/products"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "test-js": [
+ "pnpm run test"
+ ],
+ "test-js-watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run test --watch"
+ ],
+ "build-development": [
+ "pnpm run build"
+ ],
+ "build-production": [
+ "NODE_ENV=production pnpm run build"
+ ],
+ "watch": [
+ "Composer\\Config::disableProcessTimeout",
+ "pnpm run watch"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "4.35.x-dev"
+ },
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-initializer.php"
+ },
+ "dependencies": {
+ "test-only": [
+ "packages/search",
+ "packages/videopress"
+ ]
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/global.d.ts b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/global.d.ts
new file mode 100644
index 00000000..2484b4a5
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/global.d.ts
@@ -0,0 +1,430 @@
+declare module '*.png';
+declare module '*.svg';
+declare module '*.jpeg';
+declare module '*.jpg';
+declare module '*.scss';
+
+// These libraries don't have types, this suppresses the TypeScript errors
+declare module '@wordpress/components';
+declare module '@wordpress/compose';
+declare module '@wordpress/icons';
+declare module '@automattic/jetpack-connection';
+declare module '@wordpress/url';
+
+type ProductStatus =
+ | 'active'
+ | 'inactive'
+ | 'module_disabled'
+ | 'site_connection_error'
+ | 'plugin_absent'
+ | 'plugin_absent_with_plan'
+ | 'needs_plan'
+ | 'needs_activation'
+ | 'needs_first_site_connection'
+ | 'user_connection_error'
+ | 'can_upgrade';
+
+type JetpackModule =
+ | 'anti-spam'
+ | 'backup'
+ | 'boost'
+ | 'crm'
+ | 'creator'
+ | 'extras'
+ | 'ai'
+ | 'jetpack-ai'
+ | 'scan'
+ | 'search'
+ | 'social'
+ | 'security'
+ | 'protect'
+ | 'videopress'
+ | 'stats';
+
+type ThreatItem = {
+ // Protect API properties (free plan)
+ id: string;
+ title: string;
+ fixed_in: string;
+ description: string | null;
+ source: string | null;
+ // Scan API properties (paid plan)
+ context: string | null;
+ filename: string | null;
+ first_detected: string | null;
+ fixable: boolean | null;
+ severity: number | null;
+ signature: string | null;
+ status: number | null;
+};
+
+type ScanItem = {
+ checked: boolean;
+ name: string;
+ slug: string;
+ threats: ThreatItem[];
+ type: string;
+ version: string;
+};
+
+interface Window {
+ myJetpackInitialState?: {
+ siteSuffix: string;
+ siteUrl: string;
+ latestBoostSpeedScores: {
+ previousScores: {
+ desktop: number;
+ mobile: number;
+ };
+ scores: {
+ desktop: number;
+ mobile: number;
+ };
+ theme: string;
+ timestamp: number;
+ };
+ IDCContainerID: string;
+ adminUrl: string;
+ blogID: string;
+ fileSystemWriteAccess: 'yes' | 'no';
+ isStatsModuleActive: string;
+ isUserFromKnownHost: string;
+ jetpackManage: {
+ isAgencyAccount: boolean;
+ isEnabled: boolean;
+ };
+ loadAddLicenseScreen: string;
+ myJetpackCheckoutUri: string;
+ myJetpackFlags: {
+ showFullJetpackStatsCard: boolean;
+ videoPressStats: boolean;
+ };
+ lifecycleStats: {
+ historicallyActiveModules: JetpackModule[];
+ brokenModules: {
+ needs_site_connection: JetpackModule[];
+ needs_user_connection: JetpackModule[];
+ };
+ isSiteConnected: boolean;
+ isUserConnected: boolean;
+ jetpackPlugins: Array< string >;
+ ownedProducts: JetpackModule[];
+ unownedProducts: JetpackModule[];
+ modules: Array< string >;
+ purchases: Array< string >;
+ };
+ myJetpackUrl: string;
+ myJetpackVersion: string;
+ plugins: {
+ [ key: string ]: {
+ Name: string;
+ PluginURI: string;
+ Version: string;
+ Title: string;
+ Description: string;
+ Author: string;
+ AuthorName: string;
+ AuthorURI: string;
+ DomainPath: string;
+ textDomain: string;
+ RequiresPHP: string;
+ RequiresWP: string;
+ UpdateURI: string;
+ Network: boolean;
+ active: boolean;
+ };
+ };
+ products: {
+ items: {
+ [ key: string ]: {
+ class: string;
+ description: string;
+ disclaimers: Array< string[] >;
+ features: string[];
+ has_free_offering: boolean;
+ has_paid_plan_for_product: boolean;
+ features_by_tier: Array< string >;
+ is_bundle: boolean;
+ is_plugin_active: boolean;
+ is_upgradable: boolean;
+ is_upgradable_by_bundle: string[];
+ long_description: string;
+ manage_url: string;
+ name: string;
+ plugin_slug: string;
+ post_activation_url: string;
+ post_checkout_url?: string;
+ pricing_for_ui?: {
+ available: boolean;
+ wpcom_product_slug: string;
+ wpcom_free_product_slug?: string;
+ product_term: string;
+ currency_code: string;
+ full_price: number;
+ discount_price: number;
+ coupon_discount: number;
+ is_introductory_offer: boolean;
+ introductory_offer?: {
+ cost_per_interval: number;
+ interval_count: number;
+ interval_unit: string;
+ should_prorate_when_offer_ends: boolean;
+ transition_after_renewal_count: number;
+ usage_limit?: number;
+ };
+ tiers?: {
+ [ key: string ]: {
+ available: boolean;
+ currencyCode: string;
+ discountPrice: number;
+ fullPrice: number;
+ introductoryOffer?: {
+ costPerInterval: number;
+ intervalCount: number;
+ intervalUnit: string;
+ shouldProrateWhenOfferEnds: boolean;
+ transitionAfterRenewalCount: number;
+ usageLimit?: number;
+ };
+ isIntroductoryOffer: boolean;
+ productTerm: string;
+ wpcomProductSlug: string;
+ quantity: number;
+ };
+ };
+ };
+ purchase_url?: string;
+ requires_user_connection: boolean;
+ slug: string;
+ standalone_plugin_info: {
+ has_standalone_plugin: boolean;
+ is_standalone_installed: boolean;
+ is_standalone_active: boolean;
+ };
+ status: ProductStatus;
+ supported_products: string[];
+ tiers: string[];
+ title: string;
+ wpcom_product_slug: string;
+ };
+ };
+ };
+ protect: {
+ scanData: {
+ core: ScanItem;
+ current_progress?: string;
+ data_source: string;
+ database: string[];
+ error: boolean;
+ error_code?: string;
+ error_message?: string;
+ files: string[];
+ has_unchecked_items: boolean;
+ last_checked: string;
+ num_plugins_threats: number;
+ num_themes_threats: number;
+ num_threats: number;
+ plugins: ScanItem[];
+ status: string;
+ themes: ScanItem[];
+ };
+ wafConfig: {
+ automatic_rules_available: boolean;
+ blocked_logins: number;
+ bootstrap_path: string;
+ brute_force_protection: boolean;
+ jetpack_waf_automatic_rules: '1' | '';
+ jetpack_waf_ip_allow_list: '1' | '';
+ jetpack_waf_ip_block_list: boolean;
+ jetpack_waf_ip_list: boolean;
+ jetpack_waf_share_data: '1' | '';
+ jetpack_waf_share_debug_data: boolean;
+ standalone_mode: boolean;
+ };
+ };
+ videopress: {
+ featuredStats?: {
+ label: string;
+ period: 'day' | 'year';
+ data: {
+ views: {
+ current: number;
+ previous: number;
+ };
+ impressions: {
+ current: number;
+ previous: number;
+ };
+ watch_time: {
+ current: number;
+ previous: number;
+ };
+ };
+ };
+ videoCount: number;
+ };
+ purchases: {
+ items: Array< {
+ ID: string;
+ user_id: string;
+ blog_id: string;
+ product_id: string;
+ subscribed_date: string;
+ renew: string;
+ auto_renew: string;
+ renew_date: string;
+ inactive_date: string | null;
+ active: string;
+ meta: string | object;
+ ownership_id: string;
+ most_recent_renew_date: string;
+ amount: number;
+ expiry_date: string;
+ expiry_message: string;
+ expiry_sub_message: string;
+ expiry_status: string;
+ partner_name: string | null;
+ partner_slug: string | null;
+ partner_key_id: string | null;
+ subscription_status: string;
+ product_name: string;
+ product_slug: string;
+ product_type: string;
+ blog_created_date: string;
+ blogname: string;
+ domain: string;
+ description: string;
+ attached_to_purchase_id: string | null;
+ included_domain: string;
+ included_domain_purchase_amount: number;
+ currency_code: string;
+ currency_symbol: string;
+ renewal_price_tier_slug: string | null;
+ renewal_price_tier_usage_quantity: number | null;
+ current_price_tier_slug: string | null;
+ current_price_tier_usage_quantity: number | null;
+ price_tier_list: Array< object >;
+ price_text: string;
+ bill_period_label: string;
+ bill_period_days: number;
+ regular_price_text: string;
+ regular_price_integer: number;
+ product_display_price: string;
+ price_integer: number;
+ is_cancelable: boolean;
+ can_explicit_renew: boolean;
+ can_disable_auto_renew: boolean;
+ can_reenable_auto_renewal: boolean;
+ iap_purchase_management_link: string | null;
+ is_iap_purchase: boolean;
+ is_locked: boolean;
+ is_refundable: boolean;
+ refund_period_in_days: number;
+ is_renewable: boolean;
+ is_renewal: boolean;
+ has_private_registration: boolean;
+ refund_amount: number;
+ refund_integer: number;
+ refund_currency_symbol: string;
+ refund_text: string;
+ refund_options: object | null;
+ total_refund_amount: number;
+ total_refund_integer: number;
+ total_refund_currency: string;
+ total_refund_text: string;
+ check_dns: boolean;
+ } >;
+ };
+ redBubbleAlerts: {
+ 'missing-connection'?: {
+ type: string;
+ is_error: boolean;
+ };
+ 'welcome-banner-active'?: null;
+ [ key: `${ string }-bad-installation` ]: {
+ data: {
+ plugin: string;
+ };
+ };
+ };
+ recommendedModules: {
+ modules: JetpackModule[] | null;
+ dismissed: boolean;
+ };
+ themes: {
+ [ key: string ]: {
+ Author: string;
+ Name: string;
+ RequiresPHP: string;
+ RequiresWP: string;
+ Status: string;
+ Template: string;
+ TextDomain: string;
+ ThemeURI: string;
+ Version: string;
+ active: boolean;
+ is_block_theme: boolean;
+ };
+ };
+ topJetpackMenuItemUrl: string;
+ isAtomic: boolean;
+ userIsAdmin: string;
+ userIsNewToJetpack: string;
+ };
+ JP_CONNECTION_INITIAL_STATE: {
+ apiRoot: string;
+ apiNonce: string;
+ registrationNonce: string;
+ connectionStatus: {
+ isActive: boolean;
+ isStaging: boolean;
+ isRegistered: boolean;
+ isUserConnected: boolean;
+ hasConnectedOwner: boolean;
+ offlineMode: {
+ isActive: boolean;
+ constant: boolean;
+ url: boolean;
+ filter: boolean;
+ wpLocalConstant: boolean;
+ };
+ isPublic: boolean;
+ };
+ userConnectionData: {
+ currentUser: {
+ isConnected: boolean;
+ isMaster: boolean;
+ username: string;
+ id: number;
+ blogId: number;
+ wpcomUser: {
+ avatar: boolean;
+ };
+ gravatar: string;
+ permissions: {
+ admin_page?: boolean;
+ connect: boolean;
+ connect_user: boolean;
+ disconnect: boolean;
+ edit_posts?: boolean;
+ manage_modules?: boolean;
+ manage_options?: boolean;
+ manage_plugins?: boolean;
+ network_admin?: boolean;
+ network_sites_page?: boolean;
+ publish_posts?: boolean;
+ view_stats?: boolean;
+ };
+ };
+ connectionOwner: null;
+ };
+ connectedPlugins: object;
+ wpVersion: string;
+ siteSuffix: string;
+ connectionErrors: Array< string | object >;
+ };
+ myJetpackRest?: {
+ apiRoot: string;
+ apiNonce: string;
+ };
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-activitylog.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-activitylog.php
new file mode 100644
index 00000000..4de90c07
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-activitylog.php
@@ -0,0 +1,57 @@
+is_user_connected() ) {
+ return;
+ }
+
+ // Do not display the menu on Multisite.
+ if ( is_multisite() ) {
+ return;
+ }
+
+ $args = array();
+
+ $blog_id = Connection_Manager::get_site_id( true );
+ if ( $blog_id ) {
+ $args = array( 'site' => $blog_id );
+ }
+
+ return Admin_Menu::add_menu(
+ __( 'Activity Log', 'jetpack-my-jetpack' ),
+ _x( 'Activity Log', 'product name shown in menu', 'jetpack-my-jetpack' ) . ' ',
+ 'manage_options',
+ esc_url( Redirect::get_url( 'cloud-activity-log-wp-menu', $args ) ),
+ null,
+ 8
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php
new file mode 100644
index 00000000..f6763bec
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-initializer.php
@@ -0,0 +1,960 @@
+initialize();
+ }
+
+ // Initialize Boost Speed Score
+ new Speed_Score( array(), 'jetpack-my-jetpack' );
+
+ // Add custom WP REST API endoints.
+ add_action( 'rest_api_init', array( __CLASS__, 'register_rest_endpoints' ) );
+
+ $page_suffix = Admin_Menu::add_menu(
+ __( 'My Jetpack', 'jetpack-my-jetpack' ),
+ __( 'My Jetpack', 'jetpack-my-jetpack' ),
+ 'edit_posts',
+ 'my-jetpack',
+ array( __CLASS__, 'admin_page' ),
+ -1
+ );
+
+ add_action( 'load-' . $page_suffix, array( __CLASS__, 'admin_init' ) );
+ add_action( 'admin_init', array( __CLASS__, 'setup_historically_active_jetpack_modules_sync' ) );
+ // This is later than the admin-ui package, which runs on 1000
+ add_action( 'admin_init', array( __CLASS__, 'maybe_show_red_bubble' ), 1001 );
+
+ // Set up the ExPlat package endpoints
+ ExPlat::init();
+
+ // Sets up JITMS.
+ JITM::configure();
+
+ // Add "Activity Log" menu item.
+ Activitylog::init();
+
+ // Add "Jetpack Manage" menu item.
+ Jetpack_Manage::init();
+
+ /**
+ * Fires after the My Jetpack package is initialized
+ *
+ * @since 0.1.0
+ */
+ do_action( 'my_jetpack_init' );
+ }
+
+ /**
+ * Acts as a feature flag, returning a boolean for whether we should show the licensing UI.
+ *
+ * @since 1.2.0
+ *
+ * @return boolean
+ */
+ public static function is_licensing_ui_enabled() {
+ // Default changed to true in 1.5.0.
+ $is_enabled = true;
+
+ /*
+ * Bail if My Jetpack is not enabled,
+ * and thus the licensing UI shouldn't be enabled either.
+ */
+ if ( ! self::should_initialize() ) {
+ $is_enabled = false;
+ }
+
+ /**
+ * Acts as a feature flag, returning a boolean for whether we should show the licensing UI.
+ *
+ * @param bool $is_enabled Defaults to true.
+ *
+ * @since 1.2.0
+ * @since 1.5.0 Update default value to true.
+ */
+ return apply_filters(
+ 'jetpack_my_jetpack_should_enable_add_license_screen',
+ $is_enabled
+ );
+ }
+
+ /**
+ * Callback for the load my jetpack page hook.
+ *
+ * @return void
+ */
+ public static function admin_init() {
+ self::$site_info = self::get_site_info();
+ add_filter( 'identity_crisis_container_id', array( static::class, 'get_idc_container_id' ) );
+ add_action( 'admin_enqueue_scripts', array( __CLASS__, 'enqueue_scripts' ) );
+ // Product statuses are constantly changing, so we never want to cache the page.
+ header( 'Cache-Control: no-cache, no-store, must-revalidate' );
+ header( 'Pragma: no-cache' );
+ header( 'Expires: 0' );
+ }
+
+ /**
+ * Returns whether we are in condition to track to use
+ * Analytics functionality like Tracks, MC, or GA.
+ */
+ public static function can_use_analytics() {
+ $status = new Status();
+ $connection = new Connection_Manager();
+ $tracking = new Tracking( 'jetpack', $connection );
+
+ return $tracking->should_enable_tracking( new Terms_Of_Service(), $status );
+ }
+ /**
+ * Enqueue admin page assets.
+ *
+ * @return void
+ */
+ public static function enqueue_scripts() {
+ Assets::register_script(
+ 'my_jetpack_main_app',
+ '../build/index.js',
+ __FILE__,
+ array(
+ 'enqueue' => true,
+ 'in_footer' => true,
+ 'textdomain' => 'jetpack-my-jetpack',
+ )
+ );
+ $modules = new Modules();
+ $connection = new Connection_Manager();
+ $speed_score_history = new Speed_Score_History( get_site_url() );
+ $latest_score = $speed_score_history->latest();
+ $previous_score = array();
+ if ( $speed_score_history->count() > 1 ) {
+ $previous_score = $speed_score_history->latest( 1 );
+ }
+ $latest_score['previousScores'] = $previous_score['scores'] ?? array();
+ $scan_data = Protect_Status::get_status();
+ self::update_historically_active_jetpack_modules();
+
+ $waf_config = array();
+ if ( class_exists( 'Automattic\Jetpack\Waf\Waf_Runner' ) ) {
+ $waf_config = Waf_Runner::get_config();
+ }
+
+ wp_localize_script(
+ 'my_jetpack_main_app',
+ 'myJetpackInitialState',
+ array(
+ 'products' => array(
+ 'items' => Products::get_products(),
+ ),
+ 'purchases' => array(
+ 'items' => array(),
+ ),
+ 'plugins' => Plugins_Installer::get_plugins(),
+ 'themes' => Sync_Functions::get_themes(),
+ 'myJetpackUrl' => admin_url( 'admin.php?page=my-jetpack' ),
+ 'myJetpackCheckoutUri' => admin_url( 'admin.php?page=my-jetpack' ),
+ 'topJetpackMenuItemUrl' => Admin_Menu::get_top_level_menu_item_url(),
+ 'siteSuffix' => ( new Status() )->get_site_suffix(),
+ 'siteUrl' => esc_url( get_site_url() ),
+ 'blogID' => Connection_Manager::get_site_id( true ),
+ 'myJetpackVersion' => self::PACKAGE_VERSION,
+ 'myJetpackFlags' => self::get_my_jetpack_flags(),
+ 'fileSystemWriteAccess' => self::has_file_system_write_access(),
+ 'loadAddLicenseScreen' => self::is_licensing_ui_enabled(),
+ 'adminUrl' => esc_url( admin_url() ),
+ 'IDCContainerID' => static::get_idc_container_id(),
+ 'userIsAdmin' => current_user_can( 'manage_options' ),
+ 'userIsNewToJetpack' => self::is_jetpack_user_new(),
+ 'lifecycleStats' => array(
+ 'jetpackPlugins' => self::get_installed_jetpack_plugins(),
+ 'historicallyActiveModules' => \Jetpack_Options::get_option( 'historically_active_modules', array() ),
+ 'ownedProducts' => Products::get_products_by_ownership( 'owned' ),
+ 'unownedProducts' => Products::get_products_by_ownership( 'unowned' ),
+ 'brokenModules' => self::check_for_broken_modules(),
+ 'isSiteConnected' => $connection->is_connected(),
+ 'isUserConnected' => $connection->is_user_connected(),
+ 'purchases' => self::get_purchases(),
+ 'modules' => self::get_active_modules(),
+ ),
+ 'redBubbleAlerts' => self::get_red_bubble_alerts(),
+ 'recommendedModules' => array(
+ 'modules' => self::get_recommended_modules(),
+ 'dismissed' => \Jetpack_Options::get_option( 'dismissed_recommendations', false ),
+ ),
+ 'isStatsModuleActive' => $modules->is_active( 'stats' ),
+ 'isUserFromKnownHost' => self::is_user_from_known_host(),
+ 'isCommercial' => self::is_commercial_site(),
+ 'isAtomic' => ( new Status_Host() )->is_woa_site(),
+ 'jetpackManage' => array(
+ 'isEnabled' => Jetpack_Manage::could_use_jp_manage(),
+ 'isAgencyAccount' => Jetpack_Manage::is_agency_account(),
+ ),
+ 'latestBoostSpeedScores' => $latest_score,
+ 'protect' => array(
+ 'scanData' => $scan_data,
+ 'wafConfig' => array_merge(
+ $waf_config,
+ array( 'blocked_logins' => (int) get_site_option( 'jetpack_protect_blocked_attempts', 0 ) )
+ ),
+ ),
+ 'videopress' => self::get_videopress_stats(),
+ )
+ );
+
+ wp_localize_script(
+ 'my_jetpack_main_app',
+ 'myJetpackRest',
+ array(
+ 'apiRoot' => esc_url_raw( rest_url() ),
+ 'apiNonce' => wp_create_nonce( 'wp_rest' ),
+ )
+ );
+
+ // Connection Initial State.
+ Connection_Initial_State::render_script( 'my_jetpack_main_app' );
+
+ // Required for Analytics.
+ if ( self::can_use_analytics() ) {
+ Tracking::register_tracks_functions_scripts( true );
+ }
+ }
+
+ /**
+ * Get stats for VideoPress
+ *
+ * @return array|WP_Error
+ */
+ public static function get_videopress_stats() {
+ $video_count = array_sum( (array) wp_count_attachments( 'video' ) );
+
+ if ( ! class_exists( 'Automattic\Jetpack\VideoPress\Stats' ) ) {
+ return array(
+ 'videoCount' => $video_count,
+ );
+ }
+
+ $featured_stats = get_transient( self::VIDEOPRESS_STATS_KEY );
+
+ if ( $featured_stats ) {
+ return array(
+ 'featuredStats' => $featured_stats,
+ 'videoCount' => $video_count,
+ );
+ }
+
+ $stats_period = get_transient( self::VIDEOPRESS_PERIOD_KEY );
+ $videopress_stats = new VideoPress_Stats();
+
+ // If the stats period exists, retrieve that information without checking the view count.
+ // If it does not, check the view count of monthly stats and determine if we want to show yearly or monthly stats.
+ if ( $stats_period ) {
+ if ( $stats_period === 'day' ) {
+ $featured_stats = $videopress_stats->get_featured_stats( 60, 'day' );
+ } else {
+ $featured_stats = $videopress_stats->get_featured_stats( 2, 'year' );
+ }
+ } else {
+ $featured_stats = $videopress_stats->get_featured_stats( 60, 'day' );
+
+ if (
+ ! is_wp_error( $featured_stats ) &&
+ $featured_stats &&
+ ( $featured_stats['data']['views']['current'] < 500 || $featured_stats['data']['views']['previous'] < 500 )
+ ) {
+ $featured_stats = $videopress_stats->get_featured_stats( 2, 'year' );
+ }
+ }
+
+ if ( is_wp_error( $featured_stats ) || ! $featured_stats ) {
+ return array(
+ 'videoCount' => $video_count,
+ );
+ }
+
+ set_transient( self::VIDEOPRESS_PERIOD_KEY, $featured_stats['period'], WEEK_IN_SECONDS );
+ set_transient( self::VIDEOPRESS_STATS_KEY, $featured_stats, DAY_IN_SECONDS );
+
+ return array(
+ 'featuredStats' => $featured_stats,
+ 'videoCount' => $video_count,
+ );
+ }
+
+ /**
+ * Get product slugs of the active purchases
+ *
+ * @return array
+ */
+ public static function get_purchases() {
+ $purchases = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases ) ) {
+ return array();
+ }
+
+ return array_map(
+ function ( $purchase ) {
+ return $purchase->product_slug;
+ },
+ (array) $purchases
+ );
+ }
+
+ /**
+ * Get installed Jetpack plugins
+ *
+ * @return array
+ */
+ public static function get_installed_jetpack_plugins() {
+ $plugin_slugs = array_keys( Plugins_Installer::get_plugins() );
+ $plugin_slugs = array_map(
+ static function ( $slug ) {
+ $parts = explode( '/', $slug );
+ if ( empty( $parts ) ) {
+ return '';
+ }
+ // Return the last segment of the filepath without the PHP extension
+ return str_replace( '.php', '', $parts[ count( $parts ) - 1 ] );
+ },
+ $plugin_slugs
+ );
+
+ return array_values( array_intersect( self::JETPACK_PLUGIN_SLUGS, $plugin_slugs ) );
+ }
+
+ /**
+ * Get active modules (except ones enabled by default)
+ *
+ * @return array
+ */
+ public static function get_active_modules() {
+ $modules = new Modules();
+ $active_modules = $modules->get_active();
+
+ // if the Jetpack plugin is active, filter out the modules that are active by default
+ if ( class_exists( 'Jetpack' ) && ! empty( $active_modules ) ) {
+ $active_modules = array_diff( $active_modules, Jetpack::get_default_modules() );
+ }
+ return array_values( $active_modules );
+ }
+
+ /**
+ * Determine if the current user is "new" to Jetpack
+ * This is used to vary some messaging in My Jetpack
+ *
+ * On the front-end, purchases are also taken into account
+ *
+ * @return bool
+ */
+ public static function is_jetpack_user_new() {
+ // is the user connected?
+ $connection = new Connection_Manager();
+ if ( $connection->is_user_connected() ) {
+ return false;
+ }
+
+ // TODO: add a data point for the last known connection/ disconnection time
+
+ // are any modules active?
+ $active_modules = self::get_active_modules();
+ if ( ! empty( $active_modules ) ) {
+ return false;
+ }
+
+ // check for other Jetpack plugins that are installed on the site (active or not)
+ // If there's more than one Jetpack plugin active, this user is not "new"
+ $plugin_slugs = array_keys( Plugins_Installer::get_plugins() );
+ $plugin_slugs = array_map(
+ static function ( $slug ) {
+ $parts = explode( '/', $slug );
+ if ( empty( $parts ) ) {
+ return '';
+ }
+ // Return the last segment of the filepath without the PHP extension
+ return str_replace( '.php', '', $parts[ count( $parts ) - 1 ] );
+ },
+ $plugin_slugs
+ );
+ $installed_jetpack_plugins = array_intersect( self::JETPACK_PLUGIN_SLUGS, $plugin_slugs );
+ if ( is_countable( $installed_jetpack_plugins ) && count( $installed_jetpack_plugins ) >= 2 ) {
+ return false;
+ }
+
+ // Does the site have any purchases?
+ $purchases = Wpcom_Products::get_site_current_purchases();
+ if ( ! empty( $purchases ) && ! is_wp_error( $purchases ) ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Determines whether the user has come from a host we can recognize.
+ *
+ * @return string
+ */
+ public static function is_user_from_known_host() {
+ // Known (external) host is the one that has been determined and is not dotcom.
+ return ! in_array( ( new Status_Host() )->get_known_host_guess(), array( 'unknown', 'wpcom' ), true );
+ }
+
+ /**
+ * Build flags for My Jetpack UI
+ *
+ * @return array
+ */
+ public static function get_my_jetpack_flags() {
+ $flags = array(
+ 'videoPressStats' => Jetpack_Constants::is_true( 'JETPACK_MY_JETPACK_VIDEOPRESS_STATS_ENABLED' ),
+ 'showFullJetpackStatsCard' => class_exists( 'Jetpack' ),
+ );
+
+ return $flags;
+ }
+
+ /**
+ * Echoes the admin page content.
+ *
+ * @return void
+ */
+ public static function admin_page() {
+ echo '';
+ }
+
+ /**
+ * Register the REST API routes.
+ *
+ * @return void
+ */
+ public static function register_rest_endpoints() {
+ new REST_Products();
+ new REST_Purchases();
+ new REST_Zendesk_Chat();
+ new REST_Product_Data();
+ new REST_AI();
+ new REST_Recommendations_Evaluation();
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ 'site',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_site',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ 'site/dismiss-welcome-banner',
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::dismiss_welcome_banner',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ )
+ );
+ }
+
+ /**
+ * Check user capability to access the endpoint.
+ *
+ * @access public
+ * @static
+ *
+ * @return true|WP_Error
+ */
+ public static function permissions_callback() {
+ return current_user_can( 'manage_options' );
+ }
+
+ /**
+ * Return true if we should initialize the My Jetpack admin page.
+ */
+ public static function should_initialize() {
+ $should = true;
+
+ if ( is_multisite() ) {
+ $should = false;
+ }
+
+ // All options presented in My Jetpack require a connection to WordPress.com.
+ if ( ( new Status() )->is_offline_mode() ) {
+ $should = false;
+ }
+
+ /**
+ * Allows filtering whether My Jetpack should be initialized.
+ *
+ * @since 0.5.0-alpha
+ *
+ * @param bool $shoud_initialize Should we initialize My Jetpack?
+ */
+ return apply_filters( 'jetpack_my_jetpack_should_initialize', $should );
+ }
+
+ /**
+ * Set transient to queue an update to the historically active Jetpack modules on the next wp-admin load
+ *
+ * @param string $plugin The plugin that triggered the update. This will be present if the function was queued by a plugin activation.
+ *
+ * @return void
+ */
+ public static function queue_historically_active_jetpack_modules_update( $plugin = null ) {
+ $plugin_filenames = Products::get_all_plugin_filenames();
+
+ if ( ! $plugin || in_array( $plugin, $plugin_filenames, true ) ) {
+ set_transient( self::UPDATE_HISTORICALLY_ACTIVE_JETPACK_MODULES_KEY, true );
+ }
+ }
+
+ /**
+ * Hook into several connection-based actions to update the historically active Jetpack modules
+ * If the transient that indicates the list needs to be synced, update it and delete the transient
+ *
+ * @return void
+ */
+ public static function setup_historically_active_jetpack_modules_sync() {
+ if ( get_transient( self::UPDATE_HISTORICALLY_ACTIVE_JETPACK_MODULES_KEY ) && ! wp_doing_ajax() ) {
+ self::update_historically_active_jetpack_modules();
+ delete_transient( self::UPDATE_HISTORICALLY_ACTIVE_JETPACK_MODULES_KEY );
+ }
+
+ $actions = array(
+ 'jetpack_site_registered',
+ 'jetpack_user_authorized',
+ 'activated_plugin',
+ );
+
+ foreach ( $actions as $action ) {
+ add_action( $action, array( __CLASS__, 'queue_historically_active_jetpack_modules_update' ), 5 );
+ }
+
+ // Modules are often updated async, so we need to update them right away as there will sometimes be no page reload.
+ add_action( 'jetpack_activate_module', array( __CLASS__, 'update_historically_active_jetpack_modules' ), 5 );
+ }
+
+ /**
+ * Update historically active Jetpack plugins
+ * Historically active is defined as the Jetpack plugins that are installed and active with the required connections
+ * This array will consist of any plugins that were active at one point in time and are still enabled on the site
+ *
+ * @return void
+ */
+ public static function update_historically_active_jetpack_modules() {
+ $historically_active_modules = \Jetpack_Options::get_option( 'historically_active_modules', array() );
+ $products = Products::get_products();
+
+ foreach ( $products as $product ) {
+ $status = $product['status'];
+ $product_slug = $product['slug'];
+ // We want to leave modules in the array if they've been active in the past
+ // and were not manually disabled by the user.
+ if ( in_array( $status, Products::$broken_module_statuses, true ) ) {
+ continue;
+ }
+
+ // If the module is active and not already in the array, add it
+ if (
+ in_array( $status, Products::$active_module_statuses, true ) &&
+ ! in_array( $product_slug, $historically_active_modules, true )
+ ) {
+ $historically_active_modules[] = $product_slug;
+ }
+
+ // If the module has been disabled due to a manual user action,
+ // or because of a missing plan error, remove it from the array
+ if ( in_array( $status, Products::$disabled_module_statuses, true ) ) {
+ $historically_active_modules = array_values( array_diff( $historically_active_modules, array( $product_slug ) ) );
+ }
+ }
+
+ \Jetpack_Options::update_option( 'historically_active_modules', array_unique( $historically_active_modules ) );
+ }
+
+ /**
+ * Site full-data endpoint.
+ *
+ * @return object Site data.
+ */
+ public static function get_site() {
+ $site_id = \Jetpack_Options::get_option( 'id' );
+ $wpcom_endpoint = sprintf( '/sites/%d?force=wpcom', $site_id );
+ $wpcom_api_version = '1.1';
+ $response = Client::wpcom_json_api_request_as_blog( $wpcom_endpoint, $wpcom_api_version );
+ $response_code = wp_remote_retrieve_response_code( $response );
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( is_wp_error( $response ) || empty( $response['body'] ) ) {
+ return new WP_Error( 'site_data_fetch_failed', 'Site data fetch failed', array( 'status' => $response_code ) );
+ }
+
+ return rest_ensure_response( $body );
+ }
+
+ /**
+ * Populates the self::$site_info var with site data from the /sites/%d endpoint
+ *
+ * @return object|WP_Error
+ */
+ public static function get_site_info() {
+ static $site_info = null;
+
+ if ( $site_info !== null ) {
+ return $site_info;
+ }
+
+ // Check for a cached value before doing lookup
+ $stored_site_info = get_transient( self::MY_JETPACK_SITE_INFO_TRANSIENT_KEY );
+ if ( $stored_site_info !== false ) {
+ return $stored_site_info;
+ }
+
+ $response = self::get_site();
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+ $site_info = $response->data;
+ set_transient( self::MY_JETPACK_SITE_INFO_TRANSIENT_KEY, $site_info, DAY_IN_SECONDS );
+
+ return $site_info;
+ }
+
+ /**
+ * Returns whether a site has been determined "commercial" or not.
+ *
+ * @return bool|null
+ */
+ public static function is_commercial_site() {
+ if ( is_wp_error( self::$site_info ) ) {
+ return null;
+ }
+
+ return empty( self::$site_info->options->is_commercial ) ? false : self::$site_info->options->is_commercial;
+ }
+
+ /**
+ * Check if site is registered (has been connected before).
+ *
+ * @return bool
+ */
+ public static function is_registered() {
+ return (bool) \Jetpack_Options::get_option( 'id' );
+ }
+
+ /**
+ * Dismiss the welcome banner.
+ *
+ * @return \WP_REST_Response
+ */
+ public static function dismiss_welcome_banner() {
+ \Jetpack_Options::update_option( 'dismissed_welcome_banner', true );
+ return rest_ensure_response( array( 'success' => true ) );
+ }
+
+ /**
+ * Returns true if the site has file write access to the plugins folder, false otherwise.
+ *
+ * @return string
+ **/
+ public static function has_file_system_write_access() {
+
+ $cache = get_transient( 'my_jetpack_write_access' );
+
+ if ( false !== $cache ) {
+ return $cache;
+ }
+
+ if ( ! function_exists( 'get_filesystem_method' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/file.php';
+ }
+
+ require_once ABSPATH . 'wp-admin/includes/template.php';
+
+ $write_access = 'no';
+
+ $filesystem_method = get_filesystem_method( array(), WP_PLUGIN_DIR );
+ if ( 'direct' === $filesystem_method ) {
+ $write_access = 'yes';
+ }
+
+ if ( ! $write_access ) {
+ ob_start();
+ $filesystem_credentials_are_stored = request_filesystem_credentials( self_admin_url() );
+ ob_end_clean();
+
+ if ( $filesystem_credentials_are_stored ) {
+ $write_access = 'yes';
+ }
+ }
+
+ set_transient( 'my_jetpack_write_access', $write_access, 30 * MINUTE_IN_SECONDS );
+
+ return $write_access;
+ }
+
+ /**
+ * Get container IDC for the IDC screen.
+ *
+ * @return string
+ */
+ public static function get_idc_container_id() {
+ return static::IDC_CONTAINER_ID;
+ }
+
+ /**
+ * Conditionally append the red bubble notification to the "Jetpack" menu item if there are alerts to show
+ *
+ * @return void
+ */
+ public static function maybe_show_red_bubble() {
+ global $menu;
+ // filters for the items in this file
+ add_filter( 'my_jetpack_red_bubble_notification_slugs', array( __CLASS__, 'add_red_bubble_alerts' ) );
+ $red_bubble_alerts = array_filter(
+ self::get_red_bubble_alerts(),
+ function ( $alert ) {
+ // We don't want to show silent alerts
+ return empty( $alert['is_silent'] );
+ }
+ );
+
+ // The Jetpack menu item should be on index 3
+ if (
+ ! empty( $red_bubble_alerts ) &&
+ is_countable( $red_bubble_alerts ) &&
+ isset( $menu[3] ) &&
+ $menu[3][0] === 'Jetpack'
+ ) {
+ // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited
+ $menu[3][0] .= sprintf( ' %d', count( $red_bubble_alerts ) );
+ }
+ }
+
+ /**
+ * Collect all possible alerts that we might use a red bubble notification for
+ *
+ * @return array
+ */
+ public static function get_red_bubble_alerts() {
+ static $red_bubble_alerts = array();
+
+ // using a static cache since we call this function more than once in the class
+ if ( ! empty( $red_bubble_alerts ) ) {
+ return $red_bubble_alerts;
+ }
+ // go find the alerts
+ $red_bubble_alerts = apply_filters( 'my_jetpack_red_bubble_notification_slugs', $red_bubble_alerts );
+
+ return $red_bubble_alerts;
+ }
+
+ /**
+ * Get list of module names sorted by their recommendation score
+ *
+ * @return array|null
+ */
+ public static function get_recommended_modules() {
+ $recommendations_evaluation = \Jetpack_Options::get_option( 'recommendations_evaluation', null );
+
+ if ( ! $recommendations_evaluation ) {
+ return null;
+ }
+
+ arsort( $recommendations_evaluation ); // Sort by scores in descending order
+
+ return array_keys( $recommendations_evaluation ); // Get only module names
+ }
+
+ /**
+ * Check for features broken by a disconnected user or site
+ *
+ * @return array
+ */
+ public static function check_for_broken_modules() {
+ $connection = new Connection_Manager();
+ $is_user_connected = $connection->is_user_connected() || $connection->has_connected_owner();
+ $is_site_connected = $connection->is_connected();
+ $broken_modules = array(
+ 'needs_site_connection' => array(),
+ 'needs_user_connection' => array(),
+ );
+
+ if ( $is_user_connected && $is_site_connected ) {
+ return $broken_modules;
+ }
+
+ $products = Products::get_products_classes();
+ $historically_active_modules = \Jetpack_Options::get_option( 'historically_active_modules', array() );
+
+ foreach ( $products as $product ) {
+ if ( ! in_array( $product::$slug, $historically_active_modules, true ) ) {
+ continue;
+ }
+
+ if ( $product::$requires_user_connection && ! $is_user_connected ) {
+ if ( ! in_array( $product::$slug, $broken_modules['needs_user_connection'], true ) ) {
+ $broken_modules['needs_user_connection'][] = $product::$slug;
+ }
+ } elseif ( ! $is_site_connected ) {
+ if ( ! in_array( $product::$slug, $broken_modules['needs_site_connection'], true ) ) {
+ $broken_modules['needs_site_connection'][] = $product::$slug;
+ }
+ }
+ }
+
+ return $broken_modules;
+ }
+
+ /**
+ * Add relevant red bubble notifications
+ *
+ * @param array $red_bubble_slugs - slugs that describe the reasons the red bubble is showing.
+ * @return array
+ */
+ public static function add_red_bubble_alerts( array $red_bubble_slugs ) {
+ if ( wp_doing_ajax() ) {
+ return array();
+ }
+ $connection = new Connection_Manager();
+ $welcome_banner_dismissed = \Jetpack_Options::get_option( 'dismissed_welcome_banner', false );
+ if ( self::is_jetpack_user_new() && ! $welcome_banner_dismissed ) {
+ $red_bubble_slugs['welcome-banner-active'] = array(
+ 'is_silent' => $connection->is_connected(), // we don't display the red bubble if the user is connected
+ );
+ return $red_bubble_slugs;
+ } else {
+ return self::alert_if_missing_connection( $red_bubble_slugs );
+ }
+ }
+
+ /**
+ * Add an alert slug if the site is missing a site connection
+ *
+ * @param array $red_bubble_slugs - slugs that describe the reasons the red bubble is showing.
+ * @return array
+ */
+ public static function alert_if_missing_connection( array $red_bubble_slugs ) {
+ $broken_modules = self::check_for_broken_modules();
+ $connection = new Connection_Manager();
+
+ if ( ! empty( $broken_modules['needs_user_connection'] ) ) {
+ $red_bubble_slugs[ self::MISSING_CONNECTION_NOTIFICATION_KEY ] = array(
+ 'type' => 'user',
+ 'is_error' => true,
+ );
+ return $red_bubble_slugs;
+ }
+
+ if ( ! empty( $broken_modules['needs_site_connection'] ) ) {
+ $red_bubble_slugs[ self::MISSING_CONNECTION_NOTIFICATION_KEY ] = array(
+ 'type' => 'site',
+ 'is_error' => true,
+ );
+ return $red_bubble_slugs;
+ }
+
+ if ( ! $connection->is_user_connected() && ! $connection->has_connected_owner() ) {
+ $red_bubble_slugs[ self::MISSING_CONNECTION_NOTIFICATION_KEY ] = array(
+ 'type' => 'user',
+ 'is_error' => false,
+ );
+ return $red_bubble_slugs;
+ }
+
+ if ( ! $connection->is_connected() ) {
+ $red_bubble_slugs[ self::MISSING_CONNECTION_NOTIFICATION_KEY ] = array(
+ 'type' => 'site',
+ 'is_error' => false,
+ );
+ return $red_bubble_slugs;
+ }
+
+ return $red_bubble_slugs;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-jetpack-manage.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-jetpack-manage.php
new file mode 100644
index 00000000..3a732192
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-jetpack-manage.php
@@ -0,0 +1,124 @@
+ $blog_id );
+ }
+
+ return Admin_Menu::add_menu(
+ __( 'Jetpack Manage', 'jetpack-my-jetpack' ),
+ _x( 'Jetpack Manage', 'product name shown in menu', 'jetpack-my-jetpack' ) . ' ',
+ 'manage_options',
+ esc_url( Redirect::get_url( 'cloud-manage-dashboard-wp-menu', $args ) ),
+ null,
+ 15
+ );
+ }
+
+ /**
+ * Check if the user has enough sites to be able to use Jetpack Manage.
+ *
+ * @param int $min_sites Minimum number of sites to be able to use Jetpack Manage.
+ *
+ * @return bool Return true if the user has enough sites to be able to use Jetpack Manage.
+ */
+ public static function could_use_jp_manage( $min_sites = 2 ) {
+ // Only proceed if the user is connected to WordPress.com.
+ if ( ! ( new Connection_Manager() )->is_user_connected() ) {
+ return false;
+ }
+
+ // Do not display the menu if Jetpack plugin is not installed.
+ if ( ! class_exists( 'Jetpack' ) ) {
+ return false;
+ }
+
+ // Do not display the menu on Multisite.
+ if ( is_multisite() ) {
+ return false;
+ }
+
+ // Check if the user has the minimum number of sites.
+ $user_data = ( new Connection_Manager() )->get_connected_user_data( get_current_user_id() );
+ if ( ! isset( $user_data['site_count'] ) || $user_data['site_count'] < $min_sites ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Check if the user is a partner/agency.
+ *
+ * @return bool Return true if the user is a partner/agency, otherwise false.
+ */
+ public static function is_agency_account() {
+ // Only proceed if the user is connected to WordPress.com.
+ if ( ! ( new Connection_Manager() )->is_user_connected() ) {
+ return false;
+ }
+
+ // Get the cached partner data.
+ $partner = get_transient( 'jetpack_partner_data' );
+
+ if ( $partner === false ) {
+ $wpcom_response = Client::wpcom_json_api_request_as_user( '/jetpack-partners' );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $wpcom_response ) || is_wp_error( $wpcom_response ) ) {
+ return false;
+ }
+
+ $partner_data = json_decode( wp_remote_retrieve_body( $wpcom_response ) );
+
+ // The jetpack-partners endpoint will return only one partner data into an array, it uses Jetpack_Partner::find_by_owner.
+ if ( ! is_array( $partner_data ) || count( $partner_data ) !== 1 || ! is_object( $partner_data[0] ) ) {
+ return false;
+ }
+
+ $partner = $partner_data[0];
+
+ // Cache the partner data for 1 hour.
+ set_transient( 'jetpack_partner_data', $partner, HOUR_IN_SECONDS );
+ }
+
+ return $partner->partner_type === 'agency';
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php
new file mode 100644
index 00000000..dcd3fcc2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-products.php
@@ -0,0 +1,356 @@
+ Products\Anti_Spam::class,
+ 'backup' => Products\Backup::class,
+ 'boost' => Products\Boost::class,
+ 'crm' => Products\Crm::class,
+ 'creator' => Products\Creator::class,
+ 'extras' => Products\Extras::class,
+ 'jetpack-ai' => Products\Jetpack_Ai::class,
+ 'scan' => Products\Scan::class,
+ 'search' => Products\Search::class,
+ 'social' => Products\Social::class,
+ 'security' => Products\Security::class,
+ 'protect' => Products\Protect::class,
+ 'videopress' => Products\Videopress::class,
+ 'stats' => Products\Stats::class,
+ 'ai' => Products\Jetpack_Ai::class,
+ );
+
+ /**
+ * This filter allows plugin to override the Product class of a given product. The new class must be a child class of the default one declared in My Jetpack
+ *
+ * For example, a stand-alone plugin could overwrite its product class to control specific behavior of the product in the My Jetpack page after it is active without having to commit changes to the My Jetpack package:
+ *
+ * add_filter( 'my_jetpack_products_classes', function( $classes ) {
+ * $classes['my_plugin'] = 'My_Plugin'; // a class that extends the original one declared in the My Jetpack package.
+ * return $classes
+ * } );
+ *
+ * @param array $classes An array where the keys are the product slugs and the values are the class names.
+ */
+ $final_classes = apply_filters( 'my_jetpack_products_classes', $classes );
+
+ // Check that the classes are still child of the same original classes.
+ foreach ( (array) $final_classes as $slug => $final_class ) {
+ if ( $final_class === $classes[ $slug ] ) {
+ continue;
+ }
+ if ( ! class_exists( $final_class ) || ! is_subclass_of( $final_class, $classes[ $slug ] ) ) {
+ throw new \Exception( 'You can only overwrite a Product class with a child of the original class.' );
+ }
+ }
+
+ return $final_classes;
+ }
+
+ /**
+ * Product data
+ *
+ * @return array Jetpack products on the site and their availability.
+ */
+ public static function get_products() {
+ $products = array();
+ foreach ( self::get_products_classes() as $class ) {
+ $product_slug = $class::$slug;
+ $products[ $product_slug ] = $class::get_info();
+ }
+ return $products;
+ }
+
+ /**
+ * Get a list of products sorted by whether or not the user owns them
+ * An owned product is defined as a product that is any of the following
+ * - Active
+ * - Has historically been active
+ * - The user has a plan that includes the product
+ * - The user has the standalone plugin for the product installed
+ *
+ * @param string $type The type of ownership to return ('owned' or 'unowned').
+ *
+ * @return array
+ */
+ public static function get_products_by_ownership( $type ) {
+ $owned_active_products = array();
+ $owned_warning_products = array();
+ $owned_inactive_products = array();
+ $unowned_products = array();
+
+ foreach ( self::get_products_classes() as $class ) {
+ $product_slug = $class::$slug;
+ $status = $class::get_status();
+
+ if ( $class::is_owned() ) {
+ // This sorts the the products in the order of active -> warning -> inactive.
+ // This enables the frontend to display them in that order.
+ // This is not needed for unowned products as those will always have a status of 'inactive'
+ if ( in_array( $status, self::$active_module_statuses, true ) ) {
+ array_push( $owned_active_products, $product_slug );
+ } elseif ( in_array( $status, self::$warning_module_statuses, true ) ) {
+ array_push( $owned_warning_products, $product_slug );
+ } else {
+ array_push( $owned_inactive_products, $product_slug );
+ }
+ continue;
+ }
+
+ array_push( $unowned_products, $product_slug );
+ }
+
+ $data = array(
+ 'owned' => array_values(
+ array_unique(
+ array_merge(
+ $owned_active_products,
+ $owned_warning_products,
+ $owned_inactive_products
+ )
+ )
+ ),
+ 'unowned' => array_values(
+ array_unique( $unowned_products )
+ ),
+ );
+
+ return $data[ $type ];
+ }
+
+ /**
+ * Get all plugin filenames associated with the products.
+ *
+ * @return array
+ */
+ public static function get_all_plugin_filenames() {
+ $filenames = array();
+ foreach ( self::get_products_classes() as $class ) {
+ if ( ! isset( $class::$plugin_filename ) ) {
+ continue;
+ }
+
+ if ( is_array( $class::$plugin_filename ) ) {
+ $filenames = array_merge( $filenames, $class::$plugin_filename );
+ } else {
+ $filenames[] = $class::$plugin_filename;
+ }
+ }
+ return $filenames;
+ }
+
+ /**
+ * Get one product data by its slug
+ *
+ * @param string $product_slug The product slug.
+ *
+ * @return ?array
+ */
+ public static function get_product( $product_slug ) {
+ $classes = self::get_products_classes();
+ if ( isset( $classes[ $product_slug ] ) ) {
+ return $classes[ $product_slug ]::get_info();
+ }
+ }
+
+ /**
+ * Get one product Class name
+ *
+ * @param string $product_slug The product slug.
+ *
+ * @return ?string
+ */
+ public static function get_product_class( $product_slug ) {
+ $classes = self::get_products_classes();
+ if ( isset( $classes[ $product_slug ] ) ) {
+ return $classes[ $product_slug ];
+ }
+ }
+
+ /**
+ * Return product slugs list.
+ *
+ * @return array Product slugs array.
+ */
+ public static function get_products_slugs() {
+ return array_keys( self::get_products_classes() );
+ }
+
+ /**
+ * Gets the json schema for the product data
+ *
+ * @return array
+ */
+ public static function get_product_data_schema() {
+ return array(
+ 'title' => 'The requested product data',
+ 'type' => 'object',
+ 'properties' => array(
+ 'product' => array(
+ 'description' => __( 'Product slug', 'jetpack-my-jetpack' ),
+ 'type' => 'string',
+ 'enum' => __CLASS__ . '::get_product_slugs',
+ 'required' => false,
+ 'validate_callback' => __CLASS__ . '::check_product_argument',
+ ),
+ 'action' => array(
+ 'description' => __( 'Production action to execute', 'jetpack-my-jetpack' ),
+ 'type' => 'string',
+ 'enum' => array( 'activate', 'deactivate' ),
+ 'required' => false,
+ 'validate_callback' => __CLASS__ . '::check_product_argument',
+ ),
+ 'slug' => array(
+ 'title' => 'The product slug',
+ 'type' => 'string',
+ ),
+ 'name' => array(
+ 'title' => 'The product name',
+ 'type' => 'string',
+ ),
+ 'description' => array(
+ 'title' => 'The product description',
+ 'type' => 'string',
+ ),
+ 'status' => array(
+ 'title' => 'The product status',
+ 'type' => 'string',
+ 'enum' => self::$all_statuses,
+ ),
+ 'class' => array(
+ 'title' => 'The product class handler',
+ 'type' => 'string',
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Extend actions links for plugins
+ * tied to the Products.
+ */
+ public static function extend_plugins_action_links() {
+ $products = array(
+ 'backup',
+ 'boost',
+ 'crm',
+ 'videopress',
+ 'social',
+ 'protect',
+ 'crm',
+ 'search',
+ 'ai',
+ );
+
+ // Add plugin action links for the core Jetpack plugin.
+ Product::extend_core_plugin_action_links();
+
+ // Add plugin action links to standalone products.
+ foreach ( $products as $product ) {
+ $class_name = self::get_product_class( $product );
+ $class_name::extend_plugin_action_links();
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-ai.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-ai.php
new file mode 100644
index 00000000..39698107
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-ai.php
@@ -0,0 +1,90 @@
+ \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::get_openai_jwt',
+ 'permission_callback' => function () {
+ return ( new Connection_Manager( 'jetpack' ) )->is_user_connected() && current_user_can( 'edit_posts' );
+ },
+ )
+ );
+ }
+ }
+
+ /**
+ * Check if a specific REST endpoint is registered.
+ *
+ * @param string $namespace - The namespace of the endpoint.
+ * @param string $route - The route of the endpoint.
+ * @return bool True if the endpoint is registered, false otherwise.
+ */
+ public static function is_rest_endpoint_registered( $namespace, $route ) {
+ $server = rest_get_server();
+ $routes = $server->get_routes();
+ $full_endpoint = '/' . trim( $namespace, '/' ) . $route;
+ return isset( $routes[ $full_endpoint ] );
+ }
+
+ /**
+ * Ask WPCOM for a JWT token to use for OpenAI completion.
+ */
+ public static function get_openai_jwt() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_user(
+ "/sites/$blog_id/jetpack-openai-query/jwt",
+ '2',
+ array(
+ 'method' => 'POST',
+ 'headers' => array( 'Content-Type' => 'application/json; charset=utf-8' ),
+ ),
+ wp_json_encode( array() ),
+ 'wpcom'
+ );
+
+ if ( is_wp_error( $response ) ) {
+ return $response;
+ }
+
+ $json = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( ! isset( $json->token ) ) {
+ return new WP_Error( 'no-token', 'No token returned from WPCOM' );
+ }
+
+ return array(
+ 'token' => $json->token,
+ 'blog_id' => $blog_id,
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-product-data.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-product-data.php
new file mode 100644
index 00000000..15530adb
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-product-data.php
@@ -0,0 +1,147 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_site_backup_undo_event',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ '/site/backup/count-items',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::count_things_that_can_be_backed_up',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ )
+ );
+ }
+
+ /**
+ * Checks if the user has the correct permissions
+ */
+ public static function permissions_callback() {
+ return current_user_can( 'manage_options' );
+ }
+
+ /**
+ * This will fetch the last rewindable event from the Activity Log and
+ * the last rewind_id prior to that.
+ *
+ * @return array|WP_Error|null
+ */
+ public static function get_site_backup_undo_event() {
+ $blog_id = \Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_user(
+ '/sites/' . $blog_id . '/activity/rewindable?force=wpcom',
+ 'v2',
+ array(),
+ null,
+ 'wpcom'
+ );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return null;
+ }
+
+ $body = json_decode( $response['body'], true );
+
+ if ( ! isset( $body['current'] ) ) {
+ return null;
+ }
+
+ // Preparing the response structure
+ $undo_event = array(
+ 'last_rewindable_event' => null,
+ 'undo_backup_id' => null,
+ );
+
+ // List of events that will not be considered to be undo.
+ // Basically we should not `undo` a full backup event, but we could
+ // use them to undo any other action like plugin updates.
+ $last_event_exceptions = array(
+ 'rewind__backup_only_complete_full',
+ 'rewind__backup_only_complete_initial',
+ 'rewind__backup_only_complete',
+ 'rewind__backup_complete_full',
+ 'rewind__backup_complete_initial',
+ 'rewind__backup_complete',
+ );
+
+ // Looping through the events to find the last rewindable event and the last backup_id.
+ // The idea is to find the last rewindable event and then the last rewind_id before that.
+ $found_last_event = false;
+ foreach ( $body['current']['orderedItems'] as $event ) {
+ if ( $event['is_rewindable'] ) {
+ if ( ! $found_last_event && ! in_array( $event['name'], $last_event_exceptions, true ) ) {
+ $undo_event['last_rewindable_event'] = $event;
+ $found_last_event = true;
+ } elseif ( $found_last_event ) {
+ $undo_event['undo_backup_id'] = $event['rewind_id'];
+ break;
+ }
+ }
+ }
+
+ return rest_ensure_response( $undo_event );
+ }
+
+ /**
+ * This will collect a count of all the items that could be backed up
+ * This is used to show what backup could be doing if it is not enabled
+ *
+ * @return WP_Error|\WP_REST_Response
+ */
+ public static function count_things_that_can_be_backed_up() {
+ $image_mime_type = 'image';
+ $video_mime_type = 'video';
+ $audio_mime_type = 'audio';
+
+ $data = array();
+
+ // Add all post types together to get the total post count
+ $data['total_post_count'] = array_sum( (array) wp_count_posts( 'post' ) );
+
+ // Add all page types together to get the total page count
+ $data['total_page_count'] = array_sum( (array) wp_count_posts( 'page' ) );
+
+ // Add all comments together to get the total comment count
+ $comments = (array) wp_count_comments();
+ $data['total_comment_count'] = $comments ? $comments['total_comments'] : 0;
+
+ // Add all image attachments together to get the total image count
+ $data['total_image_count'] = array_sum( (array) wp_count_attachments( $image_mime_type ) );
+
+ // Add all video attachments together to get the total video count
+ $data['total_video_count'] = array_sum( (array) wp_count_attachments( $video_mime_type ) );
+
+ // Add all audio attachments together to get the total audio count
+ $data['total_audio_count'] = array_sum( (array) wp_count_attachments( $audio_mime_type ) );
+
+ return rest_ensure_response( $data );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-products.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-products.php
new file mode 100644
index 00000000..cb253ce1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-products.php
@@ -0,0 +1,249 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_products',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ ),
+ 'schema' => array( $this, 'get_products_schema' ),
+ )
+ );
+
+ $product_arg = array(
+ 'description' => __( 'Product slug', 'jetpack-my-jetpack' ),
+ 'type' => 'string',
+ 'enum' => Products::get_products_slugs(),
+ 'required' => true,
+ 'validate_callback' => __CLASS__ . '::check_product_argument',
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ 'site/products/(?P[a-z\-]+)',
+ array(
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_product',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ 'args' => array(
+ 'product' => $product_arg,
+ ),
+ ),
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::activate_product',
+ 'permission_callback' => __CLASS__ . '::edit_permissions_callback',
+ 'args' => array(
+ 'product' => $product_arg,
+ ),
+ ),
+ array(
+ 'methods' => \WP_REST_Server::DELETABLE,
+ 'callback' => __CLASS__ . '::deactivate_product',
+ 'permission_callback' => __CLASS__ . '::edit_permissions_callback',
+ 'args' => array(
+ 'product' => $product_arg,
+ ),
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ 'site/products/(?P[a-z\-]+)/install-standalone',
+ array(
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::install_standalone',
+ 'permission_callback' => __CLASS__ . '::edit_permissions_callback',
+ 'args' => array(
+ 'product' => $product_arg,
+ ),
+ ),
+ )
+ );
+ }
+
+ /**
+ * Get the schema for the products endpoint
+ *
+ * @return array
+ */
+ public function get_products_schema() {
+ return array(
+ '$schema' => 'http://json-schema.org/draft-04/schema#',
+ 'title' => 'products',
+ 'type' => 'object',
+ 'properties' => Products::get_product_data_schema(),
+ );
+ }
+
+ /**
+ * Check user capability to access the endpoint.
+ *
+ * @access public
+ * @static
+ *
+ * @return true|WP_Error
+ */
+ public static function permissions_callback() {
+ return current_user_can( 'manage_options' );
+ }
+
+ /**
+ * Check Product arguments.
+ *
+ * @access public
+ * @static
+ *
+ * @param mixed $value - Value of the 'product' argument.
+ * @return true|WP_Error True if the value is valid, WP_Error otherwise.
+ */
+ public static function check_product_argument( $value ) {
+ if ( ! is_string( $value ) ) {
+ return new WP_Error(
+ 'rest_invalid_param',
+ esc_html__( 'The product argument must be a string.', 'jetpack-my-jetpack' ),
+ array( 'status' => 400 )
+ );
+ }
+
+ return true;
+ }
+
+ /**
+ * Site products endpoint.
+ *
+ * @return array of site products list.
+ */
+ public static function get_products() {
+ $response = Products::get_products();
+ return rest_ensure_response( $response, 200 );
+ }
+
+ /**
+ * Site single product endpoint.
+ *
+ * @param \WP_REST_Request $request The request object.
+ * @return array of site products list.
+ */
+ public static function get_product( $request ) {
+ $product_slug = $request->get_param( 'product' );
+ return rest_ensure_response( Products::get_product( $product_slug ), 200 );
+ }
+
+ /**
+ * Check permission to edit product
+ *
+ * @return bool
+ */
+ public static function edit_permissions_callback() {
+ if ( ! current_user_can( 'activate_plugins' ) ) {
+ return false;
+ }
+ if ( is_multisite() && ! current_user_can( 'manage_network' ) ) {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Callback for activating a product
+ *
+ * @param \WP_REST_Request $request The request object.
+ * @return \WP_REST_Response
+ */
+ public static function activate_product( $request ) {
+ $product_slug = $request->get_param( 'product' );
+ $product = Products::get_product( $product_slug );
+ if ( ! isset( $product['class'] ) ) {
+ return new \WP_Error(
+ 'not_implemented',
+ esc_html__( 'The product class handler is not implemented', 'jetpack-my-jetpack' ),
+ array( 'status' => 501 )
+ );
+ }
+
+ $activate_product_result = call_user_func( array( $product['class'], 'activate' ) );
+ if ( is_wp_error( $activate_product_result ) ) {
+ $activate_product_result->add_data( array( 'status' => 400 ) );
+ return $activate_product_result;
+ }
+ set_transient( 'my_jetpack_product_activated', $product_slug, 10 );
+
+ return rest_ensure_response( Products::get_product( $product_slug ), 200 );
+ }
+
+ /**
+ * Callback for deactivating a product
+ *
+ * @param \WP_REST_Request $request The request object.
+ * @return \WP_REST_Response
+ */
+ public static function deactivate_product( $request ) {
+ $product_slug = $request->get_param( 'product' );
+ $product = Products::get_product( $product_slug );
+ if ( ! isset( $product['class'] ) ) {
+ return new \WP_Error(
+ 'not_implemented',
+ esc_html__( 'The product class handler is not implemented', 'jetpack-my-jetpack' ),
+ array( 'status' => 501 )
+ );
+ }
+
+ $deactivate_product_result = call_user_func( array( $product['class'], 'deactivate' ) );
+ if ( is_wp_error( $deactivate_product_result ) ) {
+ $deactivate_product_result->add_data( array( 'status' => 400 ) );
+ return $deactivate_product_result;
+ }
+
+ return rest_ensure_response( Products::get_product( $product_slug ), 200 );
+ }
+
+ /**
+ * Callback for installing the standalone plugin on a Hybrid Product.
+ *
+ * @param \WP_REST_Request $request The request object.
+ * @return \WP_REST_Response
+ */
+ public static function install_standalone( $request ) {
+ $product_slug = $request->get_param( 'product' );
+ $product = Products::get_product( $product_slug );
+ if ( ! isset( $product['class'] ) ) {
+ return new \WP_Error(
+ 'not_implemented',
+ __( 'The product class handler is not implemented', 'jetpack-my-jetpack' ),
+ array( 'status' => 501 )
+ );
+ }
+
+ $install_product_result = call_user_func( array( $product['class'], 'install_and_activate_standalone' ) );
+ if ( is_wp_error( $install_product_result ) ) {
+ $install_product_result->add_data( array( 'status' => 400 ) );
+ return $install_product_result;
+ }
+
+ return rest_ensure_response( Products::get_product( $product_slug ), 200 );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-purchases.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-purchases.php
new file mode 100644
index 00000000..ead44934
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-purchases.php
@@ -0,0 +1,77 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_site_current_purchases',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ )
+ );
+ }
+
+ /**
+ * Check user capability to access the endpoint.
+ *
+ * @access public
+ * @static
+ *
+ * @return true|WP_Error
+ */
+ public static function permissions_callback() {
+ $connection = new Connection_Manager();
+ $is_site_connected = $connection->is_connected();
+
+ if ( ! $is_site_connected ) {
+ return new WP_Error(
+ 'not_connected',
+ __( 'Your site is not connected to Jetpack.', 'jetpack-my-jetpack' ),
+ array(
+ 'status' => 400,
+ )
+ );
+ }
+
+ return current_user_can( 'edit_posts' );
+ }
+
+ /**
+ * Site purchases endpoint.
+ *
+ * @return array of site purchases.
+ */
+ public static function get_site_current_purchases() {
+ $site_id = \Jetpack_Options::get_option( 'id' );
+ $wpcom_endpoint = sprintf( '/sites/%1$d/purchases?locale=%2$s', $site_id, get_user_locale() );
+ $wpcom_api_version = '1.1';
+ $response = Client::wpcom_json_api_request_as_blog( $wpcom_endpoint, $wpcom_api_version );
+ $response_code = wp_remote_retrieve_response_code( $response );
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( is_wp_error( $response ) || empty( $response['body'] ) || 200 !== $response_code ) {
+ return new WP_Error( 'site_data_fetch_failed', 'Site data fetch failed', array( 'status' => $response_code ? $response_code : 400 ) );
+ }
+
+ return rest_ensure_response( $body, 200 );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-recommendations-evaluation.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-recommendations-evaluation.php
new file mode 100644
index 00000000..ae03c873
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-recommendations-evaluation.php
@@ -0,0 +1,149 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::evaluate_site_recommendations',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ '/site/recommendations/evaluation/result/',
+ array(
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::save_evaluation_recommendations',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ ),
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ '/site/recommendations/evaluation/result/',
+ array(
+ array(
+ 'methods' => \WP_REST_Server::DELETABLE,
+ 'callback' => __CLASS__ . '::dismiss_evaluation_recommendations',
+ 'permission_callback' => __CLASS__ . '::permissions_callback',
+ ),
+ )
+ );
+ }
+
+ /**
+ * Check user capability to access the endpoint.
+ *
+ * @access public
+ * @static
+ *
+ * @return true|WP_Error
+ */
+ public static function permissions_callback() {
+ $connection = new Connection_Manager();
+ $is_site_connected = $connection->is_connected();
+
+ if ( ! $is_site_connected ) {
+ return new WP_Error(
+ 'not_connected',
+ __( 'Your site is not connected to Jetpack.', 'jetpack-my-jetpack' ),
+ array(
+ 'status' => 400,
+ )
+ );
+ }
+
+ return true; // We require site to be connected.
+ }
+
+ /**
+ * Recommendations Evaluation endpoint.
+ *
+ * @param \WP_REST_Request $request Query request.
+ *
+ * @return \WP_REST_Response|WP_Error of 3 product slugs (recommendations).
+ */
+ public static function evaluate_site_recommendations( $request ) {
+ $goals = $request->get_param( 'goals' );
+
+ if ( ! isset( $goals ) ) {
+ return new WP_Error( 'missing_goals', 'Goals are required', array( 'status' => 400 ) );
+ }
+
+ $site_id = \Jetpack_Options::get_option( 'id' );
+ $wpcom_endpoint = sprintf( '/sites/%1$d/jetpack-recommendations/evaluation?goals=%2$s', $site_id, implode( ',', $goals ) );
+ $response = Client::wpcom_json_api_request_as_blog( $wpcom_endpoint, '2', array(), null, 'wpcom' );
+ $response_code = wp_remote_retrieve_response_code( $response );
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( is_wp_error( $response ) || empty( $body ) || 200 !== $response_code ) {
+ return new WP_Error( 'recommendations_evaluation_fetch_failed', 'Evaluation processing failed', array( 'status' => $response_code ? $response_code : 400 ) );
+ }
+
+ return rest_ensure_response( $body );
+ }
+
+ /**
+ * Endpoint to save recommendations results.
+ *
+ * @param \WP_REST_Request $request Query request.
+ *
+ * @return \WP_REST_Response|WP_Error success response.
+ */
+ public static function save_evaluation_recommendations( $request ) {
+ $json = $request->get_json_params();
+
+ if ( ! isset( $json['recommendations'] ) ) {
+ return new WP_Error( 'missing_recommendations', 'Recommendations are required', array( 'status' => 400 ) );
+ }
+
+ \Jetpack_Options::update_option( 'recommendations_evaluation', $json['recommendations'] );
+ \Jetpack_Options::delete_option( 'dismissed_recommendations' );
+
+ return rest_ensure_response( Initializer::get_recommended_modules() );
+ }
+
+ /**
+ * Endpoint to dismiss the recommendation section
+ *
+ * @param \WP_REST_Request $request Query request.
+ *
+ * @return \WP_REST_Response|WP_Error success response.
+ */
+ public static function dismiss_evaluation_recommendations( $request ) {
+ $show_welcome_banner = $request->get_param( 'showWelcomeBanner' );
+
+ \Jetpack_Options::update_option( 'dismissed_recommendations', true );
+
+ if ( isset( $show_welcome_banner ) && $show_welcome_banner === 'true' ) {
+ \Jetpack_Options::delete_option( 'dismissed_welcome_banner' );
+ }
+
+ return rest_ensure_response( array() );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-zendesk-chat.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-zendesk-chat.php
new file mode 100644
index 00000000..f852433b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-rest-zendesk-chat.php
@@ -0,0 +1,122 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_chat_availability',
+ 'permission_callback' => __CLASS__ . '::chat_authentication_permissions_callback',
+ )
+ );
+
+ register_rest_route(
+ 'my-jetpack/v1',
+ 'chat/authentication',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::get_chat_authentication',
+ 'args' => array(
+ 'type' => array(
+ 'required' => false,
+ 'type' => 'string',
+ ),
+ 'test_mode' => array(
+ 'required' => false,
+ 'type' => 'boolean',
+ ),
+ ),
+ 'permission_callback' => __CLASS__ . '::chat_authentication_permissions_callback',
+ )
+ );
+ }
+
+ /**
+ * Ensure user is logged in if making an authentication request
+ *
+ * @access public
+ * @static
+ *
+ * @return WP_Error|true
+ */
+ public static function chat_authentication_permissions_callback() {
+ if ( ! get_current_user_id() ) {
+ return new WP_Error( 'unauthorized', 'You must be logged in to access this resource.', array( 'status' => 401 ) );
+ }
+
+ return true;
+ }
+
+ /**
+ * Gets the chat authentication token.
+ *
+ * @return WP_Error|WP_REST_Response { token: string }
+ */
+ public static function get_chat_authentication() {
+ $authentication = get_transient( self::ZENDESK_AUTH_TOKEN );
+ if ( $authentication ) {
+ return rest_ensure_response( $authentication, 200 );
+ }
+
+ $proxied = function_exists( 'wpcom_is_proxied_request' ) ? wpcom_is_proxied_request() : false;
+ $wpcom_endpoint = 'help/authenticate/chat';
+ $wpcom_api_version = '2';
+
+ $body = array(
+ 'type' => 'zendesk',
+ 'test_mode' => $proxied ? true : false,
+ );
+
+ $response = Client::wpcom_json_api_request_as_user( $wpcom_endpoint, $wpcom_api_version, array( 'method' => 'POST' ), $body );
+ $response_code = wp_remote_retrieve_response_code( $response );
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( is_wp_error( $response ) || empty( $response['body'] ) ) {
+ return new WP_Error( 'chat_authentication_failed', 'Chat authentication failed', array( 'status' => $response_code ) );
+ }
+
+ set_transient( self::ZENDESK_AUTH_TOKEN, $body, self::TRANSIENT_EXPIRY );
+ return rest_ensure_response( $body, 200 );
+ }
+
+ /**
+ * Calls `wpcom/v2/presales/chat?group=jp_presales` endpoint.
+ * This endpoint returns whether or not the Jetpack presales chat group is available
+ *
+ * @return WP_Error|WP_REST_Response { is_available: bool }
+ */
+ public static function get_chat_availability() {
+ $wpcom_endpoint = '/presales/chat?group=jp_presales';
+ $wpcom_api_version = '2';
+ $response = Client::wpcom_json_api_request_as_user( $wpcom_endpoint, $wpcom_api_version );
+ $response_code = wp_remote_retrieve_response_code( $response );
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+
+ if ( is_wp_error( $response ) || empty( $response['body'] ) ) {
+ return new WP_Error( 'chat_config_data_fetch_failed', 'Chat config data fetch failed', array( 'status' => $response_code ) );
+ }
+
+ return rest_ensure_response( $body, 200 );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-wpcom-products.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-wpcom-products.php
new file mode 100644
index 00000000..3f3ea12c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/class-wpcom-products.php
@@ -0,0 +1,387 @@
+get_ip( true );
+ $headers = array(
+ 'X-Forwarded-For' => $ip,
+ );
+
+ if ( $blog_id ) {
+ $request_label = 'get_products_from_wpcom_blog_' . $blog_id;
+ $request_failure = static::get_request_failure( $request_label );
+ if ( null !== $request_failure ) {
+ return $request_failure;
+ }
+
+ // If has a blog id, use connected endpoint.
+ $endpoint = sprintf( '/sites/%d/products/?_locale=%s&type=jetpack', $blog_id, get_user_locale() );
+
+ // If available in the user data, set the user's currency as one of the params
+ if ( $connection->is_user_connected() ) {
+ $user_details = $connection->get_connected_user_data();
+ if ( ! empty( $user_details['user_currency'] ) && $user_details['user_currency'] !== 'USD' ) {
+ $endpoint .= sprintf( '¤cy=%s', $user_details['user_currency'] );
+ }
+ }
+
+ $wpcom_request = Client::wpcom_json_api_request_as_blog(
+ $endpoint,
+ '1.1',
+ array(
+ 'method' => 'GET',
+ 'headers' => $headers,
+ )
+ );
+ } else {
+ $request_label = 'get_products_from_wpcom';
+ $request_failure = static::get_request_failure( $request_label );
+ if ( null !== $request_failure ) {
+ return $request_failure;
+ }
+
+ $endpoint = 'https://public-api.wordpress.com/rest/v1.1/products?locale=' . get_user_locale() . '&type=jetpack';
+
+ $wpcom_request = wp_remote_get(
+ esc_url_raw( $endpoint ),
+ array(
+ 'headers' => $headers,
+ )
+ );
+ }
+
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+
+ if ( 200 === $response_code ) {
+ return json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+ } else {
+ $error = new WP_Error(
+ 'failed_to_fetch_wpcom_products',
+ esc_html__( 'Unable to fetch the products list from WordPress.com', 'jetpack-my-jetpack' ),
+ array( 'status' => $response_code )
+ );
+ static::set_request_failure( $request_label, $error );
+ return $error;
+ }
+ }
+
+ /**
+ * Super unintelligent hash string that can help us reset the cache after connection changes
+ * This is important because the currency can change after a user connects depending on what is set in their profile
+ *
+ * @return string
+ */
+ private static function build_check_hash() {
+ static $has_user_data_fetch_error = false;
+
+ $hash_string = 'check_hash_';
+ $connection = new Connection_Manager();
+
+ if ( $connection->is_connected() ) {
+ $hash_string .= 'site_connected_';
+ }
+
+ if ( $connection->is_user_connected() ) {
+ $hash_string .= 'user_connected';
+ // Add the user's currency
+ $user_details = $has_user_data_fetch_error ? false : $connection->get_connected_user_data();
+
+ if ( $user_details === false ) {
+ $has_user_data_fetch_error = true;
+ } elseif ( ! empty( $user_details['user_currency'] ) ) {
+ $hash_string .= '_' . $user_details['user_currency'];
+ }
+ }
+
+ return md5( $hash_string );
+ }
+
+ /**
+ * Update the cache with new information retrieved from WPCOM
+ *
+ * We store one cache for each user, as the information is internationalized based on user preferences
+ * Also, the currency is based on the user IP address
+ *
+ * @param Object $products_list The products list as received from WPCOM.
+ * @return bool
+ */
+ private static function update_cache( $products_list ) {
+ update_user_meta( get_current_user_id(), self::CACHE_DATE_META_NAME, time() );
+ update_user_meta( get_current_user_id(), self::CACHE_CHECK_HASH_NAME, self::build_check_hash() );
+ return update_user_meta( get_current_user_id(), self::CACHE_META_NAME, $products_list );
+ }
+
+ /**
+ * Checks if the cache is old, meaning we need to fetch new data from WPCOM
+ */
+ private static function is_cache_old() {
+ if ( empty( self::get_products_from_cache() ) ) {
+ return true;
+ }
+
+ // This allows the cache to reset after the site or user connects/ disconnects
+ $check_hash = get_user_meta( get_current_user_id(), self::CACHE_CHECK_HASH_NAME, true );
+ if ( $check_hash !== self::build_check_hash() ) {
+ return true;
+ }
+
+ $cache_date = get_user_meta( get_current_user_id(), self::CACHE_DATE_META_NAME, true );
+ return time() - (int) $cache_date > DAY_IN_SECONDS;
+ }
+
+ /**
+ * Gets the product list from the user cache
+ */
+ private static function get_products_from_cache() {
+ return get_user_meta( get_current_user_id(), self::CACHE_META_NAME, true );
+ }
+
+ /**
+ * Gets the product list
+ *
+ * Attempts to retrieve the products list from the user cache if cache is not too old.
+ * If cache is old, it will attempt to fetch information from WPCOM. If it fails, we return what we have in cache, if anything, otherwise we return an error.
+ *
+ * @param bool $skip_cache If true it will ignore the cache and attempt to fetch fresh information from WPCOM.
+ *
+ * @return Object|WP_Error
+ */
+ public static function get_products( $skip_cache = false ) {
+ // This is only available for logged in users.
+ if ( ! get_current_user_id() ) {
+ return null;
+ }
+ if ( ! self::is_cache_old() && ! $skip_cache ) {
+ return self::get_products_from_cache();
+ }
+
+ $products = self::get_products_from_wpcom();
+ if ( is_wp_error( $products ) ) {
+ // Let's see if we have it cached.
+ $cached = self::get_products_from_cache();
+ if ( ! empty( $cached ) ) {
+ return $cached;
+ } else {
+ return $products;
+ }
+ }
+
+ self::update_cache( $products );
+ return $products;
+ }
+
+ /**
+ * Get one product
+ *
+ * @param string $product_slug The product slug.
+ * @param bool $renew_cache A flag to force the cache to be renewed.
+ *
+ * @return ?Object The product details if found
+ */
+ public static function get_product( $product_slug, $renew_cache = false ) {
+ $products = self::get_products( $renew_cache );
+ if ( ! empty( $products->$product_slug ) ) {
+ return $products->$product_slug;
+ }
+ }
+
+ /**
+ * Get only the product currency code and price in an array
+ *
+ * @param string $product_slug The product slug.
+ *
+ * @return array An array with currency_code and full_price. Empty array if product not found.
+ */
+ public static function get_product_pricing( $product_slug ) {
+ $product = self::get_product( $product_slug );
+ if ( empty( $product ) ) {
+ return array();
+ }
+
+ $cost = $product->cost;
+ $discount_price = $cost;
+ $is_introductory_offer = false;
+ $introductory_offer = null;
+
+ // Get/compute the discounted price.
+ if ( isset( $product->introductory_offer->cost_per_interval ) ) {
+ $discount_price = $product->introductory_offer->cost_per_interval;
+ $is_introductory_offer = true;
+ $introductory_offer = $product->introductory_offer;
+ }
+
+ $pricing = array(
+ 'currency_code' => $product->currency_code,
+ 'full_price' => $cost,
+ 'discount_price' => $discount_price,
+ 'is_introductory_offer' => $is_introductory_offer,
+ 'introductory_offer' => $introductory_offer,
+ 'product_term' => $product->product_term,
+ );
+
+ return self::populate_with_discount( $product, $pricing, $discount_price );
+ }
+
+ /**
+ * Populate the pricing array with the discount information.
+ *
+ * @param object $product - The product object.
+ * @param array $pricing - The pricing array.
+ * @param float $price - The price to be discounted.
+ * @return array The pricing array with the discount information.
+ */
+ public static function populate_with_discount( $product, $pricing, $price ) {
+ // Check whether the product has a coupon.
+ if ( ! isset( $product->sale_coupon ) ) {
+ return $pricing;
+ }
+
+ // Check whether it is still valid.
+ $coupon = $product->sale_coupon;
+ $coupon_start_date = strtotime( $coupon->start_date );
+ $coupon_expires = strtotime( $coupon->expires );
+ if ( $coupon_start_date > time() || $coupon_expires < time() ) {
+ return $pricing;
+ }
+
+ $coupon_discount = intval( $coupon->discount );
+
+ // Populate response with coupon discount.
+ $pricing['coupon_discount'] = $coupon_discount;
+
+ // Apply coupon discount to the price.
+ $pricing['discount_price'] = $price * ( 100 - $coupon_discount ) / 100;
+
+ return $pricing;
+ }
+
+ /**
+ * Gets the site purchases from WPCOM.
+ *
+ * @return Object|WP_Error
+ */
+ public static function get_site_current_purchases() {
+ static $purchases = null;
+
+ if ( $purchases !== null ) {
+ return $purchases;
+ }
+
+ // Check for a cached value before doing lookup
+ $stored_purchases = get_transient( self::MY_JETPACK_PURCHASES_TRANSIENT_KEY );
+ if ( $stored_purchases !== false ) {
+ return $stored_purchases;
+ }
+
+ $request_failure = static::get_request_failure( 'get_site_current_purchases' );
+ if ( null !== $request_failure ) {
+ return $request_failure;
+ }
+
+ $site_id = Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ sprintf( '/sites/%d/purchases', $site_id ),
+ '1.1',
+ array(
+ 'method' => 'GET',
+ )
+ );
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $error = new WP_Error( 'purchases_state_fetch_failed' );
+ static::set_request_failure( 'get_site_current_purchases', $error );
+ return $error;
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $purchases = json_decode( $body );
+ // Set short transient to help with repeated lookups on the same page load
+ set_transient( self::MY_JETPACK_PURCHASES_TRANSIENT_KEY, $purchases, 5 );
+
+ return $purchases;
+ }
+
+ /**
+ * Reset the request failures to retry the API requests.
+ *
+ * @return void
+ */
+ public static function reset_request_failures() {
+ static::$wpcom_request_failures = array();
+ }
+
+ /**
+ * Record the request failure to prevent repeated requests.
+ *
+ * @param string $request_label The request label.
+ * @param WP_Error $error The error.
+ *
+ * @return void
+ */
+ private static function set_request_failure( $request_label, WP_Error $error ) {
+ static::$wpcom_request_failures[ $request_label ] = $error;
+ }
+
+ /**
+ * Get the pre-saved request failure if exists.
+ *
+ * @param string $request_label The request label.
+ *
+ * @return null|WP_Error
+ */
+ private static function get_request_failure( $request_label ) {
+ if ( array_key_exists( $request_label, static::$wpcom_request_failures ) ) {
+ return static::$wpcom_request_failures[ $request_label ];
+ }
+
+ return null;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-anti-spam.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-anti-spam.php
new file mode 100644
index 00000000..88d212f0
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-anti-spam.php
@@ -0,0 +1,189 @@
+product_slug, $product ) !== false ) {
+ return true;
+ }
+ }
+ }
+ }
+
+ return $fallback;
+ }
+
+ /**
+ * Get the product princing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ return array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_anti_spam';
+ }
+
+ /**
+ * Return product bundles list
+ * that supports the product.
+ *
+ * @return boolean|array Products bundle list.
+ */
+ public static function is_upgradable_by_bundle() {
+ return array( 'security' );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=akismet-key-config' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-backup.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-backup.php
new file mode 100644
index 00000000..296a590d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-backup.php
@@ -0,0 +1,242 @@
+ _x( '* Subject to your usage and storage limit.', 'Backup Product Disclaimer', 'jetpack-my-jetpack' ),
+ 'link_text' => _x( 'Learn more', 'Backup Product Disclaimer', 'jetpack-my-jetpack' ),
+ 'url' => Redirect::get_url( 'jetpack-faq-backup-disclaimer' ),
+ ),
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_backup_t1_yearly';
+ }
+
+ /**
+ * Get the URL where the user should be redirected after checkout
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the product princing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ return array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Hits the wpcom api to check rewind status.
+ *
+ * @todo Maybe add caching.
+ *
+ * @return Object|WP_Error
+ */
+ private static function get_state_from_wpcom() {
+ static $status = null;
+
+ if ( $status !== null ) {
+ return $status;
+ }
+
+ $site_id = Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/rewind', $site_id ) . '?force=wpcom', '2', array( 'timeout' => 2 ), null, 'wpcom' );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $status = new WP_Error( 'rewind_state_fetch_failed' );
+ return $status;
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $status = json_decode( $body );
+ return $status;
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $rewind_data = static::get_state_from_wpcom();
+ if ( is_wp_error( $rewind_data ) ) {
+ return false;
+ }
+ return is_object( $rewind_data ) && isset( $rewind_data->state ) && 'unavailable' !== $rewind_data->state;
+ }
+
+ /**
+ * Return product bundles list
+ * that supports the product.
+ *
+ * @return boolean|array Products bundle list.
+ */
+ public static function is_upgradable_by_bundle() {
+ return array( 'security' );
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return ''; // stay in My Jetpack page or continue the purchase flow if needed.
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ // check standalone first
+ if ( static::is_standalone_plugin_active() ) {
+ return admin_url( 'admin.php?page=jetpack-backup' );
+ // otherwise, check for the main Jetpack plugin
+ } elseif ( static::is_jetpack_plugin_active() ) {
+ return Redirect::get_url( 'my-jetpack-manage-backup' );
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-boost.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-boost.php
new file mode 100644
index 00000000..a9f9b0f5
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-boost.php
@@ -0,0 +1,337 @@
+ __( 'Optimize CSS Loading', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Move important styling information to the start of the page, which helps pages display your content sooner, so your users don’t have to wait for the entire page to load. Commonly referred to as Critical CSS.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Must be done manually', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'title' => __( 'Manual Critical CSS regeneration', 'jetpack-my-jetpack' ),
+ 'content' => __(
+ '
To enhance the speed of your site, with this plan you will need to optimize CSS by using the Manual Critical CSS generation feature whenever you:
+
+
Make theme changes.
+
Write a new post/page.
+
Edit a post/page.
+
Activate, deactivate, or update plugins that impact your site layout or HTML structure.
+
Change settings of plugins that impact your site layout or HTML structure.
+
Upgrade your WordPress version if the new release includes core CSS changes.
It’s essential to regenerate Critical CSS to optimize your site speed whenever your HTML or CSS structure changes. Being on top of this can be tedious and time-consuming.
+
Boost’s cloud service can automatically detect when your site needs the Critical CSS regenerated, and perform this function behind the scenes without requiring you to monitor it manually.
Paid customers get dedicated email support from our world-class Happiness Engineers to help with any issue.
+
All other questions are handled by our team as quickly as we are able to go through the WordPress support forum.
',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the product princing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ return array(
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'available' => true,
+ 'is_free' => true,
+ ),
+ self::UPGRADED_TIER_SLUG => array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => self::UPGRADED_TIER_PRODUCT_SLUG,
+ ),
+ Wpcom_Products::get_product_pricing( self::UPGRADED_TIER_PRODUCT_SLUG )
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ // Boost is available as standalone bundle and as part of the Complete plan.
+ if ( strpos( $purchase->product_slug, 'jetpack_boost' ) !== false || str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=jetpack-boost' );
+ }
+
+ /**
+ * Activates the product by installing and activating its plugin
+ *
+ * @param bool|WP_Error $current_result Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return boolean|WP_Error
+ */
+ public static function do_product_specific_activation( $current_result ) {
+
+ $product_activation = parent::do_product_specific_activation( $current_result );
+
+ if ( is_wp_error( $product_activation ) && 'module_activation_failed' === $product_activation->get_error_code() ) {
+ // A bundle is not a module. There's nothing in the plugin to be activated, so it's ok to fail to activate the module.
+ $product_activation = true;
+ }
+
+ // We just "got started" in My Jetpack, so skip the in-plugin experience.
+ update_option( 'jb_get_started', false );
+
+ return $product_activation;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-creator.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-creator.php
new file mode 100644
index 00000000..1dc5ac1d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-creator.php
@@ -0,0 +1,350 @@
+ __( 'Import subscribers', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Import a CSV file of your existing subscribers to be sent your Newsletter.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( '100 subscribers', 'jetpack-my-jetpack' ),
+ ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Unlimited subscribers', 'jetpack-my-jetpack' ),
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Transaction fees', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ '
Fees are only collected when you accept payments.
+
Fees are based on the Jetpack plan you have and are calculated as a percentage of your revenue from 10% on the Free plan to 2% on the Creator plan (plus Stripe fees).
',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( '10%', 'jetpack-my-jetpack' ),
+ ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( '2%', 'jetpack-my-jetpack' ),
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Jetpack Blocks', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Jetpack has over 40 Gutenberg blocks to help you with your content creation, such as displaying your podcasts, showing different content to repeat visitors, creating contact forms and many more.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Paid content gating', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Lock your content behind a paid content block. To access the content, readers will need to pay a one-time fee or a recurring subscription.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Paywall access', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Add a Paywall to your content which lets your visitors read a section of your content before being asked to subscribe to continue reading.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Newsletter', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Start a Newsletter by sending your content as an email newsletter direct to your fans email inboxes.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Pay with PayPal', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ 'Accept payment with PayPal for simple payments like eBooks, courses and more.',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'WordAds', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'content' => __(
+ '
WordAds adds advertisements to your website. Start earning from your website traffic.
+
Over 50 internet advertisers — including Google AdSense & Adx, AppNexus, Amazon A9, AOL Marketplace, Yahoo, Criteo, and more — bid to display ads in WordAds spots.
Paid customers get dedicated email support from our world-class Happiness Engineers to help with any issue.
+
All other questions are handled by our team as quickly as we are able to go through the WordPress support forum.
',
+ 'jetpack-my-jetpack'
+ ),
+ ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the product princing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ return array(
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'available' => true,
+ 'is_free' => true,
+ ),
+ self::UPGRADED_TIER_SLUG => array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => self::UPGRADED_TIER_PRODUCT_SLUG,
+ ),
+ Wpcom_Products::get_product_pricing( self::UPGRADED_TIER_PRODUCT_SLUG )
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=jetpack#/settings?term=creator' );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_creator_yearly';
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_biyearly_product_slug() {
+ return 'jetpack_creator_bi_yearly';
+ }
+
+ /**
+ * Get the WPCOM monthly product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_monthly_product_slug() {
+ return 'jetpack_creator_monthly';
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ // Creator is available as standalone bundle and as part of the Complete plan.
+ if ( strpos( $purchase->product_slug, 'jetpack_creator' ) !== false || str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the product can be upgraded - i.e. this shows the /#add-creator interstitial
+ *
+ * @return boolean
+ */
+ public static function is_upgradable() {
+ return ! self::has_paid_plan_for_product();
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-crm.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-crm.php
new file mode 100644
index 00000000..27d9197c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-crm.php
@@ -0,0 +1,175 @@
+ true,
+ 'is_free' => false,
+ 'full_price' => 132,
+ 'discount_price' => 132,
+ 'is_introductory_offer' => false,
+ 'product_term' => 'year',
+ 'introductory_offer' => null,
+ // CRM is only sold in USD
+ 'currency_code' => 'USD',
+ );
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return admin_url( 'admin.php?page=zerobscrm-plugin' ); // Welcome page.
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=zerobscrm-dash' );
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ * CRM is available as part of Jetpack Complete
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+
+ // TODO: check if CRM has a separate plan
+
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if ( str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return true;
+ }
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-extras.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-extras.php
new file mode 100644
index 00000000..51f02232
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-extras.php
@@ -0,0 +1,140 @@
+ true,
+ 'is_free' => true,
+ );
+ }
+
+ /**
+ * Checks whether the Product is active.
+ * If Jetpack plugin is active, then Extras will be inactive.
+ *
+ * @return boolean
+ */
+ public static function is_active() {
+ return static::is_jetpack_plugin_active();
+ }
+
+ /**
+ * Checks whether the plugin is installed
+ * If Jetpack plugin is installed, then Extras will be inactive.
+ *
+ * @return boolean
+ */
+ public static function is_plugin_installed() {
+ return static::is_jetpack_plugin_installed();
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=jetpack' );
+ }
+
+ /**
+ * Activates the Jetpack plugin
+ *
+ * @return null|WP_Error Null on success, WP_Error on invalid file.
+ */
+ public static function activate_plugin() {
+ return activate_plugin( static::get_installed_plugin_filename( 'jetpack' ) );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-hybrid-product.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-hybrid-product.php
new file mode 100644
index 00000000..0fb93d67
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-hybrid-product.php
@@ -0,0 +1,153 @@
+get_error_code() ) {
+ $product_activation = Plugins_Installer::install_plugin( self::JETPACK_PLUGIN_SLUG );
+ if ( ! is_wp_error( $product_activation ) ) {
+ $product_activation = static::activate_plugin();
+ }
+ }
+ if ( is_wp_error( $product_activation ) ) {
+ return $product_activation;
+ }
+ }
+
+ if ( ! empty( static::$module_name ) ) {
+ // Only activate the module if the plan supports it
+ // We don't want to throw an error for a missing plan here since we try activation before purchase
+ if ( static::$requires_plan && ! static::has_any_plan_for_product() ) {
+ return true;
+ }
+
+ $module_activation = ( new Modules() )->activate( static::$module_name, false, false );
+
+ if ( ! $module_activation ) {
+ return new WP_Error( 'module_activation_failed', __( 'Error activating Jetpack module', 'jetpack-my-jetpack' ) );
+ }
+
+ return $module_activation;
+ }
+
+ return true;
+ }
+
+ /**
+ * Install and activate the standalone plugin in the case it's missing.
+ *
+ * @return boolean|WP_Error
+ */
+ public static function install_and_activate_standalone() {
+ $result = parent::install_and_activate_standalone();
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ /**
+ * Activate the module as well, if the user has a plan
+ * or the product does not require a plan to work
+ */
+ if ( static::has_any_plan_for_product() && isset( static::$module_name ) ) {
+ $module_activation = ( new Modules() )->activate( static::$module_name, false, false );
+
+ if ( ! $module_activation ) {
+ return new WP_Error( 'module_activation_failed', __( 'Error activating Jetpack module', 'jetpack-my-jetpack' ) );
+ }
+ }
+
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-jetpack-ai.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-jetpack-ai.php
new file mode 100644
index 00000000..dc3ddce2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-jetpack-ai.php
@@ -0,0 +1,661 @@
+ __( 'Number of requests', 'jetpack-my-jetpack' ),
+ 'info' => array(
+ 'title' => __( 'Requests', 'jetpack-my-jetpack' ),
+ 'content' => __( 'Increase your monthly request limit. Upgrade now and have the option to further increase your requests with additional upgrades.', 'jetpack-my-jetpack' ),
+ ),
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => $current_description,
+ ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => $next_description,
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Generate and edit content', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Build forms from prompts', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Get feedback on posts', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Generate featured images', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the current usage tier
+ *
+ * @return int
+ */
+ public static function get_current_usage_tier() {
+ if ( ! self::is_site_connected() ) {
+ return 0;
+ }
+
+ $info = self::get_ai_assistant_feature();
+
+ // Bail early if it's not possible to fetch the feature data.
+ if ( is_wp_error( $info ) ) {
+ return 0;
+ }
+
+ $current_tier = isset( $info['current-tier']['value'] ) ? $info['current-tier']['value'] : null;
+
+ return $current_tier;
+ }
+
+ /**
+ * Get the next usage tier
+ *
+ * @return int
+ */
+ public static function get_next_usage_tier() {
+ if ( ! self::is_site_connected() || ! self::has_paid_plan_for_product() ) {
+ // without site connection we can't know if tiers are enabled or not,
+ // hence we can't know if the next tier is 100 or 1 (unlimited).
+ return 100;
+ }
+
+ $info = self::get_ai_assistant_feature();
+
+ // Bail early if it's not possible to fetch the feature data or if it's included in a plan.
+ if ( is_wp_error( $info ) || empty( $info ) ) {
+ return null;
+ }
+
+ // Trust the next tier provided by the feature data.
+ $next_tier = isset( $info['next-tier']['value'] ) ? $info['next-tier']['value'] : null;
+
+ return $next_tier;
+ }
+
+ /**
+ * Get the internationalized product description
+ *
+ * @return string
+ */
+ public static function get_description() {
+ return __( 'Enhance your writing and productivity with our AI suite', 'jetpack-my-jetpack' );
+ }
+
+ /**
+ * Get the internationalized usage tier long description by tier
+ *
+ * @param int $tier The usage tier.
+ * @return string
+ */
+ public static function get_long_description_by_usage_tier( $tier ) {
+ $long_descriptions = array(
+ 1 => __( 'Jetpack AI Assistant brings the power of AI right into your WordPress editor, letting your content creation soar to new heights.', 'jetpack-my-jetpack' ),
+ 100 => __( 'The most advanced AI technology Jetpack has to offer.', 'jetpack-my-jetpack' ),
+ );
+ $tiered_description = __( 'Upgrade and increase the amount of your available monthly requests to continue using the most advanced AI technology Jetpack has to offer.', 'jetpack-my-jetpack' );
+
+ return isset( $long_descriptions[ $tier ] ) ? $long_descriptions[ $tier ] : $tiered_description;
+ }
+
+ /**
+ * Get the internationalized product long description
+ *
+ * @return string
+ */
+ public static function get_long_description() {
+ $next_tier = self::get_next_usage_tier();
+
+ return self::get_long_description_by_usage_tier( $next_tier );
+ }
+
+ /**
+ * Get the internationalized usage tier features by tier
+ *
+ * @param int $tier The usage tier.
+ * @return string
+ */
+ public static function get_features_by_usage_tier( $tier ) {
+ $is_tier_plan = $tier && intval( $tier ) > 1;
+
+ if ( $tier === 100 && ( ! self::is_site_connected() || ! self::has_paid_plan_for_product() ) ) {
+ // in these cases, get_next_usage_tier() will return 100
+ // 100 is fine as default when tiered plans are enabled, but not otherwise
+ $is_tier_plan = false;
+ }
+
+ $features = array(
+ __( 'Generate text, tables, lists, and forms', 'jetpack-my-jetpack' ),
+ __( 'Easily refine content to your liking', 'jetpack-my-jetpack' ),
+ __( 'Make your content easier to read', 'jetpack-my-jetpack' ),
+ __( 'Generate images with one-click', 'jetpack-my-jetpack' ),
+ __( 'Optimize your titles for better performance', 'jetpack-my-jetpack' ),
+ __( 'Priority support', 'jetpack-my-jetpack' ),
+ );
+
+ $tiered_features = array(
+ __( 'Prompt based content generation', 'jetpack-my-jetpack' ),
+ __( 'Generate text, tables, and lists', 'jetpack-my-jetpack' ),
+ __( 'Adaptive tone adjustment', 'jetpack-my-jetpack' ),
+ __( 'Superior spelling and grammar correction', 'jetpack-my-jetpack' ),
+ __( 'Title & summary generation', 'jetpack-my-jetpack' ),
+ __( 'Priority support', 'jetpack-my-jetpack' ),
+ /* translators: %d is the number of requests. */
+ sprintf( __( 'Up to %d requests per month', 'jetpack-my-jetpack' ), $tier ),
+ );
+
+ return $is_tier_plan ? $tiered_features : $features;
+ }
+
+ /**
+ * Get the internationalized features list
+ *
+ * @return array Jetpack AI features list
+ */
+ public static function get_features() {
+ $next_tier = self::get_next_usage_tier();
+
+ return self::get_features_by_usage_tier( $next_tier );
+ }
+
+ /**
+ * Get the product pricing details by tier
+ *
+ * @param int|null $tier The usage tier.
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui_by_usage_tier( $tier ) {
+ if ( $tier === null ) {
+ return array();
+ }
+
+ $product = Wpcom_Products::get_product( static::get_wpcom_product_slug() );
+
+ if ( empty( $product ) ) {
+ return array();
+ }
+
+ $tier_plans_enabled = self::are_tier_plans_enabled();
+
+ /*
+ * when tiers are enabled and the price tier list is empty,
+ * we may need to renew the cache for the product data so
+ * we get the new price tier list.
+ *
+ * if the list is still empty after the fresh data, we will
+ * default to empty pricing (by returning an empty array).
+ */
+ if ( empty( $product->price_tier_list ) && $tier_plans_enabled ) {
+ $product = Wpcom_Products::get_product( static::get_wpcom_product_slug(), true );
+ }
+
+ // get the base pricing for the unlimited plan, for compatibility
+ $base_pricing = Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() );
+
+ $price_tier_list = $product->price_tier_list;
+ $yearly_prices = array();
+
+ foreach ( $price_tier_list as $price_tier ) {
+ if ( isset( $price_tier->maximum_units ) && isset( $price_tier->maximum_price ) ) {
+ // The prices are in cents
+ $yearly_prices[ $price_tier->maximum_units ] = $price_tier->maximum_price / 100;
+ }
+ }
+
+ // add the base pricing to the list
+ $prices = array( 1 => $base_pricing );
+
+ foreach ( $yearly_prices as $units => $price ) {
+ $prices[ $units ] = array_merge(
+ $base_pricing,
+ array(
+ 'full_price' => $price,
+ 'discount_price' => $price,
+ 'is_introductory_offer' => false,
+ 'introductory_offer' => null,
+ )
+ );
+ }
+
+ return isset( $prices[ $tier ] ) ? $prices[ $tier ] : array();
+ }
+
+ /**
+ * Get the product pricing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ // no tiers
+ if ( ! self::are_tier_plans_enabled() ) {
+ return array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ // hardcoding 1 as next tier if tiers are not enabled
+ self::get_pricing_for_ui_by_usage_tier( 1 )
+ );
+ }
+
+ $next_tier = self::get_next_usage_tier();
+ $current_tier = self::get_current_usage_tier();
+ $current_call_to_action = $current_tier === 0
+ ? __( 'Continue for free', 'jetpack-my-jetpack' )
+ : __( 'I\'m fine with my plan, thanks', 'jetpack-my-jetpack' );
+ $next_call_to_action = $next_tier === null
+ ? __( 'Contact Us', 'jetpack-my-jetpack' )
+ : __( 'Upgrade', 'jetpack-my-jetpack' );
+
+ return array(
+ 'tiers' => array(
+ self::CURRENT_TIER_SLUG => array_merge(
+ self::get_pricing_for_ui_by_usage_tier( $current_tier ),
+ array(
+ 'available' => true,
+ 'is_free' => true,
+ 'call_to_action' => $current_call_to_action,
+ )
+ ),
+ self::UPGRADED_TIER_SLUG => array_merge(
+ self::get_pricing_for_ui_by_usage_tier( $next_tier ),
+ array(
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ 'quantity' => $next_tier,
+ 'call_to_action' => $next_call_to_action,
+ )
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_ai_yearly';
+ }
+
+ /**
+ * Get the WPCOM monthly product slug used to make the purchase
+ *
+ * @return string
+ */
+ public static function get_wpcom_monthly_product_slug() {
+ return 'jetpack_ai_monthly';
+ }
+
+ /**
+ * Get the WPCOM bi-yearly product slug used to make the purchase
+ *
+ * @return string
+ */
+ public static function get_wpcom_bi_yearly_product_slug() {
+ return 'jetpack_ai_bi_yearly';
+ }
+
+ /**
+ * Checks whether the site has a paid plan for this product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if ( str_contains( $purchase->product_slug, 'jetpack_ai' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the product can be upgraded to a different product.
+ *
+ * @return boolean
+ */
+ public static function is_upgradable() {
+ $has_ai_feature = static::does_site_have_feature( 'ai-assistant' );
+ $tier_plans_enabled = self::are_tier_plans_enabled();
+ $current_tier = self::get_current_usage_tier();
+
+ if ( $has_ai_feature && ! $tier_plans_enabled && $current_tier >= 1 ) {
+ return false;
+ }
+
+ $next_tier = self::get_next_usage_tier();
+
+ // The check below is debatable, not having the feature should not flag as not upgradable.
+ // If user is free (tier = 0), not unlimited (tier = 1) and has a next tier, then it's upgradable.
+ if ( $current_tier !== null && $current_tier !== 1 && $next_tier ) {
+ return true;
+ }
+
+ // Mark as not upgradable if user is on unlimited tier or does not have any plan.
+ if ( ! $has_ai_feature || null === $current_tier || 1 === $current_tier ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return 'admin.php?page=my-jetpack#/jetpack-ai';
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return '/wp-admin/admin.php?page=my-jetpack#/jetpack-ai';
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return '/wp-admin/admin.php?page=my-jetpack#/jetpack-ai';
+ }
+
+ /**
+ * Checks whether the plugin is installed
+ *
+ * @return boolean
+ */
+ public static function is_plugin_installed() {
+ return self::is_jetpack_plugin_installed();
+ }
+
+ /**
+ * Checks whether the plugin is active
+ *
+ * @return boolean
+ */
+ public static function is_plugin_active() {
+ return (bool) static::is_jetpack_plugin_active();
+ }
+
+ /**
+ * Get data about the AI Assistant feature
+ *
+ * @return array
+ */
+ public static function get_ai_assistant_feature() {
+ // Bail early if the plugin is not active.
+ if ( ! self::is_jetpack_plugin_installed() ) {
+ return array();
+ }
+
+ // Check if the global constant is defined.
+ if ( ! defined( 'JETPACK__PLUGIN_DIR' ) ) {
+ return array();
+ }
+
+ // Bail early if the site is not connected.
+ if ( ! self::is_site_connected() ) {
+ return array();
+ }
+
+ // Check if class exists. If not, try to require it once.
+ if ( ! class_exists( 'Jetpack_AI_Helper' ) ) {
+ $class_file_path = JETPACK__PLUGIN_DIR . '_inc/lib/class-jetpack-ai-helper.php';
+
+ // Check whether the file exists
+ if ( ! file_exists( $class_file_path ) ) {
+ return array();
+ }
+
+ require_once $class_file_path;
+ }
+
+ return \Jetpack_AI_Helper::get_ai_assistance_feature();
+ }
+
+ /**
+ * Get the AI Assistant tiered plans status
+ *
+ * @return boolean
+ */
+ public static function are_tier_plans_enabled() {
+ $info = self::get_ai_assistant_feature();
+ if ( is_wp_error( $info ) ) {
+ // this is another faulty default value, we'll assume disabled while
+ // production is enabled
+ return false;
+ }
+
+ if ( ! empty( $info ) && isset( $info['tier-plans-enabled'] ) ) {
+ return boolval( $info['tier-plans-enabled'] );
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the site is connected to WordPress.com.
+ *
+ * @return boolean
+ */
+ private static function is_site_connected() {
+ return ( new Connection_Manager() )->is_connected();
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * NOTE: this method is the only thing that resembles an initialization for the product.
+ *
+ * @return void
+ */
+ public static function extend_plugin_action_links() {
+ add_action( 'admin_enqueue_scripts', array( static::class, 'admin_enqueue_scripts' ) );
+ add_filter( 'default_content', array( static::class, 'add_ai_block' ), 10, 2 );
+ }
+
+ /**
+ * Enqueue the AI Assistant script
+ *
+ * The script is just a global variable used for the nonce, needed for the create post link.
+ *
+ * @return void
+ */
+ public static function admin_enqueue_scripts() {
+ wp_register_script(
+ 'my_jetpack_ai_app',
+ false,
+ array(),
+ Initializer::PACKAGE_VERSION,
+ array( 'in_footer' => true )
+ );
+ wp_localize_script(
+ 'my_jetpack_ai_app',
+ 'jetpackAi',
+ array(
+ 'nonce' => wp_create_nonce( 'ai-assistant-content-nonce' ),
+ )
+ );
+ wp_enqueue_script( 'my_jetpack_ai_app' );
+ }
+
+ /**
+ * Add AI block to the post content
+ *
+ * Used only from the link on the product page, the filter will insert an AI Assistant block in the post content.
+ *
+ * @param string $content The post content.
+ * @param WP_Post $post The post object.
+ * @return string
+ */
+ public static function add_ai_block( $content, WP_Post $post ) {
+ if ( isset( $_GET['use_ai_block'] ) && isset( $_GET['_wpnonce'] )
+ && wp_verify_nonce( sanitize_text_field( wp_unslash( $_GET['_wpnonce'] ) ), 'ai-assistant-content-nonce' )
+ && current_user_can( 'edit_post', $post->ID )
+ && '' === $content
+ ) {
+ return '';
+ }
+ return $content;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-module-product.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-module-product.php
new file mode 100644
index 00000000..5472cfec
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-module-product.php
@@ -0,0 +1,133 @@
+ static::$slug,
+ 'plugin_slug' => static::$plugin_slug,
+ 'name' => static::get_name(),
+ 'title' => static::get_title(),
+ 'description' => static::get_description(),
+ 'long_description' => static::get_long_description(),
+ 'tiers' => static::get_tiers(),
+ 'features' => static::get_features(),
+ 'features_by_tier' => static::get_features_by_tier(),
+ 'disclaimers' => static::get_disclaimers(),
+ 'status' => static::get_status(),
+ 'pricing_for_ui' => static::get_pricing_for_ui(),
+ 'is_bundle' => static::is_bundle_product(),
+ 'is_plugin_active' => static::is_plugin_active(),
+ 'is_upgradable' => static::is_upgradable(),
+ 'is_upgradable_by_bundle' => static::is_upgradable_by_bundle(),
+ 'supported_products' => static::get_supported_products(),
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ 'requires_user_connection' => static::$requires_user_connection,
+ 'has_any_plan_for_product' => static::has_any_plan_for_product(),
+ 'has_free_plan_for_product' => static::has_free_plan_for_product(),
+ 'has_paid_plan_for_product' => static::has_paid_plan_for_product(),
+ 'has_free_offering' => static::$has_free_offering,
+ 'manage_url' => static::get_manage_url(),
+ 'purchase_url' => static::get_purchase_url(),
+ 'post_activation_url' => static::get_post_activation_url(),
+ 'post_activation_urls_by_feature' => static::get_manage_urls_by_feature(),
+ 'standalone_plugin_info' => static::get_standalone_info(),
+ 'class' => static::class,
+ 'post_checkout_url' => static::get_post_checkout_url(),
+ 'post_checkout_urls_by_feature' => static::get_post_checkout_urls_by_feature(),
+ );
+ }
+
+ /**
+ * Collect the site's active features
+ *
+ * @return WP_Error|array
+ */
+ private static function get_site_features_from_wpcom() {
+ static $features = null;
+
+ if ( $features !== null ) {
+ return $features;
+ }
+
+ $site_id = Jetpack_Options::get_option( 'id' );
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/features', $site_id ), '1.1' );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $features = new WP_Error( 'site_features_fetch_failed' );
+ return $features;
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $feature_return = json_decode( $body );
+ $features = $feature_return->active;
+
+ return $features;
+ }
+
+ /**
+ * Check to see if the site has a feature
+ * This will check the features provided by the site plans and products (including free ones)
+ *
+ * @param string $feature - the feature to check for.
+ * @return bool
+ */
+ public static function does_site_have_feature( $feature ) {
+ if ( ! $feature ) {
+ return false;
+ }
+
+ $features = self::get_site_features_from_wpcom();
+ if ( is_wp_error( $features ) ) {
+ return false;
+ }
+
+ return in_array( $feature, $features, true );
+ }
+
+ /**
+ * Get the product name
+ *
+ * @return string
+ */
+ abstract public static function get_name();
+
+ /**
+ * Get the product title
+ *
+ * @return string
+ */
+ abstract public static function get_title();
+
+ /**
+ * Get the internationalized product description
+ *
+ * @return string
+ */
+ abstract public static function get_description();
+
+ /**
+ * Get the internationalized product long description
+ *
+ * @return string
+ */
+ abstract public static function get_long_description();
+
+ /**
+ * Get the tiers for the product
+ *
+ * @return boolean|string[] The slugs of the tiers (i.e. [ "free", "basic", "advanced" ]), or False if the product has no tiers.
+ */
+ public static function get_tiers() {
+ return array();
+ }
+
+ /**
+ * Get the internationalized features list
+ *
+ * @return array
+ */
+ abstract public static function get_features();
+
+ /**
+ * Get the internationalized comparison of features grouped by each tier
+ *
+ * @return array
+ */
+ public static function get_features_by_tier() {
+ return array();
+ }
+
+ /**
+ * Get the product pricing
+ *
+ * @return array
+ */
+ abstract public static function get_pricing_for_ui();
+
+ /**
+ * Get the URL where the user can purchase the product iff it doesn't have an interstitial page in My Jetpack.
+ *
+ * @return ?string
+ */
+ public static function get_purchase_url() {
+ // Declare as concrete method as most Jetpack products use an interstitial page within My Jetpack.
+ return null;
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ abstract public static function get_manage_url();
+
+ /**
+ * Get the URL where the user manages the product for each product feature
+ *
+ * @return ?array
+ */
+ public static function get_manage_urls_by_feature() {
+ return null;
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return static::get_manage_url();
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return null;
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout for each product feature
+ *
+ * @return ?array
+ */
+ public static function get_post_checkout_urls_by_feature() {
+ return null;
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return null;
+ }
+
+ /**
+ * Get the disclaimers corresponding to a feature
+ *
+ * @return ?array
+ */
+ public static function get_disclaimers() {
+ return array();
+ }
+
+ /**
+ * Get the standalone plugin related info
+ *
+ * @return array
+ */
+ public static function get_standalone_info() {
+ $is_standalone_installed = static::$has_standalone_plugin && self::is_plugin_installed();
+ $is_standalone_active = static::$has_standalone_plugin && self::is_plugin_active();
+
+ return array(
+ 'has_standalone_plugin' => static::$has_standalone_plugin,
+ 'is_standalone_installed' => $is_standalone_installed,
+ 'is_standalone_active' => $is_standalone_active,
+ );
+ }
+
+ /**
+ * Checks whether the site has a paid plan for the product
+ * This ignores free products, it only checks if there is a purchase that supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ return false;
+ }
+
+ /**
+ * Checks whether the site has a free plan for the product
+ * Note, this should not return true if a product does not have a WPCOM plan (ex: search free, Akismet Free, stats free)
+ *
+ * @return false
+ */
+ public static function has_free_plan_for_product() {
+ return false;
+ }
+
+ /**
+ * Checks whether the site has any WPCOM plan for a product (paid or free)
+ *
+ * @return bool
+ */
+ public static function has_any_plan_for_product() {
+ return static::has_paid_plan_for_product() || static::has_free_plan_for_product();
+ }
+
+ /**
+ * Checks whether the product supports trial or not
+ *
+ * Returns true if it supports. Return false otherwise.
+ *
+ * Free products will always return false.
+ *
+ * @return boolean
+ */
+ public static function has_trial_support() {
+ return false;
+ }
+
+ /**
+ * Checks whether the product can be upgraded to a different product.
+ *
+ * @return boolean
+ */
+ public static function is_upgradable() {
+ return false;
+ }
+
+ /**
+ * Checks whether product is a bundle.
+ *
+ * @return boolean True if product is a bundle. Otherwise, False.
+ */
+ public static function is_bundle_product() {
+ return false;
+ }
+
+ /**
+ * Check whether the product is upgradable
+ * by a product bundle.
+ *
+ * @return boolean|array Bundles list or False if not upgradable by a bundle.
+ */
+ public static function is_upgradable_by_bundle() {
+ return false;
+ }
+
+ /**
+ * In case it's a bundle product,
+ * return all the products it contains.
+ * Empty array by default.
+ *
+ * @return array Product slugs
+ */
+ public static function get_supported_products() {
+ return array();
+ }
+
+ /**
+ * Determine if the product is owned or not
+ * An owned product is defined as a product that is any of the following
+ * - Active
+ * - Has historically been active
+ * - The user has a plan that includes the product
+ * - The user has the standalone plugin for the product installed
+ *
+ * @return boolean
+ */
+ public static function is_owned() {
+ $historically_active_modules = Jetpack_Options::get_option( 'historically_active_modules', array() );
+ $standalone_info = static::get_standalone_info();
+ if ( ( static::is_active() && Jetpack_Options::get_option( 'id' ) ) ||
+ $standalone_info['is_standalone_installed'] ||
+ in_array( static::$slug, $historically_active_modules, true ) ||
+ static::has_any_plan_for_product()
+ ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Undocumented function
+ *
+ * @return string
+ */
+ public static function get_status() {
+ if ( ! static::is_plugin_installed() ) {
+ $status = Products::STATUS_PLUGIN_ABSENT;
+ if ( static::has_paid_plan_for_product() ) {
+ $status = Products::STATUS_PLUGIN_ABSENT_WITH_PLAN;
+ }
+ } elseif ( static::is_active() ) {
+ $status = Products::STATUS_ACTIVE;
+ // We only consider missing site & user connection an error when the Product is active.
+ if ( static::$requires_site_connection && ! ( new Connection_Manager() )->is_connected() ) {
+ // Site has never been connected before
+ if ( ! Jetpack_Options::get_option( 'id' ) && ! static::is_owned() ) {
+ $status = Products::STATUS_NEEDS_FIRST_SITE_CONNECTION;
+ } else {
+ $status = Products::STATUS_SITE_CONNECTION_ERROR;
+ }
+ } elseif ( static::$requires_user_connection && ! ( new Connection_Manager() )->has_connected_owner() ) {
+ $status = Products::STATUS_USER_CONNECTION_ERROR;
+ } elseif ( static::is_upgradable() ) {
+ $status = Products::STATUS_CAN_UPGRADE;
+ }
+ // Check specifically for inactive modules, which will prevent a product from being active
+ } elseif ( static::$module_name && ! static::is_module_active() ) {
+ $status = Products::STATUS_MODULE_DISABLED;
+ // If there is not a plan associated with the disabled module, encourage a plan first
+ // Getting a plan set up should help resolve any connection issues
+ // However if the standalone plugin for this product is active, then we will defer to showing errors that prevent the module from being active
+ // This is because if a standalone plugin is installed, we expect the product to not show as "inactive" on My Jetpack
+ if ( static::$requires_plan || ( ! static::has_any_plan_for_product() && static::$has_standalone_plugin && ! self::is_plugin_active() ) ) {
+ $status = static::is_owned() && static::$has_free_offering && ! static::$requires_plan ? Products::STATUS_NEEDS_ACTIVATION : Products::STATUS_NEEDS_PLAN;
+ } elseif ( static::$requires_site_connection && ! ( new Connection_Manager() )->is_connected() ) {
+ // Site has never been connected before and product is not owned
+ if ( ! Jetpack_Options::get_option( 'id' ) && ! static::is_owned() ) {
+ $status = Products::STATUS_NEEDS_FIRST_SITE_CONNECTION;
+ } else {
+ $status = Products::STATUS_SITE_CONNECTION_ERROR;
+ }
+ } elseif ( static::$requires_user_connection && ! ( new Connection_Manager() )->has_connected_owner() ) {
+ $status = Products::STATUS_USER_CONNECTION_ERROR;
+ }
+ } elseif ( ! static::has_any_plan_for_product() ) {
+ $status = static::is_owned() && static::$has_free_offering && ! static::$requires_plan ? Products::STATUS_NEEDS_ACTIVATION : Products::STATUS_NEEDS_PLAN;
+ } else {
+ $status = Products::STATUS_INACTIVE;
+ }
+ return $status;
+ }
+
+ /**
+ * Checks whether the Product is active
+ *
+ * @return boolean
+ */
+ public static function is_active() {
+ return static::is_plugin_active() && ( static::has_any_plan_for_product() || ( ! static::$requires_plan && static::$has_free_offering ) );
+ }
+
+ /**
+ * Checks whether the plugin is installed
+ *
+ * @return boolean
+ */
+ public static function is_plugin_installed() {
+ return (bool) static::get_installed_plugin_filename();
+ }
+
+ /**
+ * Checks whether the plugin is active
+ *
+ * @return boolean
+ */
+ public static function is_plugin_active() {
+ return Plugins_Installer::is_plugin_active( static::get_installed_plugin_filename() );
+ }
+
+ /**
+ * Checks whether the Jetpack plugin is installed
+ *
+ * @return boolean
+ */
+ public static function is_jetpack_plugin_installed() {
+ return (bool) static::get_installed_plugin_filename( 'jetpack' );
+ }
+
+ /**
+ * Checks whether the Jetpack plugin is active
+ *
+ * @return boolean
+ */
+ public static function is_jetpack_plugin_active() {
+ return Plugins_Installer::is_plugin_active( static::get_installed_plugin_filename( 'jetpack' ) );
+ }
+
+ /**
+ * Checks whether the Jetpack module is active only if a module_name is defined
+ *
+ * @return bool
+ */
+ public static function is_module_active() {
+ if ( static::$module_name ) {
+ return ( new Modules() )->is_active( static::$module_name );
+ }
+ return true;
+ }
+
+ /**
+ * Activates the plugin
+ *
+ * @return null|WP_Error Null on success, WP_Error on invalid file.
+ */
+ public static function activate_plugin() {
+ return activate_plugin( static::get_installed_plugin_filename() );
+ }
+
+ /**
+ * Perform the top level activation routines, which is installing and activating the required plugin
+ *
+ * @return bool|WP_Error
+ */
+ private static function do_activation() {
+ if ( static::is_active() ) {
+ return true;
+ }
+
+ // Default to installing the standalone plugin for the product
+ if ( ! self::is_plugin_installed() ) {
+ $installed = Plugins_Installer::install_plugin( static::get_plugin_slug() );
+ if ( is_wp_error( $installed ) ) {
+ return $installed;
+ }
+ }
+
+ if ( ! current_user_can( 'activate_plugins' ) ) {
+ return new WP_Error( 'not_allowed', __( 'You are not allowed to activate plugins on this site.', 'jetpack-my-jetpack' ) );
+ }
+
+ $result = static::activate_plugin();
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ return true;
+ }
+
+ /**
+ * Activates the product by installing and activating its plugin
+ *
+ * @return boolean|WP_Error
+ */
+ final public static function activate() {
+
+ $result = self::do_activation();
+
+ $result = static::do_product_specific_activation( $result );
+
+ $product_slug = static::$slug;
+
+ /**
+ * Fires after My Jetpack activates a product and filters the result
+ * Use this filter to run additional routines for a product activation on stand-alone plugins
+ *
+ * @param bool|WP_Error $result The result of the previous steps of activation.
+ */
+ $result = apply_filters( "my_jetpack_{$product_slug}_activation", $result );
+
+ return $result;
+ }
+
+ /**
+ * Override this method to perform product specific activation routines.
+ *
+ * @param bool|WP_Error $current_result Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return bool|WP_Error
+ */
+ public static function do_product_specific_activation( $current_result ) {
+ return $current_result;
+ }
+
+ /**
+ * Deactivate the product
+ *
+ * @return boolean
+ */
+ public static function deactivate() {
+ deactivate_plugins( static::get_installed_plugin_filename() );
+ return true;
+ }
+
+ /**
+ * Returns filtered Jetpack plugin actions links.
+ *
+ * @param array $actions - Jetpack plugin action links.
+ * @return array Filtered Jetpack plugin actions links.
+ */
+ public static function get_plugin_actions_links( $actions ) {
+ // My Jetpack action link.
+ $my_jetpack_home_link = array(
+ 'jetpack-home' => sprintf(
+ '%2$s',
+ admin_url( 'admin.php?page=my-jetpack' ),
+ __( 'My Jetpack', 'jetpack-my-jetpack' ),
+ __( 'My Jetpack dashboard', 'jetpack-my-jetpack' )
+ ),
+ );
+
+ // Otherwise, add it to the beginning of the array.
+ return array_merge( $my_jetpack_home_link, $actions );
+ }
+
+ /**
+ * Filter the action links for the plugins specified.
+ *
+ * @param string|string[] $filenames The plugin filename(s) to filter the action links for.
+ */
+ private static function filter_action_links( $filenames ) {
+ foreach ( $filenames as $filename ) {
+ $hook = 'plugin_action_links_' . $filename;
+ $callback = array( static::class, 'get_plugin_actions_links' );
+ if ( ! has_filter( $hook, $callback ) ) {
+ add_filter( $hook, $callback, 20, 2 );
+ }
+ }
+ }
+
+ /**
+ * Extend the plugin action links.
+ */
+ public static function extend_plugin_action_links() {
+ $filenames = static::get_plugin_filename();
+ if ( ! is_array( $filenames ) ) {
+ $filenames = array( $filenames );
+ }
+
+ self::filter_action_links( $filenames );
+ }
+
+ /**
+ * Extend the Jetpack plugin action links.
+ */
+ public static function extend_core_plugin_action_links() {
+ $filenames = self::JETPACK_PLUGIN_FILENAME;
+
+ self::filter_action_links( $filenames );
+ }
+
+ /**
+ * Install and activate the standalone plugin in the case it's missing.
+ *
+ * @return boolean|WP_Error
+ */
+ public static function install_and_activate_standalone() {
+ /**
+ * Check for the presence of the standalone plugin, ignoring Jetpack presence.
+ *
+ * If the standalone plugin is not installed and the user can install plugins, proceed with the installation.
+ */
+ if ( ! static::is_plugin_installed() ) {
+ /**
+ * Check for permissions
+ */
+ if ( ! current_user_can( 'install_plugins' ) ) {
+ return new WP_Error( 'not_allowed', __( 'You are not allowed to install plugins on this site.', 'jetpack-my-jetpack' ) );
+ }
+
+ /**
+ * Install the plugin
+ */
+ $installed = Plugins_Installer::install_plugin( static::get_plugin_slug() );
+ if ( is_wp_error( $installed ) ) {
+ return $installed;
+ }
+ }
+
+ /**
+ * Activate the installed plugin
+ */
+ $result = static::activate_plugin();
+
+ if ( is_wp_error( $result ) ) {
+ return $result;
+ }
+
+ return true;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-protect.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-protect.php
new file mode 100644
index 00000000..a7638c2d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-protect.php
@@ -0,0 +1,357 @@
+ 2 ), null, 'wpcom' );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return new WP_Error( 'scan_state_fetch_failed' );
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $status = json_decode( $body );
+ return $status;
+ }
+
+ /**
+ * Get the product's available tiers
+ *
+ * @return string[] Slugs of the available tiers
+ */
+ public static function get_tiers() {
+ return array(
+ self::UPGRADED_TIER_SLUG,
+ self::FREE_TIER_SLUG,
+ );
+ }
+
+ /**
+ * Get the internationalized comparison of free vs upgraded features
+ *
+ * @return array[] Protect features comparison
+ */
+ public static function get_features_by_tier() {
+ return array(
+ array(
+ 'name' => __( 'Scan for threats and vulnerabilities', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Check items against database', 'jetpack-my-jetpack' ),
+ ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Line by line malware scanning', 'jetpack-my-jetpack' ),
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Daily automated scans', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Plus on-demand manual scans', 'jetpack-my-jetpack' ),
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Web Application Firewall', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'included' => false,
+ 'description' => __( 'Manual rules only', 'jetpack-my-jetpack' ),
+ ),
+ self::UPGRADED_TIER_SLUG => array(
+ 'included' => true,
+ 'description' => __( 'Automatic protection and rule updates', 'jetpack-my-jetpack' ),
+ ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Brute force protection', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => true ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Access to scan on Cloud', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'One-click auto fixes', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Notifications', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ array(
+ 'name' => __( 'Severity labels', 'jetpack-my-jetpack' ),
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array( 'included' => false ),
+ self::UPGRADED_TIER_SLUG => array( 'included' => true ),
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Get the product pricing details
+ *
+ * @return array Pricing details
+ */
+ public static function get_pricing_for_ui() {
+ return array(
+ 'tiers' => array(
+ self::FREE_TIER_SLUG => array(
+ 'available' => true,
+ 'is_free' => true,
+ ),
+ self::UPGRADED_TIER_SLUG => array_merge(
+ array(
+ 'available' => true,
+ 'wpcom_product_slug' => self::UPGRADED_TIER_PRODUCT_SLUG,
+ ),
+ Wpcom_Products::get_product_pricing( self::UPGRADED_TIER_PRODUCT_SLUG )
+ ),
+ ),
+ );
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $plans_with_scan = array(
+ 'jetpack_scan',
+ 'jetpack_security',
+ 'jetpack_complete',
+ 'jetpack_premium',
+ 'jetpack_business',
+ );
+
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ foreach ( $plans_with_scan as $plan ) {
+ if ( strpos( $purchase->product_slug, $plan ) !== false ) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether the product can be upgraded - i.e. this shows the /#add-protect interstitial
+ *
+ * @return boolean
+ */
+ public static function is_upgradable() {
+ return ! self::has_paid_plan_for_product();
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout for each product feature
+ *
+ * @return ?array
+ */
+ public static function get_post_checkout_urls_by_feature() {
+ return array(
+ self::SCAN_FEATURE_SLUG => self::get_post_checkout_url(),
+ self::FIREWALL_FEATURE_SLUG => admin_url( 'admin.php?page=jetpack-protect#/firewall' ),
+ );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=jetpack-protect' );
+ }
+
+ /**
+ * Get the URL where the user manages the product for each product feature
+ *
+ * @return ?array
+ */
+ public static function get_manage_urls_by_feature() {
+ return array(
+ self::SCAN_FEATURE_SLUG => self::get_manage_url(),
+ self::FIREWALL_FEATURE_SLUG => admin_url( 'admin.php?page=jetpack-protect#/firewall' ),
+ );
+ }
+
+ /**
+ * Return product bundles list
+ * that supports the product.
+ *
+ * @return array Products bundle list.
+ */
+ public static function is_upgradable_by_bundle() {
+ return array( 'security', 'complete' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-scan.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-scan.php
new file mode 100644
index 00000000..8da0ccaf
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-scan.php
@@ -0,0 +1,232 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_scan';
+ }
+
+ /**
+ * Hits the wpcom api to check scan status.
+ *
+ * @todo Maybe add caching.
+ *
+ * @return Object|WP_Error
+ */
+ private static function get_state_from_wpcom() {
+ static $status = null;
+
+ if ( $status !== null ) {
+ return $status;
+ }
+
+ $site_id = Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_blog( sprintf( '/sites/%d/scan', $site_id ) . '?force=wpcom', '2', array( 'timeout' => 2 ), null, 'wpcom' );
+
+ if ( 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ $status = new WP_Error( 'scan_state_fetch_failed' );
+ return $status;
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $status = json_decode( $body );
+ return $status;
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_required_plan() {
+ $scan_data = static::get_state_from_wpcom();
+ if ( is_wp_error( $scan_data ) ) {
+ return false;
+ }
+ return is_object( $scan_data ) && isset( $scan_data->state ) && 'unavailable' !== $scan_data->state;
+ }
+
+ /**
+ * Checks whether the Product is active
+ *
+ * Scan is not actually a module. Activation takes place on WPCOM. So lets consider it active if jetpack is active and has the plan.
+ *
+ * @return boolean
+ */
+ public static function is_active() {
+ return static::is_jetpack_plugin_active() && static::has_required_plan();
+ }
+
+ /**
+ * Activates the product by installing and activating its plugin
+ *
+ * @param bool|WP_Error $current_result Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return boolean|\WP_Error
+ */
+ public static function do_product_specific_activation( $current_result ) {
+
+ $product_activation = parent::do_product_specific_activation( $current_result );
+
+ if ( is_wp_error( $product_activation ) && 'module_activation_failed' === $product_activation->get_error_code() ) {
+ // Scan is not a module. There's nothing in the plugin to be activated, so it's ok to fail to activate the module.
+ $product_activation = true;
+ }
+
+ return $product_activation;
+ }
+
+ /**
+ * Checks whether the Jetpack module is active
+ *
+ * Scan is not a module. Nothing needs to be active. Let's always consider it active.
+ *
+ * @return bool
+ */
+ public static function is_module_active() {
+ return true;
+ }
+
+ /**
+ * Return product bundles list
+ * that supports the product.
+ *
+ * @return boolean|array Products bundle list.
+ */
+ public static function is_upgradable_by_bundle() {
+ return array( 'security' );
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return ''; // stay in My Jetpack page.
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return Redirect::get_url( 'my-jetpack-manage-scan' );
+ }
+
+ /**
+ * Get the URL where the user should be redirected after checkout
+ */
+ public static function get_post_checkout_url() {
+ if ( static::is_jetpack_plugin_active() ) {
+ return 'admin.php?page=jetpack#/recommendations';
+ }
+
+ // If Jetpack is not active, it means that the user has another standalone plugin active
+ // and it follows the `Protect` plugin flow instead of `Scan` so for now it would be safe
+ // to return null and let the user go back to the My Jetpack page.
+ return null;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search-stats.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search-stats.php
new file mode 100644
index 00000000..8d363a3b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search-stats.php
@@ -0,0 +1,150 @@
+ true,
+ 'exclude_from_search' => false,
+ )
+ );
+ $indexable_status_array = get_post_stati(
+ array(
+ 'public' => true,
+ 'exclude_from_search' => false,
+ )
+ );
+ $raw_posts_counts = static::get_raw_post_type_breakdown();
+ if ( ! $raw_posts_counts || is_wp_error( $raw_posts_counts ) ) {
+ return array();
+ }
+ $posts_counts = static::get_post_type_breakdown_with( $raw_posts_counts, $indexable_post_types, $indexable_status_array );
+
+ return $posts_counts;
+ }
+
+ /**
+ * Calculate breakdown of post types with passed in indexable post types and statuses.
+ * The function is going to be used from WPCOM as well for consistency.
+ *
+ * @param array $raw_posts_counts Array of post types with counts as value.
+ * @param array $indexable_post_types Array of indexable post types.
+ * @param array $indexable_status_array Array of indexable post statuses.
+ */
+ public static function get_post_type_breakdown_with( $raw_posts_counts, $indexable_post_types, $indexable_status_array ) {
+ $posts_counts = array();
+ foreach ( $raw_posts_counts as $row ) {
+ // ignore if status is not public.
+ if ( ! in_array( $row['post_status'], $indexable_status_array, true ) ) {
+ continue;
+ }
+ // ignore if post type is in excluded post types.
+ if ( in_array( $row['post_type'], self::EXCLUDED_POST_TYPES, true ) ) {
+ continue;
+ }
+ // ignore if post type is not public and is not explicitly included.
+ if ( ! in_array( $row['post_type'], $indexable_post_types, true ) &&
+ ! in_array( $row['post_type'], self::DO_NOT_EXCLUDE_POST_TYPES, true )
+ ) {
+ continue;
+ }
+ // add up post type counts of potentially multiple post_status.
+ if ( ! isset( $posts_counts[ $row['post_type'] ] ) ) {
+ $posts_counts[ $row['post_type'] ] = 0;
+ }
+ $posts_counts[ $row['post_type'] ] += intval( $row['num_posts'] );
+ }
+
+ arsort( $posts_counts, SORT_NUMERIC );
+ return $posts_counts;
+ }
+
+ /**
+ * Get raw post type breakdown from the database.
+ */
+ protected static function get_raw_post_type_breakdown() {
+ global $wpdb;
+
+ $results = wp_cache_get( self::POST_TYPE_BREAKDOWN_CACHE_KEY, self::CACHE_GROUP );
+ if ( false !== $results ) {
+ return $results;
+ }
+
+ $query = "SELECT post_type, post_status, COUNT( * ) AS num_posts
+ FROM {$wpdb->posts}
+ WHERE post_password = ''
+ GROUP BY post_type, post_status";
+
+ // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery
+ $results = $wpdb->get_results( $query, ARRAY_A );
+ wp_cache_set( self::POST_TYPE_BREAKDOWN_CACHE_KEY, $results, self::CACHE_GROUP, self::CACHE_EXPIRY );
+ return $results;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search.php
new file mode 100644
index 00000000..703c8fd8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-search.php
@@ -0,0 +1,394 @@
+ true,
+ 'trial_available' => static::has_trial_support(),
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ 'wpcom_free_product_slug' => static::get_wpcom_free_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+
+ $record_count = intval( Search_Stats::estimate_count() );
+ $search_pricing = static::get_pricing_from_wpcom( $record_count );
+
+ if ( is_wp_error( $search_pricing ) ) {
+ return $pricing;
+ }
+
+ $pricing['estimated_record_count'] = $record_count;
+
+ return array_merge( $pricing, $search_pricing );
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_search';
+ }
+
+ /**
+ * Get the WPCOM free product slug
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_free_product_slug() {
+ return 'jetpack_search_free';
+ }
+
+ /**
+ * Returns true if the new_pricing_202208 is set to not empty in URL for testing purpose, or it's active.
+ */
+ public static function is_new_pricing_202208() {
+ // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized, WordPress.Security.ValidatedSanitizedInput.MissingUnslash
+ if ( isset( $_GET['new_pricing_202208'] ) && $_GET['new_pricing_202208'] ) {
+ return true;
+ }
+
+ $record_count = intval( Search_Stats::estimate_count() );
+ $search_pricing = static::get_pricing_from_wpcom( $record_count );
+ if ( is_wp_error( $search_pricing ) ) {
+ return false;
+ }
+
+ return '202208' === $search_pricing['pricing_version'];
+ }
+
+ /**
+ * Override status to `needs_activation` when status is `needs_plan`.
+ */
+ public static function get_status() {
+ $status = parent::get_status();
+ return $status;
+ }
+
+ /**
+ * Use centralized Search pricing API.
+ *
+ * The function is also used by the search package, as a result it could be called before site connection - i.e. blog token might not be available.
+ *
+ * @param int $record_count Record count to estimate pricing.
+ *
+ * @return array|WP_Error
+ */
+ public static function get_pricing_from_wpcom( $record_count ) {
+ static $pricings = array();
+ $connection = new Connection_Manager();
+ $blog_id = \Jetpack_Options::get_option( 'id' );
+
+ if ( isset( $pricings[ $record_count ] ) ) {
+ return $pricings[ $record_count ];
+ }
+
+ // If the site is connected, request pricing with the blog token
+ if ( $blog_id ) {
+ $endpoint = sprintf( '/jetpack-search/pricing?record_count=%1$d&locale=%2$s', $record_count, get_user_locale() );
+
+ // If available in the user data, set the user's currency as one of the params
+ if ( $connection->is_user_connected() ) {
+ $user_details = $connection->get_connected_user_data();
+ if ( ! empty( $user_details['user_currency'] ) && $user_details['user_currency'] !== 'USD' ) {
+ $endpoint .= sprintf( '¤cy=%s', $user_details['user_currency'] );
+ }
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ $endpoint,
+ '2',
+ array( 'timeout' => 5 ),
+ null,
+ 'wpcom'
+ );
+ } else {
+ $response = wp_remote_get(
+ sprintf( Constants::get_constant( 'JETPACK__WPCOM_JSON_API_BASE' ) . '/wpcom/v2/jetpack-search/pricing?record_count=%1$d&locale=%2$s', $record_count, get_user_locale() ),
+ array( 'timeout' => 5 )
+ );
+ }
+
+ if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return new WP_Error( 'search_pricing_fetch_failed' );
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $pricings[ $record_count ] = json_decode( $body, true );
+ return $pricings[ $record_count ];
+ }
+
+ /**
+ * Hits the wpcom api to check Search status.
+ *
+ * @todo Maybe add caching.
+ *
+ * @return Object|WP_Error
+ */
+ private static function get_state_from_wpcom() {
+ static $status = null;
+
+ if ( $status !== null ) {
+ return $status;
+ }
+
+ $blog_id = Jetpack_Options::get_option( 'id' );
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ '/sites/' . $blog_id . '/jetpack-search/plan',
+ '2',
+ array( 'timeout' => 5 ),
+ null,
+ 'wpcom'
+ );
+
+ if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
+ return new WP_Error( 'search_state_fetch_failed' );
+ }
+
+ $body = wp_remote_retrieve_body( $response );
+ $status = json_decode( $body );
+ return $status;
+ }
+
+ /**
+ * Checks whether the product supports trial or not
+ *
+ * Returns true if it supports. Return false otherwise.
+ *
+ * Free products will always return false.
+ *
+ * @return boolean
+ */
+ public static function has_trial_support() {
+ return static::is_new_pricing_202208();
+ }
+
+ /**
+ * Checks if the site purchases contain a paid search plan
+ *
+ * @return bool
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ // Search is available as standalone product and as part of the Complete plan.
+ if (
+ ( str_contains( $purchase->product_slug, 'jetpack_search' ) && ! str_contains( $purchase->product_slug, 'jetpack_search_free' ) ) ||
+ str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks if the site purchases contain a free search plan
+ *
+ * @return bool
+ */
+ public static function has_free_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if ( str_contains( $purchase->product_slug, 'jetpack_search_free' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Activates the product. Try to enable instant search after the Search module was enabled.
+ *
+ * @param bool|WP_Error $product_activation Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return bool|WP_Error
+ */
+ public static function do_product_specific_activation( $product_activation ) {
+ $product_activation = parent::do_product_specific_activation( $product_activation );
+ if ( is_wp_error( $product_activation ) ) {
+ return $product_activation;
+ }
+
+ if ( class_exists( 'Automattic\Jetpack\Search\Module_Control' ) ) {
+ ( new Search_Module_Control() )->enable_instant_search();
+ }
+
+ // we don't want to change the success of the activation if we fail to activate instant search. That's not mandatory.
+ return $product_activation;
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return ''; // stay in My Jetpack page or continue the purchase flow if needed.
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=jetpack-search' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-security.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-security.php
new file mode 100644
index 00000000..866899cb
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-security.php
@@ -0,0 +1,212 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_security_t1_yearly';
+ }
+
+ /**
+ * Checks whether the Jetpack module is active
+ *
+ * This is a bundle and not a product. We should not use this information for anything
+ *
+ * @return bool
+ */
+ public static function is_module_active() {
+ return false;
+ }
+
+ /**
+ * Activates the product by installing and activating its plugin
+ *
+ * @param bool|WP_Error $current_result Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return boolean|\WP_Error
+ */
+ public static function do_product_specific_activation( $current_result ) {
+
+ $product_activation = parent::do_product_specific_activation( $current_result );
+
+ if ( is_wp_error( $product_activation ) && 'module_activation_failed' === $product_activation->get_error_code() ) {
+ // A bundle is not a module. There's nothing in the plugin to be activated, so it's ok to fail to activate the module.
+ $product_activation = true;
+ }
+
+ // At this point, Jetpack plugin is installed. Let's activate each individual product.
+ $activation = Anti_Spam::activate();
+ if ( is_wp_error( $activation ) ) {
+ return $activation;
+ }
+
+ $activation = Backup::activate();
+ if ( is_wp_error( $activation ) ) {
+ return $activation;
+ }
+
+ $activation = Scan::activate();
+ if ( is_wp_error( $activation ) ) {
+ return $activation;
+ }
+
+ return $activation;
+ }
+
+ /**
+ * Checks whether the Product is active
+ *
+ * Security is a bundle and not a module. Activation takes place on WPCOM. So lets consider it active if jetpack is active and has the plan.
+ *
+ * @return boolean
+ */
+ public static function is_active() {
+ return static::is_jetpack_plugin_active() && static::has_required_plan();
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_required_plan() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if (
+ str_starts_with( $purchase->product_slug, 'jetpack_security' ) ||
+ str_starts_with( $purchase->product_slug, 'jetpack_complete' )
+ ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether product is a bundle.
+ *
+ * @return boolean True
+ */
+ public static function is_bundle_product() {
+ return true;
+ }
+
+ /**
+ * Return all the products it contains.
+ *
+ * @return Array Product slugs
+ */
+ public static function get_supported_products() {
+ return array( 'backup', 'scan', 'anti-spam' );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return '';
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-social.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-social.php
new file mode 100644
index 00000000..80913a97
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-social.php
@@ -0,0 +1,199 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_social_v1_yearly';
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $plans_with_social = array(
+ 'jetpack_social',
+ 'jetpack_complete',
+ 'jetpack_business',
+ 'jetpack_premium',
+ 'jetpack_personal',
+ );
+ // For atomic sites, do a feature check to see if the republicize feature is available
+ // This feature is available by default on all Jetpack sites
+ if ( ( new Host() )->is_woa_site() ) {
+ return static::does_site_have_feature( 'republicize' );
+ }
+
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ foreach ( $plans_with_social as $plan ) {
+ if ( strpos( $purchase->product_slug, $plan ) !== false ) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Get the URL where the user manages the product.
+ *
+ * If the standalone plugin is active,
+ * it will redirect to the standalone plugin settings page.
+ * Otherwise, it will redirect to the Jetpack settings page.
+ *
+ * @return string
+ */
+ public static function get_manage_url() {
+ if ( static::is_standalone_plugin_active() ) {
+ return admin_url( 'admin.php?page=jetpack-social' );
+ }
+
+ return admin_url( 'admin.php?page=jetpack#/settings?term=publicize' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-starter.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-starter.php
new file mode 100644
index 00000000..700a07c2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-starter.php
@@ -0,0 +1,203 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_starter_yearly';
+ }
+
+ /**
+ * Checks whether the Jetpack module is active
+ *
+ * This is a bundle and not a product. We should not use this information for anything
+ *
+ * @return bool
+ */
+ public static function is_module_active() {
+ return false;
+ }
+
+ /**
+ * Activates the product by installing and activating its plugin
+ *
+ * @param bool|WP_Error $current_result Is the result of the top level activation actions. You probably won't do anything if it is an WP_Error.
+ * @return boolean|\WP_Error
+ */
+ public static function do_product_specific_activation( $current_result ) {
+
+ $product_activation = parent::do_product_specific_activation( $current_result );
+
+ if ( is_wp_error( $product_activation ) && 'module_activation_failed' === $product_activation->get_error_code() ) {
+ // A bundle is not a module. There's nothing in the plugin to be activated, so it's ok to fail to activate the module.
+ $product_activation = true;
+ }
+
+ // At this point, Jetpack plugin is installed. Let's activate each individual product.
+ $activation = Anti_Spam::activate();
+ if ( is_wp_error( $activation ) ) {
+ return $activation;
+ }
+
+ $activation = Backup::activate();
+ if ( is_wp_error( $activation ) ) {
+ return $activation;
+ }
+
+ return $activation;
+ }
+
+ /**
+ * Checks whether the Product is active
+ *
+ * Jetpack Starter is a bundle and not a module. Activation takes place on WPCOM. So lets consider it active if jetpack is active and has the plan.
+ *
+ * @return boolean
+ */
+ public static function is_active() {
+ return static::is_jetpack_plugin_active() && static::has_required_plan();
+ }
+
+ /**
+ * Checks whether the current plan (or purchases) of the site already supports the product
+ *
+ * @return boolean
+ */
+ public static function has_required_plan() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if ( str_starts_with( $purchase->product_slug, 'jetpack_starter' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Checks whether product is a bundle.
+ *
+ * @return boolean True
+ */
+ public static function is_bundle_product() {
+ return true;
+ }
+
+ /**
+ * Return all the products it contains.
+ *
+ * @return Array Product slugs
+ */
+ public static function get_supported_products() {
+ return array( 'backup', 'anti-spam' );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return '';
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-stats.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-stats.php
new file mode 100644
index 00000000..6f1118cf
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-stats.php
@@ -0,0 +1,310 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_stats_yearly';
+ }
+
+ /**
+ * Get the WPCOM Pay Whatever You Want product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_pwyw_product_slug() {
+ return 'jetpack_stats_pwyw_yearly';
+ }
+
+ /**
+ * Get the WPCOM free product slug
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_free_product_slug() {
+ return 'jetpack_stats_free_yearly';
+ }
+
+ /**
+ * Gets the 'status' of the Stats product
+ *
+ * @return string
+ */
+ public static function get_status() {
+ $status = parent::get_status();
+ if ( Products::STATUS_MODULE_DISABLED === $status && ! Initializer::is_registered() ) {
+ // If the site has never been connected before, show the "Learn more" CTA,
+ // that points to the add Stats product interstitial.
+ $status = Products::STATUS_NEEDS_FIRST_SITE_CONNECTION;
+ }
+ return $status;
+ }
+ /**
+ * Checks whether the product can be upgraded to a different product.
+ * Stats Commercial plan (highest tier) & Jetpack Complete are not upgradable.
+ * Also we don't push PWYW users to upgrade.
+ *
+ * @return boolean
+ */
+ public static function is_upgradable() {
+ // For now, atomic sites with stats are not in a position to upgrade
+ if ( ( new Host() )->is_woa_site() ) {
+ return false;
+ }
+
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( ! is_wp_error( $purchases_data ) && is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ // Jetpack complete includes Stats commercial & cannot be upgraded
+ if ( str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return false;
+ } elseif (
+ // Stats commercial purchased with highest tier cannot be upgraded.
+ in_array(
+ $purchase->product_slug,
+ array( 'jetpack_stats_yearly', 'jetpack_stats_monthly', 'jetpack_stats_bi_yearly' ),
+ true
+ ) && $purchase->current_price_tier_slug === 'more_than_1m_views'
+ ) {
+ return false;
+ } elseif (
+ // If user already has Stats PWYW, we won't push them to upgrade.
+ $purchase->product_slug === 'jetpack_stats_pwyw_yearly'
+ ) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Checks if the site has a paid plan that supports this product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ // Stats is available as standalone product and as part of the Complete plan.
+ if ( strpos( $purchase->product_slug, 'jetpack_stats' ) !== false || str_starts_with( $purchase->product_slug, 'jetpack_complete' ) ) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns a productType parameter for an upgrade URL, determining whether
+ * to show the PWYW upgrade interstitial or commercial upgrade interstitial.
+ *
+ * @return string
+ */
+ public static function get_url_product_type() {
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ $is_commercial_site = Initializer::is_commercial_site();
+ if ( is_wp_error( $purchases_data ) ) {
+ return $is_commercial_site ? '&productType=commercial' : '';
+ }
+ if ( $is_commercial_site ) {
+ return '&productType=commercial';
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ if (
+ str_starts_with( $purchase->product_slug, static::get_wpcom_free_product_slug() )
+ ) {
+ return '&productType=personal';
+ } elseif (
+ in_array(
+ $purchase->product_slug,
+ array( 'jetpack_stats_yearly', 'jetpack_stats_monthly', 'jetpack_stats_bi_yearly' ),
+ true
+ ) &&
+ ! empty( $purchase->current_price_tier_slug )
+ ) {
+ return '&productType=commercial';
+ }
+ }
+ }
+ return '';
+ }
+
+ /**
+ * Checks whether the product supports trial or not.
+ * Since Jetpack Stats has been widely available as a free product in the past, it "supports" a trial.
+ *
+ * @return boolean
+ */
+ public static function has_trial_support() {
+ return true;
+ }
+
+ /**
+ * Get the WordPress.com URL for purchasing Jetpack Stats for the current site.
+ *
+ * @return ?string
+ */
+ public static function get_purchase_url() {
+ // The returning URL could be customized by changing the `redirect_uri` param with relative path.
+ return sprintf(
+ '%s#!/stats/purchase/%d?from=jetpack-my-jetpack%s&redirect_uri=%s',
+ admin_url( 'admin.php?page=stats' ),
+ Jetpack_Options::get_option( 'id' ),
+ static::get_url_product_type(),
+ rawurlencode( 'admin.php?page=stats' )
+ );
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ return admin_url( 'admin.php?page=stats' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-videopress.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-videopress.php
new file mode 100644
index 00000000..1ee6b122
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-videopress.php
@@ -0,0 +1,203 @@
+ true,
+ 'wpcom_product_slug' => static::get_wpcom_product_slug(),
+ ),
+ Wpcom_Products::get_product_pricing( static::get_wpcom_product_slug() )
+ );
+ }
+
+ /**
+ * Get the URL the user is taken after purchasing the product through the checkout
+ *
+ * @return ?string
+ */
+ public static function get_post_checkout_url() {
+ return self::get_manage_url();
+ }
+
+ /**
+ * Get the WPCOM product slug used to make the purchase
+ *
+ * @return ?string
+ */
+ public static function get_wpcom_product_slug() {
+ return 'jetpack_videopress';
+ }
+
+ /**
+ * Get the URL the user is taken after activating the product
+ *
+ * @return ?string
+ */
+ public static function get_post_activation_url() {
+ return ''; // stay in My Jetpack page.
+ }
+
+ /**
+ * Get the URL where the user manages the product
+ *
+ * @return ?string
+ */
+ public static function get_manage_url() {
+ if ( method_exists( 'Automattic\Jetpack\VideoPress\Initializer', 'should_initialize_admin_ui' ) && \Automattic\Jetpack\VideoPress\Initializer::should_initialize_admin_ui() ) {
+ return \Automattic\Jetpack\VideoPress\Admin_UI::get_admin_page_url();
+ } else {
+ return admin_url( 'admin.php?page=jetpack#/settings?term=videopress' );
+ }
+ }
+
+ /**
+ * Checks whether the site has a paid plan for this product
+ *
+ * @return boolean
+ */
+ public static function has_paid_plan_for_product() {
+ $plans_with_videopress = array(
+ 'jetpack_videopress',
+ 'jetpack_complete',
+ 'jetpack_business',
+ 'jetpack_premium',
+ );
+ $purchases_data = Wpcom_Products::get_site_current_purchases();
+ if ( is_wp_error( $purchases_data ) ) {
+ return false;
+ }
+ if ( is_array( $purchases_data ) && ! empty( $purchases_data ) ) {
+ foreach ( $purchases_data as $purchase ) {
+ foreach ( $plans_with_videopress as $plan ) {
+ if ( strpos( $purchase->product_slug, $plan ) !== false ) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md
new file mode 100644
index 00000000..3a071dac
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/CHANGELOG.md
@@ -0,0 +1,148 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.3.2] - 2024-08-23
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.3.1] - 2024-03-14
+### Changed
+- Internal updates.
+
+## [0.3.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [0.2.14] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [0.2.13] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [0.2.12] - 2023-03-20
+### Changed
+- Updated package dependencies. [#29480]
+
+## [0.2.11] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [0.2.10] - 2023-01-11
+### Changed
+- Updated package dependencies.
+
+## [0.2.9] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [0.2.8] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [0.2.7] - 2022-09-20
+### Changed
+- Updated package dependencies.
+
+## [0.2.6] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [0.2.5] - 2022-06-21
+### Changed
+- Renaming master to trunk. [#24661]
+
+## [0.2.4] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [0.2.3] - 2022-03-29
+### Changed
+- Microperformance: Use === null instead of is_null
+
+## [0.2.2] - 2022-01-25
+### Changed
+- Updated package dependencies.
+
+## [0.2.1] - 2022-01-18
+### Changed
+- Updated package dependencies.
+
+## [0.2.0] - 2022-01-04
+### Changed
+- Switch to pcov for code coverage.
+- Updated package dependencies
+- Updated package textdomain from `jetpack` to `jetpack-password-checker`.
+
+## [0.1.8] - 2021-12-14
+### Changed
+- Updated package dependencies.
+
+## [0.1.7] - 2021-11-02
+### Changed
+- Set `convertDeprecationsToExceptions` true in PHPUnit config.
+- Update PHPUnit configs to include just what needs coverage rather than include everything then try to exclude stuff that doesn't.
+
+## [0.1.6] - 2021-10-13
+### Changed
+- Updated package dependencies.
+
+## [0.1.5] - 2021-10-12
+### Changed
+- Updated package dependencies
+
+## [0.1.4] - 2021-09-28
+### Changed
+- Updated package dependencies.
+
+## [0.1.3] - 2021-08-30
+### Changed
+- Run composer update on test-php command instead of phpunit
+- Tests: update PHPUnit polyfills dependency (yoast/phpunit-polyfills).
+
+## [0.1.2] - 2021-05-25
+### Fixed
+- Avoid checking in vendor directory.
+
+## [0.1.1] - 2021-04-27
+### Changed
+- Updated package dependencies.
+
+## 0.1.0 - 2021-03-30
+### Added
+- Initial release.
+
+### Fixed
+- Use `composer update` rather than `install` in scripts, as composer.lock isn't checked in.
+
+[0.3.2]: https://github.com/Automattic/jetpack-password-checker/compare/v0.3.1...v0.3.2
+[0.3.1]: https://github.com/Automattic/jetpack-password-checker/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.14...v0.3.0
+[0.2.14]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.13...v0.2.14
+[0.2.13]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.12...v0.2.13
+[0.2.12]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.11...v0.2.12
+[0.2.11]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.10...v0.2.11
+[0.2.10]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.9...v0.2.10
+[0.2.9]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.8...v0.2.9
+[0.2.8]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.7...v0.2.8
+[0.2.7]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.6...v0.2.7
+[0.2.6]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.5...v0.2.6
+[0.2.5]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.4...v0.2.5
+[0.2.4]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.3...v0.2.4
+[0.2.3]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.2...v0.2.3
+[0.2.2]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.1...v0.2.2
+[0.2.1]: https://github.com/Automattic/jetpack-password-checker/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.8...v0.2.0
+[0.1.8]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.7...v0.1.8
+[0.1.7]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.6...v0.1.7
+[0.1.6]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.5...v0.1.6
+[0.1.5]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.4...v0.1.5
+[0.1.4]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.3...v0.1.4
+[0.1.3]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.2...v0.1.3
+[0.1.2]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/Automattic/jetpack-password-checker/compare/v0.1.0...v0.1.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/composer.json
new file mode 100644
index 00000000..a1ee9e62
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/composer.json
@@ -0,0 +1,50 @@
+{
+ "name": "automattic/jetpack-password-checker",
+ "description": "Password Checker.",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/wordbless": "@dev",
+ "yoast/phpunit-polyfills": "^1.1.1"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "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-trunk": "0.3.x-dev"
+ }
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php
new file mode 100644
index 00000000..79c369c2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-password-checker/src/class-password-checker.php
@@ -0,0 +1,1313 @@
+user_id = get_current_user_id();
+ } elseif ( is_object( $user ) && isset( $user->ID ) ) {
+ // Existing user, using their ID.
+ $this->user_id = $user->ID;
+ } elseif ( is_object( $user ) ) {
+ // Newly created user, using existing data.
+ $this->user = $user;
+ $this->user_id = 'new_user';
+ } else {
+ $this->user_id = $user;
+ }
+
+ /**
+ * Filters the password strength enforcement settings.
+ *
+ * You can supply your own passwords that should not be used for authenticating in addition to weak and easy
+ * to guess strings for each user. For example, you can add passwords from known password databases to avoid
+ * compromised password usage.
+ *
+ * @param array $common_passwords strings that are forbidden for use as passwords.
+ */
+ $this->common_passwords = apply_filters( 'password_checker_common_passwords', $this->common_passwords );
+
+ /**
+ * Filters the password strength enforcement settings.
+ *
+ * You can modify the minimum password length using this filter.
+ *
+ * @param int $minimum_password_length minimum password length.
+ */
+ $this->minimum_password_length = apply_filters( 'password_checker_minimum_password_length', $this->minimum_password_length );
+
+ /**
+ * Filters the password strength enforcement settings.
+ *
+ * You can modify the minimum entropy bits requirement using this filter.
+ *
+ * @param int $minimum_entropy_bits minimum entropy bits requirement.
+ */
+ $this->minimum_entropy_bits = apply_filters( 'password_checker_minimum_entropy_bits', $this->minimum_entropy_bits );
+ }
+
+ /**
+ * Run tests against a password.
+ *
+ * @param string $password the password.
+ * @param bool $required_only only test against required conditions, defaults to false.
+ *
+ * @return array an array containing failed and passed test results.
+ */
+ public function test( $password, $required_only = false ) {
+ // Run the tests.
+ $results = $this->run_tests( $password, $this->get_tests(), $required_only );
+
+ // If we've failed on the required tests, return now.
+ if ( ! empty( $results['failed'] ) ) {
+ return array(
+ 'passed' => false,
+ 'test_results' => $results,
+ );
+ }
+
+ $entropy_bits = $this->calculate_entropy_bits( $password );
+
+ // If we have failed the entropy bits test, run the regex tests so we can suggest improvements.
+ if ( $entropy_bits < $this->minimum_entropy_bits ) {
+ $results['failed']['entropy_bits'] = $entropy_bits;
+ // Run the tests.
+ $results = array_merge( $results, $this->run_tests( $password, $this->get_tests( 'preg_match' ) ) );
+ }
+
+ return ( array(
+ 'passed' => empty( $results['failed'] ),
+ 'test_results' => $results,
+ ) );
+ }
+
+ /**
+ * Run the tests using the currently set up object values.
+ *
+ * @param string $password the password.
+ * @param array $tests tests to run.
+ * @param bool $required_only whether to run only required tests.
+ *
+ * @return array test results.
+ */
+ public function run_tests( $password, $tests, $required_only = false ) {
+ $results = array(
+ 'passed' => array(),
+ 'failed' => array(),
+ );
+
+ foreach ( $tests as $test_type => $section_tests ) {
+ foreach ( $section_tests as $test_name => $test_data ) {
+ // Skip non-required tests if required_only param is set.
+ if ( $required_only && ! $test_data['required'] ) {
+ continue;
+ }
+
+ $result = call_user_func_array( array( $this, 'test_' . $test_type ), array( $password, $test_data ) );
+ if ( $result ) {
+ $results['passed'][] = array( 'test_name' => $test_name );
+ } else {
+ $results['failed'][] = array(
+ 'test_name' => $test_name,
+ 'explanation' => $test_data['error'],
+ );
+
+ if ( isset( $test_data['fail_immediately'] ) ) {
+ return $results;
+ }
+ }
+ }
+ }
+
+ return $results;
+ }
+
+ /**
+ * Returns an array of tests that need to be run on password strings.
+ *
+ * @param array $sections only return specific sections with the passed keys, defaults to all.
+ *
+ * @return array test descriptions.
+ */
+ public function get_tests( $sections = false ) {
+ // Note: these should be in order of priority.
+ $tests = array(
+ 'preg_match' => array(
+ 'no_backslashes' => array(
+ 'pattern' => '/^[^\\\\]*$/u',
+ 'error' => __( 'Passwords may not contain the character "\".', 'jetpack-password-checker' ),
+ 'required' => true,
+ 'fail_immediately' => true,
+ ),
+ 'minimum_length' => array(
+ 'pattern' => '/^.{' . $this->minimum_password_length . ',}/u',
+ /* translators: %d is a number of characters in the password. */
+ 'error' => sprintf( __( 'Password must be at least %d characters.', 'jetpack-password-checker' ), $this->minimum_password_length ),
+ 'required' => true,
+ 'fail_immediately' => true,
+ ),
+ 'has_mixed_case' => array(
+ 'pattern' => '/([a-z].*?[A-Z]|[A-Z].*?[a-z])/u',
+ 'error' => __( 'This password is too easy to guess: you can improve it by adding additional uppercase letters, lowercase letters, or numbers.', 'jetpack-password-checker' ),
+ 'required' => false,
+ ),
+ 'has_digit' => array(
+ 'pattern' => '/\d/u',
+ 'error' => __( 'This password is too easy to guess: you can improve it by mixing both letters and numbers.', 'jetpack-password-checker' ),
+ 'required' => false,
+ ),
+ 'has_special_char' => array(
+ 'pattern' => '/[^a-zA-Z\d]/u',
+ 'error' => __( 'This password is too easy to guess: you can improve it by including special characters such as !#=?*&.', 'jetpack-password-checker' ),
+ 'required' => false,
+ ),
+ ),
+ 'compare_to_list' => array(
+ 'not_a_common_password' => array(
+ 'list_callback' => 'get_common_passwords',
+ 'compare_callback' => 'negative_in_array',
+ 'error' => __( 'This is a very common password. Choose something that will be harder for others to guess.', 'jetpack-password-checker' ),
+ 'required' => true,
+ ),
+ 'not_same_as_other_user_data' => array(
+ 'list_callback' => 'get_other_user_data',
+ 'compare_callback' => 'test_not_same_as_other_user_data',
+ 'error' => __( 'Your password is too weak: Looks like you are including easy to guess information about yourself. Try something a little more unique.', 'jetpack-password-checker' ),
+ 'required' => true,
+ ),
+ ),
+ );
+
+ /**
+ * Filters the password strength enforcement settings.
+ *
+ * You can determine the tests run and their order based on whatever criteria you wish to specify.
+ *
+ * @param array $tests tests to run.
+ */
+ $tests = apply_filters( 'password_checker_tests', $tests );
+
+ if ( ! $sections ) {
+ return $tests;
+ }
+
+ $sections = (array) $sections;
+
+ return array_intersect_key( $tests, array_flip( $sections ) );
+ }
+
+ /**
+ * Provides the regular expression tester functionality.
+ *
+ * @param string $password the password.
+ * @param array $test_data the current test data.
+ *
+ * @return bool does the test pass?
+ */
+ protected function test_preg_match( $password, $test_data ) {
+ return preg_match( $test_data['pattern'], $password );
+ }
+
+ /**
+ * Provides the comparison tester functionality.
+ *
+ * @param string $password the password.
+ * @param array $test_data the current test data.
+ *
+ * @return bool does the test pass?
+ */
+ protected function test_compare_to_list( $password, $test_data ) {
+ if (
+ ! is_callable( array( $this, $test_data['list_callback'] ) )
+ || ! is_callable( array( $this, $test_data['compare_callback'] ) )
+ ) {
+ return false;
+ }
+
+ return call_user_func(
+ array(
+ $this,
+ $test_data['compare_callback'],
+ ),
+ $password,
+ call_user_func( array( $this, $test_data['list_callback'] ) )
+ );
+ }
+
+ /**
+ * Getter for the common password list.
+ *
+ * @return array common passwords.
+ */
+ protected function get_common_passwords() {
+ return $this->common_passwords;
+ }
+
+ /**
+ * Returns the widely known user data that can not be used in the password to avoid
+ * predictable strings.
+ *
+ * @return array user data.
+ */
+ protected function get_other_user_data() {
+ if ( empty( $this->user_id ) ) {
+ return array();
+ }
+
+ $user_data = get_userdata( $this->user_id );
+ if ( ! $user_data ) {
+ return array();
+ }
+
+ if ( isset( $user_data->ID ) ) {
+ $this->add_user_strings_to_test( get_user_meta( $user_data->ID, 'first_name', true ) );
+ $this->add_user_strings_to_test( get_user_meta( $user_data->ID, 'last_name', true ) );
+ $this->add_user_strings_to_test( get_user_meta( $user_data->ID, 'nickname', true ) );
+ }
+
+ if ( isset( $user_data->user_nicename ) ) {
+ $this->add_user_strings_to_test( $user_data->user_nicename );
+ }
+
+ if ( isset( $user_data->display_name ) ) {
+ $this->add_user_strings_to_test( $user_data->display_name );
+ }
+
+ if ( isset( $user_data->first_name ) ) {
+ $this->add_user_strings_to_test( $user_data->first_name );
+ }
+
+ if ( isset( $user_data->last_name ) ) {
+ $this->add_user_strings_to_test( $user_data->last_name );
+ }
+
+ if ( isset( $user_data->user_email ) ) {
+ $email_username = substr( $user_data->user_email, 0, strpos( $user_data->user_email, '@' ) );
+ $this->add_user_strings_to_test( $email_username, '.' );
+ $this->add_user_strings_to_test( $user_data->user_email );
+ }
+
+ return $this->get_user_strings_to_test();
+ }
+
+ /**
+ * Compare the password for matches with known user data.
+ *
+ * @param string $password the password.
+ * @param array $strings_to_test known user data.
+ *
+ * @return bool does the test pass?
+ */
+ protected function test_not_same_as_other_user_data( $password, $strings_to_test ) {
+ if ( empty( $strings_to_test ) ) {
+ return false;
+ }
+
+ $password_lowercase = strtolower( $password );
+
+ foreach ( $strings_to_test as $string ) {
+ $string = strtolower( $string );
+ $string_reversed = strrev( $string );
+
+ if ( $password_lowercase === $string || $password_lowercase === $string_reversed ) {
+ return false;
+ }
+
+ // Also check for the string or reversed string with any numbers just stuck to the end to catch things like bob123 as passwords.
+ if (
+ preg_match( '/^' . preg_quote( $string, '/' ) . '\d+$/', $password_lowercase )
+ || preg_match( '/^' . preg_quote( $string_reversed, '/' ) . '\d+$/', $password_lowercase )
+ ) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * A shorthand for the not in array construct.
+ *
+ * @param mixed $needle the needle.
+ * @param array $haystack the haystack.
+ *
+ * @return bool is the needle not in the haystack?
+ */
+ protected function negative_in_array( $needle, $haystack ) {
+ return ! in_array( $needle, $haystack, true );
+ }
+
+ /**
+ * A helper function used to break a single string into its constituents so
+ * that both the full string and its constituents and any variants thereof
+ * can be tested against the password.
+ *
+ * @param string $string the string to be broken down.
+ * @param string $explode_delimiter delimiter.
+ *
+ * @return bool
+ */
+ protected function add_user_strings_to_test( $string, $explode_delimiter = ' ' ) {
+ // Don't check against empty strings.
+ if ( empty( $string ) ) {
+ return false;
+ }
+
+ $strings = explode( $explode_delimiter, $string );
+
+ // Remove any non alpha numeric characters from the strings to check against.
+ foreach ( $strings as $key => $_string ) {
+ $_string = trim( preg_replace( '/[^a-zA-Z0-9]/', '', $_string ) );
+ if ( empty( $_string ) ) {
+ continue;
+ }
+
+ $strings[ $key ] = $_string;
+ }
+
+ // Check the original too.
+ $strings[] = trim( $string );
+
+ // Check the original minus non alpha numeric characters.
+ $strings[] = trim( preg_replace( '/[^a-zA-Z0-9]/', '', $string ) );
+
+ // Remove any empty strings.
+ // Note: This will also filter out '0'.
+ $strings = array_filter( $strings );
+ if ( empty( $strings ) ) {
+ return false;
+ }
+
+ $this->user_strings_to_test = array_unique( array_merge( $this->user_strings_to_test, $strings ) );
+
+ return true;
+ }
+
+ /**
+ * Getter for the user strings array.
+ *
+ * @return array user strings.
+ */
+ protected function get_user_strings_to_test() {
+ return $this->user_strings_to_test;
+ }
+
+ /**
+ * Return a character set size that is used in the string.
+ *
+ * @param string $password the password.
+ *
+ * @return int number of different character sets in use.
+ */
+ protected function get_charset_size( $password ) {
+ $size = 0;
+
+ // Lowercase a-z.
+ if ( preg_match( '/[a-z]/', $password ) ) {
+ $size += 26;
+ }
+
+ // Uppercase A-Z.
+ if ( preg_match( '/[A-Z]/', substr( $password, 1, - 1 ) ) ) {
+ $size += 26;
+ }
+
+ // Digits.
+ if ( preg_match( '/\d/', substr( $password, 1, - 1 ) ) ) {
+ $size += 10;
+ }
+
+ // Over digits symbols.
+ if ( preg_match( '/[!|@|#|$|%|^|&|*|(|)]/', $password ) ) {
+ $size += 10;
+ }
+
+ // Other symbols.
+ if ( preg_match( '#[`|~|-|_|=|+|\[|{|\]|}|\\|\|;:\'",<\.>/\?]#', $password ) ) {
+ $size += 20;
+ }
+
+ // Spaces.
+ if ( strpos( $password, ' ' ) ) {
+ ++$size;
+ }
+
+ return $size;
+ }
+
+ /**
+ * Shorthand for getting a character index.
+ *
+ * @param string $char character.
+ *
+ * @return int the character code.
+ */
+ protected function get_char_index( $char ) {
+ $char = strtolower( $char[0] );
+ if ( $char < 'a' || $char > 'z' ) {
+ return 0;
+ } else {
+ return ord( $char[0] ) - ord( 'a' ) + 1;
+ }
+ }
+
+ /**
+ * This is the password strength calculation algorithm, based on the formula H = L(logN/log2).
+ *
+ * H = Entropy
+ * L = String length (the for iterator)
+ * N = Our charset size, via get_charset_size()
+ *
+ * @see https://en.wikipedia.org/wiki/Password_strength#Random_passwords
+ *
+ * On top of the base formula, we're also multiplying the bits of entropy for every char
+ * by 1 - (the probabily of it following the previous char)
+ * i.e.: the probablity of U following Q is ~0.84. If our password contains this pair of characters,
+ * the u char will only add ( 0.16^2 * charset_score ) to our total of entropy bits.
+ *
+ * @param string $password the password.
+ *
+ * @return float|int
+ */
+ protected function calculate_entropy_bits( $password ) {
+ $bits = 0;
+ // Calculate the score.
+ $charset_score = log( $this->get_charset_size( $password ) ) / log( 2 );
+
+ $aidx = $this->get_char_index( $password[0] );
+ $length = strlen( $password );
+
+ for ( $b = 1; $b < $length; $b++ ) {
+ $bidx = $this->get_char_index( $password[ $b ] );
+
+ // 27 = number of chars in the index (a-z,' ').
+ $c = 1.0 - $this->frequency_table[ $aidx * 27 + $bidx ];
+
+ // Increment the bits.
+ $bits += $charset_score * $c * $c;
+
+ // Move on to next pair.
+ $aidx = $bidx;
+ }
+
+ return $bits;
+ }
+
+ /**
+ * A frequency table of character pairs, starting with ' ' then ' a', ' b' [...] , 'a ', 'aa' etc.
+ *
+ * @see http://rumkin.com/tools/password/passchk.php
+ *
+ * @var array
+ */
+ public $frequency_table = array(
+ 0.23653710453418866,
+ 0.04577693541332556,
+ 0.03449832337075375,
+ 0.042918209651552706,
+ 0.037390873305146524,
+ 0.028509112115468728,
+ 0.02350896632162123,
+ 0.022188657238664526,
+ 0.028429800262428927,
+ 0.04357019973757107,
+ 0.00913602565971716,
+ 0.03223093745443942,
+ 0.02235311269864412,
+ 0.04438081352966905,
+ 0.04512377897652719,
+ 0.020055401662049863,
+ 0.055903192885260244,
+ 0.0024388394809739026,
+ 0.035207464644991984,
+ 0.07355941099285611,
+ 0.036905671380667734,
+ 0.026134421927394666,
+ 0.023787724158040528,
+ 0.011352092141711621,
+ 0.0032354570637119114,
+ 0.005986878553725033,
+ 0.008861933226417843,
+ 0.11511532293337222,
+ 0.027556203528211108,
+ 0.024331243621519172,
+ 0.039266365359381834,
+ 0.031599941682461,
+ 0.014403265782183991,
+ 0.015480973902901297,
+ 0.027770812071730572,
+ 0.00942761335471643,
+ 0.039872867764980315,
+ 0.0078122175244204695,
+ 0.02808456043154979,
+ 0.08429100451960927,
+ 0.04688963405744277,
+ 0.13831170724595424,
+ 0.002540311998833649,
+ 0.025211838460416972,
+ 0.001543082081936142,
+ 0.09519638431258201,
+ 0.061845750109345385,
+ 0.08907071001603732,
+ 0.02137571074500656,
+ 0.027093162268552268,
+ 0.005521504592506197,
+ 0.003023181221752442,
+ 0.007086747339262283,
+ 0.010262720513194342,
+ 0.08785070710016038,
+ 0.14617757690625455,
+ 0.03417291150313457,
+ 0.0059635515381250915,
+ 0.006146668610584633,
+ 0.195202799241872,
+ 0.002774748505613063,
+ 0.004715556203528212,
+ 0.0044776206444088066,
+ 0.11205481848665985,
+ 0.005654468581425864,
+ 0.0028820527773727946,
+ 0.07383000437381543,
+ 0.005516839189386207,
+ 0.006496573844583759,
+ 0.09843067502551392,
+ 0.0027140982650532145,
+ 0.0006893133109782768,
+ 0.08425368129464937,
+ 0.021325557661466685,
+ 0.006493074792243767,
+ 0.07023414491908442,
+ 0.002077270739174807,
+ 0.0024633328473538415,
+ 0.0007744569179180639,
+ 0.015413325557661468,
+ 0.0011990086018370024,
+ 0.13162851727657093,
+ 0.10115993585070711,
+ 0.0026989357049132527,
+ 0.03319317684793702,
+ 0.002946202070272634,
+ 0.0783216212275842,
+ 0.0018358361277154103,
+ 0.00258813238081353,
+ 0.2141688292754046,
+ 0.09853681294649366,
+ 0.0032482869222918796,
+ 0.04359352675317102,
+ 0.01993526753171016,
+ 0.0036880011663507797,
+ 0.008011663507799971,
+ 0.12014696019827964,
+ 0.0029846916460125384,
+ 0.0017553579238956116,
+ 0.029470185158186325,
+ 0.010413179763813967,
+ 0.030699518880303252,
+ 0.03508499781309229,
+ 0.002021285901734947,
+ 0.0010613792097973467,
+ 0.0005295232541186761,
+ 0.009677212421635807,
+ 0.010585799679253535,
+ 0.17101734946785244,
+ 0.07968625164018078,
+ 0.007839043592360402,
+ 0.005438693687126403,
+ 0.0183606939787141,
+ 0.2732701559994168,
+ 0.004953491762647616,
+ 0.007259367254701851,
+ 0.008104971570199739,
+ 0.13274588132380813,
+ 0.004210526315789474,
+ 0.004997813092287506,
+ 0.017006560723137484,
+ 0.007442484327161393,
+ 0.016789619478058026,
+ 0.08477737279486806,
+ 0.005106283714827234,
+ 0.0005026971861787433,
+ 0.04040355736987899,
+ 0.037535500801866156,
+ 0.00885960052485785,
+ 0.0336410555474559,
+ 0.007066919376002332,
+ 0.005344219273946639,
+ 0.0006333284735384167,
+ 0.010684939495553289,
+ 0.0063064586674442345,
+ 0.15386849394955532,
+ 0.015049424114302375,
+ 0.012162705933809595,
+ 0.020425134859308938,
+ 0.037366379938766583,
+ 0.02157165767604607,
+ 0.009373961218836564,
+ 0.0173214754337367,
+ 0.009616562181075958,
+ 0.029522670943286193,
+ 0.010154249890654615,
+ 0.018600962239393497,
+ 0.06362210234728094,
+ 0.03157078291296107,
+ 0.151603440734801,
+ 0.0062329785683044175,
+ 0.014775331681003062,
+ 0.0020854351946347867,
+ 0.1826342032366234,
+ 0.0878017203674005,
+ 0.054190989940224525,
+ 0.010329202507654177,
+ 0.012763376585508092,
+ 0.0064872430383437815,
+ 0.006381105117364048,
+ 0.005388540603586529,
+ 0.0090800408222773,
+ 0.09611196967487973,
+ 0.09940691062837148,
+ 0.01033969966467415,
+ 0.004034407348009914,
+ 0.008826942703017933,
+ 0.11474675608689314,
+ 0.07132584924916169,
+ 0.012388977985129028,
+ 0.005435194634786413,
+ 0.1417174515235457,
+ 0.0037066627788307337,
+ 0.0045802595130485495,
+ 0.060800699810468,
+ 0.005341886572386646,
+ 0.005683627350925791,
+ 0.12434932205860913,
+ 0.004596588423968508,
+ 0.0007534626038781163,
+ 0.07107041842834232,
+ 0.022361277154104096,
+ 0.04784720804782038,
+ 0.06277533168100306,
+ 0.003441901151771395,
+ 0.005828254847645429,
+ 0.0009669047966175828,
+ 0.009470768333576322,
+ 0.002077270739174807,
+ 0.12797667298440007,
+ 0.08797783933518005,
+ 0.005388540603586529,
+ 0.0024913252660737715,
+ 0.007550954949701123,
+ 0.2786866890217233,
+ 0.002509986878553725,
+ 0.029002478495407494,
+ 0.0303204548768042,
+ 0.07576614666861058,
+ 0.00246799825047383,
+ 0.00592389561160519,
+ 0.039574281965301064,
+ 0.00706808572678233,
+ 0.03304505029887739,
+ 0.05474150750838315,
+ 0.0028633911648928414,
+ 0.0005073625892987316,
+ 0.07293541332555767,
+ 0.053528502697186175,
+ 0.022566554891383584,
+ 0.038151334013704616,
+ 0.002716430966613209,
+ 0.005049132526607377,
+ 0.0009902318122175246,
+ 0.008997229916897508,
+ 0.0011861787432570347,
+ 0.1666377022889634,
+ 0.14414462749671964,
+ 0.003374252806531564,
+ 0.005169266656947077,
+ 0.008468873013558828,
+ 0.16337541915731155,
+ 0.002873888321912815,
+ 0.004305000728969237,
+ 0.0031141565825922144,
+ 0.1241172182533897,
+ 0.0052800699810468,
+ 0.008969237498177577,
+ 0.024094474413179766,
+ 0.017029887738737422,
+ 0.01722700102055693,
+ 0.10618457501093455,
+ 0.006147834961364631,
+ 0.0008269427030179326,
+ 0.03303571949263741,
+ 0.024188948826359528,
+ 0.05213937891820965,
+ 0.04505846333284735,
+ 0.0035270447587111824,
+ 0.006799825047383001,
+ 0.0008199445983379502,
+ 0.02206735675754483,
+ 0.001010059775477475,
+ 0.11971191135734072,
+ 0.04656538854060359,
+ 0.011243621519171892,
+ 0.06513019390581717,
+ 0.032375564951159064,
+ 0.06347047674588133,
+ 0.013678961947805804,
+ 0.03309870243475726,
+ 0.006982942119842543,
+ 0.009726199154395685,
+ 0.010121592068814697,
+ 0.032514360693978714,
+ 0.04986032949409535,
+ 0.039734072022160664,
+ 0.15690683773144773,
+ 0.03949963551538125,
+ 0.014790494241143023,
+ 0.002722262720513194,
+ 0.02614375273363464,
+ 0.10753637556495116,
+ 0.06764834523983088,
+ 0.006221315060504448,
+ 0.021317393206006705,
+ 0.0030826651115322934,
+ 0.002399183554454002,
+ 0.0019069835252952323,
+ 0.015595276279341012,
+ 0.0925126111678087,
+ 0.18437906400349907,
+ 0.006538562472663654,
+ 0.008719638431258201,
+ 0.02116693395538708,
+ 0.18241376293920394,
+ 0.007290858725761773,
+ 0.005976381396705059,
+ 0.005629975215045925,
+ 0.09721300481119698,
+ 0.004810030616707975,
+ 0.024303251202799244,
+ 0.012954658113427612,
+ 0.011057005394372358,
+ 0.02733459688001166,
+ 0.10135121737862662,
+ 0.012016912086309959,
+ 0.001055547455897361,
+ 0.009027555037177431,
+ 0.07162326869806095,
+ 0.01007143898527482,
+ 0.07297623560285756,
+ 0.006741507508383147,
+ 0.0036891675171307776,
+ 0.0008409389123778977,
+ 0.011272780288671819,
+ 0.007020265344802449,
+ 0.1030389269572824,
+ 0.15350809155853623,
+ 0.004232686980609419,
+ 0.004353987461729115,
+ 0.0023385333138941536,
+ 0.14450386353695874,
+ 0.002546143752733635,
+ 0.0024470039364338824,
+ 0.01200758128006998,
+ 0.0981227584195947,
+ 0.003161976964572095,
+ 0.040695145064878264,
+ 0.03460446129173349,
+ 0.003908441463770229,
+ 0.01598483743986004,
+ 0.13107216795451232,
+ 0.003129319142732177,
+ 0.00032307916605919226,
+ 0.04050386353695874,
+ 0.05452689896486368,
+ 0.03589677795597026,
+ 0.07087097244496282,
+ 0.006143169558244642,
+ 0.008684647907858289,
+ 0.0004607085580988482,
+ 0.022010205569324977,
+ 0.0009097536083977258,
+ 0.07328765126111678,
+ 0.14751421490013122,
+ 0.008015162560139961,
+ 0.006601545414783497,
+ 0.025279486805656802,
+ 0.1682449336637994,
+ 0.008313748359819215,
+ 0.007010934538562473,
+ 0.005886572386645284,
+ 0.16889575739903775,
+ 0.004123050007289692,
+ 0.011925936725470185,
+ 0.10007289692374982,
+ 0.013380376148126549,
+ 0.009021723283277445,
+ 0.08650823735238372,
+ 0.007756232686980609,
+ 0.0007243038343781893,
+ 0.0026791077416533026,
+ 0.02797492345823006,
+ 0.032384895757399036,
+ 0.04187432570345531,
+ 0.00882461000145794,
+ 0.0032401224668318998,
+ 0.00033357632307916605,
+ 0.027878116343490307,
+ 0.0022277299897944304,
+ 0.14333518005540166,
+ 0.1725534334451086,
+ 0.02781629975215046,
+ 0.006909462020702727,
+ 0.005264907420906838,
+ 0.16661437527336345,
+ 0.004325995043009185,
+ 0.003334596880011664,
+ 0.005312727802886718,
+ 0.14024668318996938,
+ 0.0013261408368566844,
+ 0.003504884093891238,
+ 0.006375273363464061,
+ 0.04964922000291588,
+ 0.008290421344219274,
+ 0.09536783787724158,
+ 0.05394372357486515,
+ 0.005505175681586237,
+ 0.005339553870826651,
+ 0.01782067356757545,
+ 0.006710016037323225,
+ 0.05105933809593235,
+ 0.002983525295232541,
+ 0.002940370316372649,
+ 0.0004548768041988629,
+ 0.01208456043154979,
+ 0.000915585362297711,
+ 0.20146260387811635,
+ 0.067196967487972,
+ 0.006158332118384605,
+ 0.025438110511736407,
+ 0.07753783350342616,
+ 0.1273876658405015,
+ 0.009337804344656656,
+ 0.07683452398308792,
+ 0.0070412596588423975,
+ 0.08747164309666132,
+ 0.0038827817466102928,
+ 0.018116926665694706,
+ 0.005017641055547455,
+ 0.004567429654468581,
+ 0.028277008310249308,
+ 0.05271555620352821,
+ 0.004394809739029013,
+ 0.0013343052923166642,
+ 0.00411605190260971,
+ 0.059621519171890944,
+ 0.09073859163143316,
+ 0.01446858142586383,
+ 0.006770666277883074,
+ 0.003425572240851436,
+ 0.0004455459979588861,
+ 0.010401516256013998,
+ 0.005825922146085436,
+ 0.10833882490158916,
+ 0.007584779122321038,
+ 0.016903921854497742,
+ 0.02719580113719201,
+ 0.0304814112844438,
+ 0.02206385770520484,
+ 0.013064295086747339,
+ 0.02696369733197259,
+ 0.009581571657676046,
+ 0.026761918647033093,
+ 0.006510570053943724,
+ 0.021941390873305145,
+ 0.07042659279778393,
+ 0.05437410701268406,
+ 0.1425175681586237,
+ 0.027802303542790494,
+ 0.037690625455605774,
+ 0.0019606356611750987,
+ 0.1095623268698061,
+ 0.06157748942994606,
+ 0.044618749088788455,
+ 0.04955124653739612,
+ 0.03608689313310978,
+ 0.018381688292754043,
+ 0.003404577926811489,
+ 0.015036594255722409,
+ 0.009600233270156,
+ 0.10794693103951014,
+ 0.12447528794284882,
+ 0.0031981338387520046,
+ 0.0074716430966613205,
+ 0.003202799241871993,
+ 0.13437643971424407,
+ 0.006655197550663361,
+ 0.0036693395538708266,
+ 0.049338970695436656,
+ 0.09486863974340283,
+ 0.0015990669193760023,
+ 0.0026604461291733486,
+ 0.051775477474850555,
+ 0.0041347135150896636,
+ 0.005450357194926374,
+ 0.12030325120279925,
+ 0.04581309228750547,
+ 0.0004537104534188657,
+ 0.12425601399620935,
+ 0.025981629975215047,
+ 0.023926519900860182,
+ 0.04423385333138941,
+ 0.0017950138504155123,
+ 0.002661612479953346,
+ 0.0006333284735384167,
+ 0.008449045050298877,
+ 0.000653156436798367,
+ 0.04816678816153958,
+ 0.008625164018078437,
+ 0.0039037760606502403,
+ 0.005228750546726928,
+ 0.004531272780288672,
+ 0.0056672984400058316,
+ 0.00359585945473101,
+ 0.0032179618020119548,
+ 0.0038093016474704767,
+ 0.011452398308791368,
+ 0.002519317684793702,
+ 0.00280390727511299,
+ 0.005572824026826068,
+ 0.004554599795888614,
+ 0.004531272780288672,
+ 0.0035841959469310393,
+ 0.004400641492928998,
+ 0.0036670068523108326,
+ 0.004839189386207902,
+ 0.006258638285464354,
+ 0.004897506925207757,
+ 0.840776789619478,
+ 0.004968654322787578,
+ 0.002886718180492783,
+ 0.0019757982213150604,
+ 0.0018568304417553576,
+ 0.001691208630995772,
+ 0.09009243329931477,
+ 0.14030150167662925,
+ 0.013242746756086894,
+ 0.013746610293045632,
+ 0.027342761335471644,
+ 0.16938912377897652,
+ 0.006607377168683481,
+ 0.01661933226417845,
+ 0.008173786266219566,
+ 0.13297448607668758,
+ 0.0034675608689313307,
+ 0.016641492928998396,
+ 0.011722991689750693,
+ 0.021493512173786266,
+ 0.03430820819361423,
+ 0.10099548039072752,
+ 0.00873596734217816,
+ 0.0018323370753754193,
+ 0.020103222044029742,
+ 0.047197550663362,
+ 0.040833940807697915,
+ 0.03361189677795597,
+ 0.010844729552412887,
+ 0.005544831608106138,
+ 0.0007522962530981193,
+ 0.01525120279924187,
+ 0.00815512465373961,
+ 0.2109648636827526,
+ 0.058258055110074355,
+ 0.007181221752442048,
+ 0.043560868931331105,
+ 0.004058900714389853,
+ 0.10618107595859454,
+ 0.0062399766729844,
+ 0.004835690333867911,
+ 0.02679224376731302,
+ 0.08414637702288964,
+ 0.0030698352529523252,
+ 0.03637498177576906,
+ 0.01592885260242018,
+ 0.017413617145356466,
+ 0.008430383437818923,
+ 0.037231083248286924,
+ 0.03290275550371775,
+ 0.007538125091121154,
+ 0.004500947660008748,
+ 0.05932409972299169,
+ 0.16006764834523984,
+ 0.03309636973319726,
+ 0.007766729844000583,
+ 0.005225251494386936,
+ 0.0006321621227584196,
+ 0.012989648636827526,
+ 0.005274238227146815,
+ 0.1254503571949264,
+ 0.12852719055255868,
+ 0.0035433736696311416,
+ 0.005203090829566993,
+ 0.0019314768916751715,
+ 0.20520775623268697,
+ 0.002509986878553725,
+ 0.00343606939787141,
+ 0.027138649948972155,
+ 0.13926578218399185,
+ 0.004565096952908587,
+ 0.005614812654905963,
+ 0.00874413179763814,
+ 0.004109053797929727,
+ 0.008300918501239247,
+ 0.08270943286193323,
+ 0.002912377897652719,
+ 0.0037066627788307337,
+ 0.06909578655780726,
+ 0.03242805073625893,
+ 0.05237614812654906,
+ 0.04723487388832191,
+ 0.0038991106575302524,
+ 0.006299460562764251,
+ 0.00043388249015891526,
+ 0.020029741944889927,
+ 0.005311561452106721,
+ 0.09334072022160665,
+ 0.022940953491762648,
+ 0.024658988190698353,
+ 0.02901297565242747,
+ 0.03531593526753171,
+ 0.0758023035427905,
+ 0.013711619769645722,
+ 0.021597317393206007,
+ 0.009670214316955824,
+ 0.044728386062108175,
+ 0.010596296836273509,
+ 0.03264382563055839,
+ 0.0604822860475288,
+ 0.05489546581134276,
+ 0.11501851581863246,
+ 0.01837585653885406,
+ 0.026237060796034405,
+ 0.0011255285026971862,
+ 0.08704125965884241,
+ 0.10156349322058608,
+ 0.06660562764251349,
+ 0.023434319871701415,
+ 0.010777081207173057,
+ 0.005409534917626476,
+ 0.003123487388832191,
+ 0.0028762210234728096,
+ 0.0089995626184575,
+ 0.07518297127861205,
+ 0.2314868056568013,
+ 0.002226563639014434,
+ 0.003285610147251786,
+ 0.0027455897361131363,
+ 0.2724537104534189,
+ 0.0016655489138358362,
+ 0.0019209797346551977,
+ 0.0022137337804344656,
+ 0.17690392185449774,
+ 0.0014532730718763668,
+ 0.0024994897215337513,
+ 0.015302522233561744,
+ 0.003441901151771395,
+ 0.015303688584341741,
+ 0.09314593964134713,
+ 0.0017833503426155418,
+ 0.0005108616416387229,
+ 0.017828838023035427,
+ 0.010385187345094037,
+ 0.003168975069252078,
+ 0.01902901297565243,
+ 0.005525003644846187,
+ 0.0010088934246974776,
+ 0.0009272488700976819,
+ 0.036282840064149294,
+ 0.0022977110365942554,
+ 0.0766805656801283,
+ 0.22270418428342326,
+ 0.005283569033386791,
+ 0.007155562035282111,
+ 0.01173582154833066,
+ 0.1715620352821111,
+ 0.003925936725470185,
+ 0.004425134859308937,
+ 0.020040239101909902,
+ 0.14243242455168392,
+ 0.0016737133692958156,
+ 0.0066808572678232975,
+ 0.011980755212130047,
+ 0.012638577052048404,
+ 0.07206065024055984,
+ 0.08115701997375711,
+ 0.00710424260096224,
+ 0.0007278028867181805,
+ 0.02347630849978131,
+ 0.04595538708266512,
+ 0.01481965301064295,
+ 0.013925061962385188,
+ 0.0018125091121154687,
+ 0.00529173348884677,
+ 0.0016340574427759146,
+ 0.03072401224668319,
+ 0.0023746901880740633,
+ 0.25174165330223064,
+ 0.06673392622831317,
+ 0.00878378772415804,
+ 0.03956261845750109,
+ 0.010077270739174807,
+ 0.0844787869951888,
+ 0.00985216503863537,
+ 0.004973319725907567,
+ 0.01893220586091267,
+ 0.11200583175389998,
+ 0.0028715556203528212,
+ 0.004095057588569762,
+ 0.01202391019098994,
+ 0.01756757544831608,
+ 0.014825484764542934,
+ 0.05312961073042717,
+ 0.06746872721971132,
+ 0.003845458521650386,
+ 0.0210806239976673,
+ 0.019443067502551394,
+ 0.08017028721387957,
+ 0.01825572240851436,
+ 0.005365213587986587,
+ 0.01959702580551101,
+ 0.026184575010934536,
+ 0.02474879720075813,
+ 0.002171745152354571,
+ 0.25827321767021433,
+ 0.048050153083539875,
+ 0.01043184137629392,
+ 0.03930485493512174,
+ 0.027640180784370902,
+ 0.03294007872867765,
+ 0.006474413179763814,
+ 0.018314039947514214,
+ 0.015119405161102202,
+ 0.014706516984983233,
+ 0.005494678524566263,
+ 0.03309870243475726,
+ 0.043864120134130345,
+ 0.058996355153812505,
+ 0.06265986295378335,
+ 0.04633328473538417,
+ 0.03790756670068523,
+ 0.0004642076104388394,
+ 0.037849249161685375,
+ 0.08369966467415076,
+ 0.04999679253535501,
+ 0.02392768625164018,
+ 0.010998687855372504,
+ 0.009881323808135296,
+ 0.003867619186470331,
+ 0.012434465665548913,
+ 0.007253535500801866,
+ 0.11106225397288234,
+ 0.17624726636535937,
+ 0.008209943140399476,
+ 0.008390727511299025,
+ 0.012682898381688294,
+ 0.1825653885406036,
+ 0.001538416678816154,
+ 0.004590756670068524,
+ 0.008710307625018223,
+ 0.1299513048549351,
+ 0.002677941390873305,
+ 0.012309666132089225,
+ 0.014087184720804781,
+ 0.01199941682461,
+ 0.031246537396121883,
+ 0.07206648199445984,
+ 0.008254264470039366,
+ 0.0007033095203382417,
+ 0.007034261554162415,
+ 0.006599212713223502,
+ 0.013906400349905234,
+ 0.050098265053214755,
+ 0.007133401370462167,
+ 0.017750692520775622,
+ 0.0008257763522379356,
+ 0.03918821985712203,
+ 0.06015454147834961,
+ );
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/CHANGELOG.md
new file mode 100644
index 00000000..0ea536bb
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/CHANGELOG.md
@@ -0,0 +1,121 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.4.3] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [0.4.2] - 2024-08-26
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.4.1] - 2024-08-15
+### Fixed
+- Fix incorrect next-version tokens in php `@since` and/or `@deprecated` docs. [#38869]
+
+## [0.4.0] - 2024-05-20
+### Deprecated
+- Extract the 'is_current_request_activating_plugin_from_plugins_screen' method into Status package. [#37430]
+
+## [0.3.5] - 2024-05-06
+### Changed
+- Internal updates.
+
+## [0.3.4] - 2024-04-08
+### Changed
+- Internal updates.
+
+## [0.3.3] - 2024-03-25
+### Changed
+- Internal updates.
+
+## [0.3.2] - 2024-03-14
+### Changed
+- Internal updates.
+
+## [0.3.1] - 2024-01-02
+### Fixed
+- Ensured that language packs are installed after installing a new plugin. [#34763]
+
+## [0.3.0] - 2023-11-20
+### Changed
+- Updated required PHP version to >= 7.0. [#34192]
+
+## [0.2.6] - 2023-11-14
+
+## [0.2.5] - 2023-08-23
+### Changed
+- Updated package dependencies. [#32605]
+
+## [0.2.4] - 2023-04-10
+### Added
+- Add Jetpack Autoloader package suggestion. [#29988]
+
+## [0.2.3] - 2023-02-20
+### Changed
+- Minor internal updates.
+
+## [0.2.2] - 2022-12-02
+### Changed
+- Updated package dependencies. [#27688]
+
+## [0.2.1] - 2022-11-22
+### Changed
+- Updated package dependencies. [#27043]
+
+## [0.2.0] - 2022-08-23
+### Added
+- Add method to check plugin activation context. [#25422]
+
+## [0.1.4] - 2022-07-26
+### Changed
+- Updated package dependencies. [#25158]
+
+## [0.1.3] - 2022-06-21
+### Changed
+- Renaming master to trunk.
+
+## [0.1.2] - 2022-04-26
+### Changed
+- Updated package dependencies.
+
+## [0.1.1] - 2022-03-29
+### Added
+- Set composer package type to "jetpack-library" so i18n will work.
+
+## 0.1.0 - 2022-02-02
+### Added
+- First version
+- New functions to safely check plugin statuses
+
+### Changed
+- Build: add missing mirror repo details, so package can be deployed.
+
+### Fixed
+- Fix method logic
+
+[0.4.3]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.4.2...v0.4.3
+[0.4.2]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.4.1...v0.4.2
+[0.4.1]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.4.0...v0.4.1
+[0.4.0]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.5...v0.4.0
+[0.3.5]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.4...v0.3.5
+[0.3.4]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.3...v0.3.4
+[0.3.3]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.2...v0.3.3
+[0.3.2]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.1...v0.3.2
+[0.3.1]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.3.0...v0.3.1
+[0.3.0]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.6...v0.3.0
+[0.2.6]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.5...v0.2.6
+[0.2.5]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.4...v0.2.5
+[0.2.4]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.3...v0.2.4
+[0.2.3]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.2...v0.2.3
+[0.2.2]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.1...v0.2.2
+[0.2.1]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.1.4...v0.2.0
+[0.1.4]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.1.3...v0.1.4
+[0.1.3]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.1.2...v0.1.3
+[0.1.2]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/Automattic/jetpack-plugins-installer/compare/v0.1.0...v0.1.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/composer.json
new file mode 100644
index 00000000..f8954ee7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/composer.json
@@ -0,0 +1,44 @@
+{
+ "name": "automattic/jetpack-plugins-installer",
+ "description": "Handle installation of plugins from WP.org",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-a8c-mc-stats": "^2.0.2",
+ "automattic/jetpack-status": "^4.0.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6"
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "branch-alias": {
+ "dev-trunk": "0.4.x-dev"
+ },
+ "mirror-repo": "Automattic/jetpack-plugins-installer",
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-plugins-installer/compare/v${old}...v${new}"
+ },
+ "autotagger": true,
+ "textdomain": "jetpack-plugins-installer"
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-automatic-install-skin.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-automatic-install-skin.php
new file mode 100644
index 00000000..f68a526e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-automatic-install-skin.php
@@ -0,0 +1,157 @@
+fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) );
+ if ( ! $result ) {
+ // set the string here since they are not available just yet.
+ $upgrader->generic_strings();
+ $this->feedback( 'fs_unavailable' );
+ }
+ }
+
+ /**
+ * Overwrites the error function
+ *
+ * @param WP_Error|mixed $error The error object.
+ */
+ public function error( $error ) {
+ if ( is_wp_error( $error ) ) {
+ $this->feedback( $error );
+ }
+ }
+
+ /**
+ * Set the main error code.
+ *
+ * Don't set the process_failed as code since it is not that helpful unless we don't have one already set
+ *
+ * @param string $code The error code.
+ * @return void
+ */
+ private function set_main_error_code( $code ) {
+ $this->main_error_code = ( 'process_failed' === $code && $this->main_error_code ? $this->main_error_code : $code );
+ }
+
+ /**
+ * Set the main error message.
+ *
+ * Don't set the process_failed as message since it is not that helpful unless we don't have one already set
+ *
+ * @param string $message The error message.
+ * @param string $code The error code.
+ * @return void
+ */
+ private function set_main_error_message( $message, $code ) {
+ $this->main_error_message = ( 'process_failed' === $code && $this->main_error_message ? $this->main_error_message : $message );
+ }
+
+ /**
+ * Get the main error code
+ *
+ * @return string
+ */
+ public function get_main_error_code() {
+ return $this->main_error_code;
+ }
+
+ /**
+ * Get the main error message
+ *
+ * @return string
+ */
+ public function get_main_error_message() {
+ return $this->main_error_message;
+ }
+
+ /**
+ * Overwrites the feedback function
+ *
+ * @param string|array|WP_Error $data Data.
+ * @param mixed ...$args Optional text replacements.
+ */
+ public function feedback( $data, ...$args ) {
+
+ $current_error = null;
+ if ( is_wp_error( $data ) ) {
+ $this->set_main_error_code( $data->get_error_code() );
+ $string = $data->get_error_message();
+ } elseif ( is_array( $data ) ) {
+ return;
+ } else {
+ $string = $data;
+ }
+
+ if ( ! empty( $this->upgrader->strings[ $string ] ) ) {
+ $this->set_main_error_code( $string );
+
+ $current_error = $string;
+ $string = $this->upgrader->strings[ $string ];
+ }
+
+ if ( strpos( $string, '%' ) !== false ) {
+ if ( ! empty( $args ) ) {
+ $string = vsprintf( $string, $args );
+ }
+ }
+
+ $string = trim( $string );
+ $string = wp_kses(
+ $string,
+ array(
+ 'a' => array(
+ 'href' => true,
+ ),
+ 'br' => true,
+ 'em' => true,
+ 'strong' => true,
+ )
+ );
+
+ $this->set_main_error_message( $string, $current_error );
+ $this->messages[] = $string;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-plugins-installer.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-plugins-installer.php
new file mode 100644
index 00000000..c86537aa
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-plugins-installer/src/class-plugins-installer.php
@@ -0,0 +1,255 @@
+install( $zip_url );
+
+ if ( is_wp_error( $result ) ) {
+ $mc_stats->add( 'install-plugin', "fail-$slug" );
+ return $result;
+ }
+
+ $plugin = self::get_plugin_id_by_slug( $slug );
+ $error_code = 'install_error';
+ if ( ! $plugin ) {
+ $error = __( 'There was an error installing your plugin', 'jetpack-plugins-installer' );
+ }
+
+ if ( ! $result ) {
+ $error_code = $skin->get_main_error_code();
+ $message = $skin->get_main_error_message();
+ $error = $message ? $message : __( 'An unknown error occurred during installation', 'jetpack-plugins-installer' );
+ }
+
+ if ( ! empty( $error ) ) {
+ if ( 'download_failed' === $error_code ) {
+ // For backwards compatibility: versions prior to 3.9 would return no_package instead of download_failed.
+ $error_code = 'no_package';
+ }
+
+ $mc_stats->add( 'install-plugin', "fail-$slug" );
+ return new WP_Error( $error_code, $error, 400 );
+ }
+
+ $mc_stats->add( 'install-plugin', "success-$slug" );
+ return (array) $upgrader->skin->get_upgrade_messages();
+ }
+
+ /**
+ * Get WordPress.org zip download link from a plugin slug
+ *
+ * @param string $plugin_slug Plugin slug.
+ */
+ protected static function generate_wordpress_org_plugin_download_link( $plugin_slug ) {
+ return "https://downloads.wordpress.org/plugin/$plugin_slug.latest-stable.zip";
+ }
+
+ /**
+ * Get the plugin ID (composed of the plugin slug and the name of the main plugin file) from a plugin slug.
+ *
+ * @param string $slug Plugin slug.
+ */
+ public static function get_plugin_id_by_slug( $slug ) {
+ // Check if get_plugins() function exists. This is required on the front end of the
+ // site, since it is in a file that is normally only loaded in the admin.
+ if ( ! function_exists( 'get_plugins' ) ) {
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
+ }
+
+ /** This filter is documented in wp-admin/includes/class-wp-plugins-list-table.php */
+ $plugins = apply_filters( 'all_plugins', get_plugins() );
+ if ( ! is_array( $plugins ) ) {
+ return false;
+ }
+
+ foreach ( $plugins as $plugin_file => $plugin_data ) {
+ if ( self::get_slug_from_file_path( $plugin_file ) === $slug ) {
+ return $plugin_file;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Get the plugin slug from the plugin ID (composed of the plugin slug and the name of the main plugin file)
+ *
+ * @param string $plugin_file Plugin file (ID -- e.g. hello-dolly/hello.php).
+ */
+ protected static function get_slug_from_file_path( $plugin_file ) {
+ // Similar to get_plugin_slug() method.
+ $slug = dirname( $plugin_file );
+ if ( '.' === $slug ) {
+ $slug = preg_replace( '/(.+)\.php$/', '$1', $plugin_file );
+ }
+
+ return $slug;
+ }
+
+ /**
+ * Get the activation status for a plugin.
+ *
+ * @since-jetpack 8.9.0
+ *
+ * @param string $plugin_file The plugin file to check.
+ * @return string Either 'network-active', 'active' or 'inactive'.
+ */
+ public static function get_plugin_status( $plugin_file ) {
+ if ( self::is_plugin_active_for_network( $plugin_file ) ) {
+ return 'network-active';
+ }
+
+ if ( self::is_plugin_active( $plugin_file ) ) {
+ return 'active';
+ }
+
+ return 'inactive';
+ }
+
+ /**
+ * Safely checks if the plugin is active
+ *
+ * @since 0.1.0
+ *
+ * @param string $plugin_file The plugin file to check.
+ * @return bool
+ */
+ public static function is_plugin_active( $plugin_file ) {
+ self::ensure_plugin_functions_are_loaded();
+ return is_plugin_active( $plugin_file );
+ }
+
+ /**
+ * Safely checks if the plugin is active for network
+ *
+ * @since 0.1.0
+ *
+ * @param string $plugin_file The plugin file to check.
+ * @return bool
+ */
+ public static function is_plugin_active_for_network( $plugin_file ) {
+ self::ensure_plugin_functions_are_loaded();
+ return is_plugin_active_for_network( $plugin_file );
+ }
+
+ /**
+ * Returns a list of all plugins in the site.
+ *
+ * @since-jetpack 8.9.0
+ * @uses get_plugins()
+ *
+ * @return array
+ */
+ public static function get_plugins() {
+ self::ensure_plugin_functions_are_loaded();
+ /** This filter is documented in wp-admin/includes/class-wp-plugins-list-table.php */
+ $plugins = apply_filters( 'all_plugins', get_plugins() );
+
+ if ( is_array( $plugins ) && ! empty( $plugins ) ) {
+ foreach ( $plugins as $plugin_slug => $plugin_data ) {
+ $plugins[ $plugin_slug ]['active'] = in_array(
+ self::get_plugin_status( $plugin_slug ),
+ array( 'active', 'network-active' ),
+ true
+ );
+ }
+ return $plugins;
+ }
+
+ return array();
+ }
+
+ /**
+ * Determine if the current request is activating a plugin from the plugins page.
+ *
+ * @deprecated 0.4.0
+ * @see Paths::is_current_request_activating_plugin_from_plugins_screen()
+ *
+ * @param string $plugin Plugin file path to check.
+ * @return bool
+ */
+ public static function is_current_request_activating_plugin_from_plugins_screen( $plugin ) {
+ _deprecated_function( __METHOD__, '0.4.0', 'Automattic\\Jetpack\\Paths::is_current_request_activating_plugin_from_plugins_screen()' );
+ return ( new Paths() )->is_current_request_activating_plugin_from_plugins_screen( $plugin );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/CHANGELOG.md
new file mode 100644
index 00000000..b40f798b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/CHANGELOG.md
@@ -0,0 +1,21 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.2.1] - 2024-08-26
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.2.0] - 2024-08-09
+### Added
+- Add Scan History model. [#38117]
+
+## 0.1.0 - 2024-07-15
+### Added
+- Initial version. [#37864]
+
+[0.2.1]: https://github.com/Automattic/jetpack-protect-models/compare/v0.2.0...v0.2.1
+[0.2.0]: https://github.com/Automattic/jetpack-protect-models/compare/v0.1.0...v0.2.0
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/composer.json
new file mode 100644
index 00000000..b30bde7e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/composer.json
@@ -0,0 +1,55 @@
+{
+ "name": "automattic/jetpack-protect-models",
+ "description": "This package contains the models used in Protect. ",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/wordbless": "0.4.2"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "build-development": "echo 'Add your build step to composer.json, please!'",
+ "build-production": "echo 'Add your build step to composer.json, please!'",
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "test-php": [
+ "@composer phpunit"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "extra": {
+ "autotagger": true,
+ "branch-alias": {
+ "dev-trunk": "0.2.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-protect-models/compare/v${old}...v${new}"
+ },
+ "mirror-repo": "Automattic/jetpack-protect-models",
+ "textdomain": "jetpack-protect-models",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-protect-models.php"
+ }
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ },
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-extension-model.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-extension-model.php
new file mode 100644
index 00000000..95a49c8e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-extension-model.php
@@ -0,0 +1,110 @@
+
+ */
+ public $threats = array();
+
+ /**
+ * Whether the extension has been checked for threats.
+ *
+ * @var null|bool
+ */
+ public $checked;
+
+ /**
+ * The type of extension ("plugins", "themes", or "core").
+ *
+ * @var null|string
+ */
+ public $type;
+
+ /**
+ * Extension Model Constructor
+ *
+ * @param array|object $extension Extension data to load into the model instance.
+ */
+ public function __construct( $extension = array() ) {
+ if ( is_object( $extension ) ) {
+ $extension = (array) $extension;
+ }
+
+ foreach ( $extension as $property => $value ) {
+ if ( property_exists( $this, $property ) ) {
+ // use the property's setter method when possible
+ if ( method_exists( $this, "set_$property" ) ) {
+ $this->{ "set_$property" }( $value );
+ continue;
+ }
+
+ // otherwise, map the value directly into the class property
+ $this->$property = $value;
+ }
+ }
+ }
+
+ /**
+ * Set Threats
+ *
+ * @param array $threats An array of threat data to add to the extension.
+ */
+ public function set_threats( $threats ) {
+ if ( ! is_array( $threats ) ) {
+ $this->threats = array();
+ return;
+ }
+
+ // convert each provided threat item into an instance of Threat_Model
+ $threats = array_map(
+ function ( $threat ) {
+ if ( is_a( $threat, 'Threat_Model' ) ) {
+ return $threat;
+ }
+
+ if ( is_object( $threat ) ) {
+ $threat = (array) $threat;
+ }
+
+ return new Threat_Model( $threat );
+ },
+ $threats
+ );
+
+ $this->threats = $threats;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-history-model.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-history-model.php
new file mode 100644
index 00000000..ff10ae4b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-history-model.php
@@ -0,0 +1,117 @@
+
+ */
+ public $core = array();
+
+ /**
+ * Status themes.
+ *
+ * @var array
+ */
+ public $themes = array();
+
+ /**
+ * Status plugins.
+ *
+ * @var array
+ */
+ public $plugins = array();
+
+ /**
+ * File threats.
+ *
+ * @var array
+ */
+ public $files = array();
+
+ /**
+ * Database threats.
+ *
+ * @var array
+ */
+ public $database = array();
+
+ /**
+ * Whether there was an error loading the history.
+ *
+ * @var bool
+ */
+ public $error = false;
+
+ /**
+ * The error code thrown when loading the history.
+ *
+ * @var string
+ */
+ public $error_code;
+
+ /**
+ * The error message thrown when loading the history.
+ *
+ * @var string
+ */
+ public $error_message;
+
+ /**
+ * Status constructor.
+ *
+ * @param array $history The history data to load into the class instance.
+ */
+ public function __construct( $history = array() ) {
+ foreach ( $history as $property => $value ) {
+ if ( property_exists( $this, $property ) ) {
+ $this->$property = $value;
+ }
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-protect-models.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-protect-models.php
new file mode 100644
index 00000000..a479f90a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-protect-models.php
@@ -0,0 +1,16 @@
+
+ */
+ public $themes = array();
+
+ /**
+ * Status plugins.
+ *
+ * @var array
+ */
+ public $plugins = array();
+
+ /**
+ * File threats.
+ *
+ * @var array
+ */
+ public $files = array();
+
+ /**
+ * Database threats.
+ *
+ * @var array
+ */
+ public $database = array();
+
+ /**
+ * Whether the site includes items that have not been checked.
+ *
+ * @var boolean
+ */
+ public $has_unchecked_items;
+
+ /**
+ * The estimated percentage of the current scan.
+ *
+ * @var int
+ */
+ public $current_progress;
+
+ /**
+ * Whether there was an error loading the status.
+ *
+ * @var bool
+ */
+ public $error = false;
+
+ /**
+ * The error code thrown when loading the status.
+ *
+ * @var string
+ */
+ public $error_code;
+
+ /**
+ * The error message thrown when loading the status.
+ *
+ * @var string
+ */
+ public $error_message;
+
+ /**
+ * Status constructor.
+ *
+ * @param array $status The status data to load into the class instance.
+ */
+ public function __construct( $status = array() ) {
+ // set status defaults
+ $this->core = new \stdClass();
+
+ foreach ( $status as $property => $value ) {
+ if ( property_exists( $this, $property ) ) {
+ $this->$property = $value;
+ }
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-threat-model.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-threat-model.php
new file mode 100644
index 00000000..d85e1b97
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-models/src/class-threat-model.php
@@ -0,0 +1,122 @@
+ $value ) {
+ if ( property_exists( $this, $property ) ) {
+ $this->$property = $value;
+ }
+ }
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/CHANGELOG.md
new file mode 100644
index 00000000..277db26f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/CHANGELOG.md
@@ -0,0 +1,39 @@
+# Changelog
+
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## [0.1.5] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [0.1.4] - 2024-09-05
+### Changed
+- Update dependencies.
+
+## [0.1.3] - 2024-08-26
+### Changed
+- Updated package dependencies. [#39004]
+
+## [0.1.2] - 2024-08-19
+### Changed
+- Internal updates.
+
+## [0.1.1] - 2024-08-09
+### Changed
+- Update dependencies.
+
+## 0.1.0 - 2024-07-15
+### Added
+- Initial version. [#37894]
+
+### Changed
+- Updated package dependencies. [#37894]
+
+[0.1.5]: https://github.com/Automattic/jetpack-protect-status/compare/v0.1.4...v0.1.5
+[0.1.4]: https://github.com/Automattic/jetpack-protect-status/compare/v0.1.3...v0.1.4
+[0.1.3]: https://github.com/Automattic/jetpack-protect-status/compare/v0.1.2...v0.1.3
+[0.1.2]: https://github.com/Automattic/jetpack-protect-status/compare/v0.1.1...v0.1.2
+[0.1.1]: https://github.com/Automattic/jetpack-protect-status/compare/v0.1.0...v0.1.1
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/LICENSE.txt b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/LICENSE.txt
new file mode 100644
index 00000000..e82774c1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/LICENSE.txt
@@ -0,0 +1,357 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+===================================
+
+
+GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.
+
+ Preamble
+
+The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+a) You must cause the modified files to carry prominent notices
+stating that you changed the files and the date of any change.
+
+b) You must cause any work that you distribute or publish, that in
+whole or in part contains or is derived from the Program or any
+part thereof, to be licensed as a whole at no charge to all third
+parties under the terms of this License.
+
+c) If the modified program normally reads commands interactively
+when run, you must cause it, when started running for such
+interactive use in the most ordinary way, to print or display an
+announcement including an appropriate copyright notice and a
+notice that there is no warranty (or else, saying that you provide
+a warranty) and that users may redistribute the program under
+these conditions, and telling the user how to view a copy of this
+License. (Exception: if the Program itself is interactive but
+does not normally print such an announcement, your work based on
+the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+a) Accompany it with the complete corresponding machine-readable
+source code, which must be distributed under the terms of Sections
+1 and 2 above on a medium customarily used for software interchange; or,
+
+b) Accompany it with a written offer, valid for at least three
+years, to give any third party, for a charge no more than your
+cost of physically performing source distribution, a complete
+machine-readable copy of the corresponding source code, to be
+distributed under the terms of Sections 1 and 2 above on a medium
+customarily used for software interchange; or,
+
+c) Accompany it with the information you received as to the offer
+to distribute corresponding source code. (This alternative is
+allowed only for noncommercial distribution and only if you
+received the program in object code or executable form with such
+an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+Copyright (C)
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author
+Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+`Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/SECURITY.md b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/SECURITY.md
new file mode 100644
index 00000000..98f48dd1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/SECURITY.md
@@ -0,0 +1,47 @@
+# Security Policy
+
+Full details of the Automattic Security Policy can be found on [automattic.com](https://automattic.com/security/).
+
+## Supported Versions
+
+Generally, only the latest version of Jetpack and its associated plugins have continued support. If a critical vulnerability is found in the current version of a plugin, we may opt to backport any patches to previous versions.
+
+## Reporting a Vulnerability
+
+Our HackerOne program covers the below plugin software, as well as a variety of related projects and infrastructure:
+
+* [Jetpack](https://jetpack.com/)
+* Jetpack Backup
+* Jetpack Boost
+* Jetpack CRM
+* Jetpack Protect
+* Jetpack Search
+* Jetpack Social
+* Jetpack VideoPress
+
+**For responsible disclosure of security issues and to be eligible for our bug bounty program, please submit your report via the [HackerOne](https://hackerone.com/automattic) portal.**
+
+Our most critical targets are:
+
+* Jetpack and the Jetpack composer packages (all within this repo)
+* Jetpack.com -- the primary marketing site.
+* cloud.jetpack.com -- a management site.
+* wordpress.com -- the shared management site for both Jetpack and WordPress.com sites.
+
+For more targets, see the `In Scope` section on [HackerOne](https://hackerone.com/automattic).
+
+_Please note that the **WordPress software is a separate entity** from Automattic. Please report vulnerabilities for WordPress through [the WordPress Foundation's HackerOne page](https://hackerone.com/wordpress)._
+
+## Guidelines
+
+We're committed to working with security researchers to resolve the vulnerabilities they discover. You can help us by following these guidelines:
+
+* Follow [HackerOne's disclosure guidelines](https://www.hackerone.com/disclosure-guidelines).
+* Pen-testing Production:
+ * Please **setup a local environment** instead whenever possible. Most of our code is open source (see above).
+ * If that's not possible, **limit any data access/modification** to the bare minimum necessary to reproduce a PoC.
+ * **_Don't_ automate form submissions!** That's very annoying for us, because it adds extra work for the volunteers who manage those systems, and reduces the signal/noise ratio in our communication channels.
+ * To be eligible for a bounty, all of these guidelines must be followed.
+* Be Patient - Give us a reasonable time to correct the issue before you disclose the vulnerability.
+
+We also expect you to comply with all applicable laws. You're responsible to pay any taxes associated with your bounties.
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/composer.json b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/composer.json
new file mode 100644
index 00000000..42ba1d65
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/composer.json
@@ -0,0 +1,60 @@
+{
+ "name": "automattic/jetpack-protect-status",
+ "description": "This package contains the Protect Status API functionality to retrieve a site's scan status (WordPress, Themes, and Plugins threats).",
+ "type": "jetpack-library",
+ "license": "GPL-2.0-or-later",
+ "require": {
+ "php": ">=7.0",
+ "automattic/jetpack-connection": "^4.0.0",
+ "automattic/jetpack-plugins-installer": "^0.4.3",
+ "automattic/jetpack-sync": "^3.10.0",
+ "automattic/jetpack-protect-models": "^0.2.1",
+ "automattic/jetpack-plans": "^0.4.10"
+ },
+ "require-dev": {
+ "yoast/phpunit-polyfills": "^1.1.1",
+ "automattic/jetpack-changelogger": "^4.2.6",
+ "automattic/wordbless": "dev-master"
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "scripts": {
+ "build-development": "echo 'Add your build step to composer.json, please!'",
+ "build-production": "echo 'Add your build step to composer.json, please!'",
+ "phpunit": [
+ "./vendor/phpunit/phpunit/phpunit --colors=always"
+ ],
+ "post-install-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "post-update-cmd": "WorDBless\\Composer\\InstallDropin::copy",
+ "test-php": [
+ "@composer phpunit"
+ ]
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true,
+ "config": {
+ "allow-plugins": {
+ "roots/wordpress-core-installer": true
+ }
+ },
+ "extra": {
+ "autotagger": true,
+ "branch-alias": {
+ "dev-trunk": "0.1.x-dev"
+ },
+ "changelogger": {
+ "link-template": "https://github.com/Automattic/jetpack-protect-status/compare/v${old}...v${new}"
+ },
+ "mirror-repo": "Automattic/jetpack-protect-status",
+ "textdomain": "jetpack-protect-status",
+ "version-constants": {
+ "::PACKAGE_VERSION": "src/class-status.php"
+ }
+ },
+ "suggest": {
+ "automattic/jetpack-autoloader": "Allow for better interoperability with other plugins that use this package."
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-plan.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-plan.php
new file mode 100644
index 00000000..67d5cf0e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-plan.php
@@ -0,0 +1,111 @@
+ ( self::CACHE_VALIDITY_PERIOD );
+ }
+
+ /**
+ * Gets the product list from the user cache
+ */
+ private static function get_product_from_cache() {
+ return get_user_meta( get_current_user_id(), self::CACHE_META_NAME, true );
+ }
+
+ /**
+ * Gets the product data
+ *
+ * @param string $wpcom_product The product slug.
+ * @return array
+ */
+ public static function get_product( $wpcom_product = 'jetpack_scan' ) {
+ if ( ! self::is_cache_old() ) {
+ return self::get_product_from_cache();
+ }
+
+ $request_url = 'https://public-api.wordpress.com/rest/v1.1/products?locale=' . get_user_locale() . '&type=jetpack';
+ $wpcom_request = wp_remote_get( esc_url_raw( $request_url ) );
+ $response_code = wp_remote_retrieve_response_code( $wpcom_request );
+
+ if ( 200 === $response_code ) {
+ $products = json_decode( wp_remote_retrieve_body( $wpcom_request ) );
+
+ // Pick the desired product...
+ $product = $products->{$wpcom_product};
+
+ // ... and store it into the cache.
+ update_user_meta( get_current_user_id(), self::CACHE_DATE_META_NAME, time() );
+ update_user_meta( get_current_user_id(), self::CACHE_META_NAME, $product );
+
+ return $product;
+ }
+
+ return new \WP_Error(
+ 'failed_to_fetch_data',
+ esc_html__( 'Unable to fetch the requested data.', 'jetpack-protect-status' ),
+ array(
+ 'status' => $response_code,
+ 'request' => $wpcom_request,
+ )
+ );
+ }
+
+ /**
+ * Has Required Plan
+ *
+ * @param bool $force_refresh Refresh the local plan cache from wpcom.
+ * @return bool True when the site has a plan or product that supports the paid Protect tier.
+ */
+ public static function has_required_plan( $force_refresh = false ) {
+ static $has_scan = null;
+ if ( null === $has_scan || $force_refresh ) {
+ $products = array_column( Current_Plan::get_products(), 'product_slug' );
+
+ // Check for a plan or product that enables scan.
+ $plan_supports_scan = Current_Plan::supports( 'scan', true );
+ $has_scan_product = count( array_intersect( array( 'jetpack_scan', 'jetpack_scan_monthly' ), $products ) ) > 0;
+ $has_scan = $plan_supports_scan || $has_scan_product;
+ }
+
+ return $has_scan;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-protect-status.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-protect-status.php
new file mode 100644
index 00000000..832b1cde
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-protect-status.php
@@ -0,0 +1,261 @@
+ true,
+ 'error_code' => $status->get_error_code(),
+ 'error_message' => $status->get_error_message(),
+ )
+ );
+ } else {
+ $status = self::normalize_protect_report_data( $status );
+ }
+
+ self::$status = $status;
+ return $status;
+ }
+
+ /**
+ * Gets the WPCOM API endpoint
+ *
+ * @return WP_Error|string
+ */
+ public static function get_api_url() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $is_connected = ( new Connection_Manager() )->is_connected();
+
+ if ( ! $blog_id || ! $is_connected ) {
+ return new WP_Error( 'site_not_connected' );
+ }
+
+ $api_url = sprintf( self::REST_API_BASE, $blog_id );
+
+ return $api_url;
+ }
+
+ /**
+ * Fetches the status from WPCOM servers
+ *
+ * @return WP_Error|array
+ */
+ public static function fetch_from_server() {
+ $api_url = self::get_api_url();
+ if ( is_wp_error( $api_url ) ) {
+ return $api_url;
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ self::get_api_url(),
+ '2',
+ array( 'method' => 'GET' ),
+ null,
+ 'wpcom'
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $response );
+
+ if ( is_wp_error( $response ) || 200 !== $response_code || empty( $response['body'] ) ) {
+ return new WP_Error( 'failed_fetching_status', 'Failed to fetch Protect Status data from server', array( 'status' => $response_code ) );
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+ self::update_status_option( $body );
+ return $body;
+ }
+
+ /**
+ * Normalize data from the Protect Report data source.
+ *
+ * @param object $report_data Data from the Protect Report.
+ * @return Status_Model
+ */
+ protected static function normalize_protect_report_data( $report_data ) {
+ $status = new Status_Model();
+ $status->data_source = 'protect_report';
+
+ // map report data properties directly into the Status_Model
+ $status->status = isset( $report_data->status ) ? $report_data->status : null;
+ $status->last_checked = isset( $report_data->last_checked ) ? $report_data->last_checked : null;
+ $status->num_threats = isset( $report_data->num_vulnerabilities ) ? $report_data->num_vulnerabilities : null;
+ $status->num_themes_threats = isset( $report_data->num_themes_vulnerabilities ) ? $report_data->num_themes_vulnerabilities : null;
+ $status->num_plugins_threats = isset( $report_data->num_plugins_vulnerabilities ) ? $report_data->num_plugins_vulnerabilities : null;
+
+ // merge plugins from report with all installed plugins before mapping into the Status_Model
+ $installed_plugins = Plugins_Installer::get_plugins();
+ $last_report_plugins = isset( $report_data->plugins ) ? $report_data->plugins : new \stdClass();
+ $status->plugins = self::merge_installed_and_checked_lists( $installed_plugins, $last_report_plugins, array( 'type' => 'plugins' ) );
+
+ // merge themes from report with all installed plugins before mapping into the Status_Model
+ $installed_themes = Sync_Functions::get_themes();
+ $last_report_themes = isset( $report_data->themes ) ? $report_data->themes : new \stdClass();
+ $status->themes = self::merge_installed_and_checked_lists( $installed_themes, $last_report_themes, array( 'type' => 'themes' ) );
+
+ // normalize WordPress core report data and map into Status_Model
+ $status->core = self::normalize_core_information( isset( $report_data->core ) ? $report_data->core : new \stdClass() );
+
+ // check if any installed items (themes, plugins, or core) have not been checked in the report
+ $all_items = array_merge( $status->plugins, $status->themes, array( $status->core ) );
+ $unchecked_items = array_filter(
+ $all_items,
+ function ( $item ) {
+ return ! isset( $item->checked ) || ! $item->checked;
+ }
+ );
+ $status->has_unchecked_items = ! empty( $unchecked_items );
+
+ return $status;
+ }
+
+ /**
+ * Merges the list of installed extensions with the list of extensions that were checked for known vulnerabilities and return a normalized list to be used in the UI
+ *
+ * @param array $installed The list of installed extensions, where each attribute key is the extension slug.
+ * @param object $checked The list of checked extensions.
+ * @param array $append Additional data to append to each result in the list.
+ * @return array Normalized list of extensions.
+ */
+ protected static function merge_installed_and_checked_lists( $installed, $checked, $append ) {
+ $new_list = array();
+ foreach ( array_keys( $installed ) as $slug ) {
+
+ $checked = (object) $checked;
+
+ $extension = new Extension_Model(
+ array_merge(
+ array(
+ 'name' => $installed[ $slug ]['Name'],
+ 'version' => $installed[ $slug ]['Version'],
+ 'slug' => $slug,
+ 'threats' => array(),
+ 'checked' => false,
+ ),
+ $append
+ )
+ );
+
+ if ( isset( $checked->{ $slug } ) && $checked->{ $slug }->version === $installed[ $slug ]['Version'] ) {
+ $extension->version = $checked->{ $slug }->version;
+ $extension->checked = true;
+
+ if ( is_array( $checked->{ $slug }->vulnerabilities ) ) {
+ foreach ( $checked->{ $slug }->vulnerabilities as $threat ) {
+ $extension->threats[] = new Threat_Model(
+ array(
+ 'id' => $threat->id,
+ 'title' => $threat->title,
+ 'fixed_in' => $threat->fixed_in,
+ 'description' => isset( $threat->description ) ? $threat->description : null,
+ 'source' => isset( $threat->id ) ? Redirect::get_url( 'jetpack-protect-vul-info', array( 'path' => $threat->id ) ) : null,
+ )
+ );
+ }
+ }
+ }
+
+ $new_list[] = $extension;
+
+ }
+
+ $new_list = parent::sort_threats( $new_list );
+
+ return $new_list;
+ }
+
+ /**
+ * Check if the WordPress version that was checked matches the current installed version.
+ *
+ * @param object $core_check The object returned by Protect wpcom endpoint.
+ * @return object The object representing the current status of core checks.
+ */
+ protected static function normalize_core_information( $core_check ) {
+ global $wp_version;
+
+ $core = new Extension_Model(
+ array(
+ 'type' => 'core',
+ 'name' => 'WordPress',
+ 'version' => $wp_version,
+ 'checked' => false,
+ )
+ );
+
+ if ( isset( $core_check->version ) && $core_check->version === $wp_version ) {
+ if ( is_array( $core_check->vulnerabilities ) ) {
+ $core->checked = true;
+ $core->set_threats(
+ array_map(
+ function ( $vulnerability ) {
+ $vulnerability->source = isset( $vulnerability->id ) ? Redirect::get_url( 'jetpack-protect-vul-info', array( 'path' => $vulnerability->id ) ) : null;
+ return $vulnerability;
+ },
+ $core_check->vulnerabilities
+ )
+ );
+ }
+ }
+
+ return $core;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-rest-controller.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-rest-controller.php
new file mode 100644
index 00000000..9faa1545
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-rest-controller.php
@@ -0,0 +1,112 @@
+ \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::api_check_plan',
+ 'permission_callback' => function () {
+ return current_user_can( 'manage_options' );
+ },
+ )
+ );
+
+ register_rest_route(
+ 'jetpack-protect/v1',
+ 'status',
+ array(
+ 'methods' => \WP_REST_Server::READABLE,
+ 'callback' => __CLASS__ . '::api_get_status',
+ 'permission_callback' => function () {
+ return current_user_can( 'manage_options' );
+ },
+ )
+ );
+
+ register_rest_route(
+ 'jetpack-protect/v1',
+ 'clear-scan-cache',
+ array(
+ 'methods' => \WP_REST_Server::EDITABLE,
+ 'callback' => __CLASS__ . '::api_clear_scan_cache',
+ 'permission_callback' => function () {
+ return current_user_can( 'manage_options' );
+ },
+ )
+ );
+ }
+
+ /**
+ * Return site plan data for the API endpoint
+ *
+ * @return WP_REST_Response
+ */
+ public static function api_check_plan() {
+ $has_required_plan = Plan::has_required_plan();
+
+ return rest_ensure_response( $has_required_plan, 200 );
+ }
+
+ /**
+ * Return Protect Status for the API endpoint
+ *
+ * @param WP_REST_Request $request The request object.
+ *
+ * @return WP_REST_Response
+ */
+ public static function api_get_status( $request ) {
+ $status = Status::get_status( $request['hard_refresh'] );
+ return rest_ensure_response( $status, 200 );
+ }
+
+ /**
+ * Clear the Scan_Status cache for the API endpoint
+ *
+ * @return WP_REST_Response
+ */
+ public static function api_clear_scan_cache() {
+ $cache_cleared = Scan_Status::delete_option();
+
+ if ( ! $cache_cleared ) {
+ return new WP_REST_Response( 'An error occured while attempting to clear the Jetpack Scan cache.', 500 );
+ }
+
+ return new WP_REST_Response( 'Jetpack Scan cache cleared.' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-scan-status.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-scan-status.php
new file mode 100644
index 00000000..d0f3d58e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-scan-status.php
@@ -0,0 +1,362 @@
+ true,
+ 'error_code' => $status->get_error_code(),
+ 'error_message' => $status->get_error_message(),
+ )
+ );
+ } else {
+ $status = self::normalize_api_data( $status );
+ }
+
+ self::$status = $status;
+ return $status;
+ }
+
+ /**
+ * Gets the Scan API endpoint
+ *
+ * @return WP_Error|string
+ */
+ public static function get_api_url() {
+ $blog_id = Jetpack_Options::get_option( 'id' );
+ $is_connected = ( new Connection_Manager() )->is_connected();
+
+ if ( ! $blog_id || ! $is_connected ) {
+ return new WP_Error( 'site_not_connected' );
+ }
+
+ $api_url = sprintf( self::SCAN_API_BASE, $blog_id );
+
+ return $api_url;
+ }
+
+ /**
+ * Fetches the status data from the Scan API
+ *
+ * @return WP_Error|array
+ */
+ public static function fetch_from_api() {
+ $api_url = self::get_api_url();
+ if ( is_wp_error( $api_url ) ) {
+ return $api_url;
+ }
+
+ $response = Client::wpcom_json_api_request_as_blog(
+ self::get_api_url(),
+ '2',
+ array( 'method' => 'GET' ),
+ null,
+ 'wpcom'
+ );
+
+ $response_code = wp_remote_retrieve_response_code( $response );
+
+ if ( is_wp_error( $response ) || 200 !== $response_code || empty( $response['body'] ) ) {
+ return new WP_Error( 'failed_fetching_status', 'Failed to fetch Scan data from the server', array( 'status' => $response_code ) );
+ }
+
+ $body = json_decode( wp_remote_retrieve_body( $response ) );
+ self::update_status_option( $body );
+ return $body;
+ }
+
+ /**
+ * Normalize API Data
+ * Formats the payload from the Scan API into an instance of Status_Model.
+ *
+ * @param object $scan_data The data returned by the scan API.
+ *
+ * @return Status_Model
+ */
+ private static function normalize_api_data( $scan_data ) {
+ global $wp_version;
+
+ $status = new Status_Model();
+ $status->data_source = 'scan_api';
+ $status->status = isset( $scan_data->state ) ? $scan_data->state : null;
+ $status->num_threats = 0;
+ $status->num_themes_threats = 0;
+ $status->num_plugins_threats = 0;
+ $status->has_unchecked_items = false;
+ $status->current_progress = isset( $scan_data->current->progress ) ? $scan_data->current->progress : null;
+
+ if ( ! empty( $scan_data->most_recent->timestamp ) ) {
+ $date = new \DateTime( $scan_data->most_recent->timestamp );
+ if ( $date ) {
+ $status->last_checked = $date->format( 'Y-m-d H:i:s' );
+ }
+ }
+
+ $status->core = new Extension_Model(
+ array(
+ 'type' => 'core',
+ 'name' => 'WordPress',
+ 'version' => $wp_version,
+ 'checked' => true, // to do: default to false once Scan API has manifest
+ )
+ );
+
+ if ( isset( $scan_data->threats ) && is_array( $scan_data->threats ) ) {
+ foreach ( $scan_data->threats as $threat ) {
+ if ( isset( $threat->extension->type ) ) {
+ if ( 'plugin' === $threat->extension->type ) {
+ // add the extension if it does not yet exist in the status
+ if ( ! isset( $status->plugins[ $threat->extension->slug ] ) ) {
+ $status->plugins[ $threat->extension->slug ] = new Extension_Model(
+ array(
+ 'name' => isset( $threat->extension->name ) ? $threat->extension->name : null,
+ 'slug' => isset( $threat->extension->slug ) ? $threat->extension->slug : null,
+ 'version' => isset( $threat->extension->version ) ? $threat->extension->version : null,
+ 'type' => 'plugin',
+ 'checked' => true,
+ 'threats' => array(),
+ )
+ );
+ }
+
+ $status->plugins[ $threat->extension->slug ]->threats[] = new Threat_Model(
+ array(
+ 'id' => isset( $threat->id ) ? $threat->id : null,
+ 'signature' => isset( $threat->signature ) ? $threat->signature : null,
+ 'title' => isset( $threat->title ) ? $threat->title : null,
+ 'description' => isset( $threat->description ) ? $threat->description : null,
+ 'vulnerability_description' => isset( $threat->vulnerability_description ) ? $threat->vulnerability_description : null,
+ 'fix_description' => isset( $threat->fix_description ) ? $threat->fix_description : null,
+ 'payload_subtitle' => isset( $threat->payload_subtitle ) ? $threat->payload_subtitle : null,
+ 'payload_description' => isset( $threat->payload_description ) ? $threat->payload_description : null,
+ 'first_detected' => isset( $threat->first_detected ) ? $threat->first_detected : null,
+ 'fixed_in' => isset( $threat->fixer->fixer ) && 'update' === $threat->fixer->fixer ? $threat->fixer->target : null,
+ 'severity' => isset( $threat->severity ) ? $threat->severity : null,
+ 'fixable' => isset( $threat->fixer ) ? $threat->fixer : null,
+ 'status' => isset( $threat->status ) ? $threat->status : null,
+ 'filename' => isset( $threat->filename ) ? $threat->filename : null,
+ 'context' => isset( $threat->context ) ? $threat->context : null,
+ 'source' => isset( $threat->source ) ? $threat->source : null,
+ )
+ );
+ ++$status->num_threats;
+ ++$status->num_plugins_threats;
+ continue;
+ }
+
+ if ( 'theme' === $threat->extension->type ) {
+ // add the extension if it does not yet exist in the status
+ if ( ! isset( $status->themes[ $threat->extension->slug ] ) ) {
+ $status->themes[ $threat->extension->slug ] = new Extension_Model(
+ array(
+ 'name' => isset( $threat->extension->name ) ? $threat->extension->name : null,
+ 'slug' => isset( $threat->extension->slug ) ? $threat->extension->slug : null,
+ 'version' => isset( $threat->extension->version ) ? $threat->extension->version : null,
+ 'type' => 'theme',
+ 'checked' => true,
+ 'threats' => array(),
+ )
+ );
+ }
+
+ $status->themes[ $threat->extension->slug ]->threats[] = new Threat_Model(
+ array(
+ 'id' => isset( $threat->id ) ? $threat->id : null,
+ 'signature' => isset( $threat->signature ) ? $threat->signature : null,
+ 'title' => isset( $threat->title ) ? $threat->title : null,
+ 'description' => isset( $threat->description ) ? $threat->description : null,
+ 'vulnerability_description' => isset( $threat->vulnerability_description ) ? $threat->vulnerability_description : null,
+ 'fix_description' => isset( $threat->fix_description ) ? $threat->fix_description : null,
+ 'payload_subtitle' => isset( $threat->payload_subtitle ) ? $threat->payload_subtitle : null,
+ 'payload_description' => isset( $threat->payload_description ) ? $threat->payload_description : null,
+ 'first_detected' => isset( $threat->first_detected ) ? $threat->first_detected : null,
+ 'fixed_in' => isset( $threat->fixer->fixer ) && 'update' === $threat->fixer->fixer ? $threat->fixer->target : null,
+ 'severity' => isset( $threat->severity ) ? $threat->severity : null,
+ 'fixable' => isset( $threat->fixer ) ? $threat->fixer : null,
+ 'status' => isset( $threat->status ) ? $threat->status : null,
+ 'filename' => isset( $threat->filename ) ? $threat->filename : null,
+ 'context' => isset( $threat->context ) ? $threat->context : null,
+ 'source' => isset( $threat->source ) ? $threat->source : null,
+ )
+ );
+ ++$status->num_threats;
+ ++$status->num_themes_threats;
+ continue;
+ }
+ }
+
+ if ( isset( $threat->signature ) && 'Vulnerable.WP.Core' === $threat->signature ) {
+ if ( $threat->version !== $wp_version ) {
+ continue;
+ }
+
+ $status->core->threats[] = new Threat_Model(
+ array(
+ 'id' => $threat->id,
+ 'signature' => $threat->signature,
+ 'title' => $threat->title,
+ 'description' => $threat->description,
+ 'first_detected' => $threat->first_detected,
+ 'severity' => $threat->severity,
+ )
+ );
+ ++$status->num_threats;
+
+ continue;
+ }
+
+ if ( ! empty( $threat->filename ) ) {
+ $status->files[] = new Threat_Model( $threat );
+ ++$status->num_threats;
+ continue;
+ }
+
+ if ( ! empty( $threat->table ) ) {
+ $status->database[] = new Threat_Model( $threat );
+ ++$status->num_threats;
+ continue;
+ }
+ }
+ }
+
+ $installed_plugins = Plugins_Installer::get_plugins();
+ $status->plugins = self::merge_installed_and_checked_lists( $installed_plugins, $status->plugins, array( 'type' => 'plugins' ), true );
+
+ $installed_themes = Sync_Functions::get_themes();
+ $status->themes = self::merge_installed_and_checked_lists( $installed_themes, $status->themes, array( 'type' => 'themes' ), true );
+
+ foreach ( array_merge( $status->themes, $status->plugins ) as $extension ) {
+ if ( ! $extension->checked ) {
+ $status->has_unchecked_items = true;
+ break;
+ }
+ }
+
+ return $status;
+ }
+
+ /**
+ * Merges the list of installed extensions with the list of extensions that were checked for known vulnerabilities and return a normalized list to be used in the UI
+ *
+ * @param array $installed The list of installed extensions, where each attribute key is the extension slug.
+ * @param object $checked The list of checked extensions.
+ * @param array $append Additional data to append to each result in the list.
+ * @return array Normalized list of extensions.
+ */
+ protected static function merge_installed_and_checked_lists( $installed, $checked, $append ) {
+ $new_list = array();
+ $checked = (object) $checked;
+
+ foreach ( array_keys( $installed ) as $slug ) {
+ /**
+ * Extension Type Map
+ *
+ * @var array $extension_type_map Key value pairs of extension types and their corresponding
+ * identifier used by the Scan API data source.
+ */
+ $extension_type_map = array(
+ 'themes' => 'r1',
+ 'plugins' => 'r2',
+ );
+
+ $version = $installed[ $slug ]['Version'];
+ $short_slug = str_replace( '.php', '', explode( '/', $slug )[0] );
+ $scanifest_slug = $extension_type_map[ $append['type'] ] . ":$short_slug@$version";
+
+ $extension = new Extension_Model(
+ array_merge(
+ array(
+ 'name' => $installed[ $slug ]['Name'],
+ 'version' => $version,
+ 'slug' => $slug,
+ 'threats' => array(),
+ 'checked' => false,
+ ),
+ $append
+ )
+ );
+
+ if ( ! isset( $checked->extensions ) // no extension data available from Scan API
+ || is_array( $checked->extensions ) && in_array( $scanifest_slug, $checked->extensions, true ) // extension data matches Scan API
+ ) {
+ $extension->checked = true;
+ if ( isset( $checked->{ $short_slug }->threats ) ) {
+ $extension->threats = $checked->{ $short_slug }->threats;
+ }
+ }
+
+ $new_list[] = $extension;
+
+ }
+
+ $new_list = parent::sort_threats( $new_list );
+
+ return $new_list;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-status.php b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-status.php
new file mode 100644
index 00000000..184f546c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/jetpack-protect/jetpack_vendor/automattic/jetpack-protect-status/src/class-status.php
@@ -0,0 +1,311 @@
+ (int) $option_timestamp;
+ }
+
+ /**
+ * Checks if we should consider the stored cache or bypass it
+ *
+ * @return boolean
+ */
+ public static function should_use_cache() {
+ return defined( 'JETPACK_PROTECT_DEV__BYPASS_CACHE' ) && JETPACK_PROTECT_DEV__BYPASS_CACHE ? false : true;
+ }
+
+ /**
+ * Gets the current cached status
+ *
+ * @return bool|array False if value is not found. Array with values if cache is found.
+ */
+ public static function get_from_options() {
+ return maybe_unserialize( get_option( static::OPTION_NAME ) );
+ }
+
+ /**
+ * Updated the cached status and its timestamp
+ *
+ * @param array $status The new status to be cached.
+ * @return void
+ */
+ public static function update_status_option( $status ) {
+ // TODO: Sanitize $status.
+ update_option( static::OPTION_NAME, maybe_serialize( $status ) );
+ $end_date = self::get_cache_end_date_by_status( $status );
+ update_option( static::OPTION_TIMESTAMP_NAME, $end_date );
+ }
+
+ /**
+ * Returns the timestamp the cache should expire depending on the current status
+ *
+ * Initial empty status, which are returned before the first check was performed, should be cache for less time
+ *
+ * @param object $status The response from the server being cached.
+ * @return int The timestamp when the cache should expire.
+ */
+ public static function get_cache_end_date_by_status( $status ) {
+ if ( ! is_object( $status ) || empty( $status->last_checked ) ) {
+ return time() + static::INITIAL_OPTION_EXPIRES_AFTER;
+ }
+ return time() + static::OPTION_EXPIRES_AFTER;
+ }
+
+ /**
+ * Delete the cached status and its timestamp
+ *
+ * @return bool Whether all related status options were successfully deleted.
+ */
+ public static function delete_option() {
+ $option_deleted = delete_option( static::OPTION_NAME );
+ $option_timestamp_deleted = delete_option( static::OPTION_TIMESTAMP_NAME );
+
+ return $option_deleted && $option_timestamp_deleted;
+ }
+
+ /**
+ * Checks the current status to see if there are any threats found
+ *
+ * @return boolean
+ */
+ public static function has_threats() {
+ return 0 < self::get_total_threats();
+ }
+
+ /**
+ * Gets the total number of threats found
+ *
+ * @return integer
+ */
+ public static function get_total_threats() {
+ $status = static::get_status();
+ return isset( $status->num_threats ) && is_int( $status->num_threats ) ? $status->num_threats : 0;
+ }
+
+ /**
+ * Get all threats combined
+ *
+ * @return array
+ */
+ public static function get_all_threats() {
+ return array_merge(
+ self::get_wordpress_threats(),
+ self::get_themes_threats(),
+ self::get_plugins_threats(),
+ self::get_files_threats(),
+ self::get_database_threats()
+ );
+ }
+
+ /**
+ * Get threats found for WordPress core
+ *
+ * @return array
+ */
+ public static function get_wordpress_threats() {
+ return self::get_threats( 'core' );
+ }
+
+ /**
+ * Get threats found for themes
+ *
+ * @return array
+ */
+ public static function get_themes_threats() {
+ return self::get_threats( 'themes' );
+ }
+
+ /**
+ * Get threats found for plugins
+ *
+ * @return array
+ */
+ public static function get_plugins_threats() {
+ return self::get_threats( 'plugins' );
+ }
+
+ /**
+ * Get threats found for files
+ *
+ * @return array
+ */
+ public static function get_files_threats() {
+ return self::get_threats( 'files' );
+ }
+
+ /**
+ * Get threats found for plugins
+ *
+ * @return array
+ */
+ public static function get_database_threats() {
+ return self::get_threats( 'database' );
+ }
+
+ /**
+ * Get the threats for one type of extension or core
+ *
+ * @param string $type What threats you want to get. Possible values are 'core', 'themes' and 'plugins'.
+ *
+ * @return array
+ */
+ public static function get_threats( $type ) {
+ $status = static::get_status();
+
+ if ( 'core' === $type ) {
+ return isset( $status->$type ) && ! empty( $status->$type->threats ) ? $status->$type->threats : array();
+ }
+
+ if ( 'files' === $type || 'database' === $type ) {
+ return isset( $status->$type ) && ! empty( $status->$type ) ? $status->$type : array();
+ }
+
+ $threats = array();
+ if ( isset( $status->$type ) ) {
+ foreach ( (array) $status->$type as $item ) {
+ if ( ! empty( $item->threats ) ) {
+ $threats = array_merge( $threats, $item->threats );
+ }
+ }
+ }
+ return $threats;
+ }
+
+ /**
+ * Check if the WordPress version that was checked matches the current installed version.
+ *
+ * @param object $core_check The object returned by Protect wpcom endpoint.
+ * @return object The object representing the current status of core checks.
+ */
+ protected static function normalize_core_information( $core_check ) {
+ global $wp_version;
+
+ $core = new Extension_Model(
+ array(
+ 'type' => 'core',
+ 'name' => 'WordPress',
+ 'version' => $wp_version,
+ 'checked' => false,
+ )
+ );
+
+ if ( isset( $core_check->version ) && $core_check->version === $wp_version ) {
+ if ( is_array( $core_check->vulnerabilities ) ) {
+ $core->checked = true;
+ $core->set_threats( $core_check->vulnerabilities );
+ }
+ }
+
+ return $core;
+ }
+
+ /**
+ * Sort By Threats
+ *
+ * @param array',
+ esc_url(
+ wp_nonce_url(
+ admin_url( '/nav-menus.php' ),
+ self::RESET_KEY,
+ self::RESET_KEY
+ )
+ ),
+ esc_attr__( 'Discard all changes and reset to default state', 'menu-icons' ),
+ esc_html__( 'Reset', 'menu-icons' )
+ );
+ ?>
+
+
+
+
+
+
+
' . esc_html__( 'Please note that the actual look of the icons on the front-end will also be affected by the style of your active theme. You can add your own CSS using %2$s.', 'menu-icons' ) . '
',
+ $box_data,
+ sprintf(
+ '%s',
+ esc_url( $customizer_url ),
+ esc_html__( 'the customizer', 'menu-icons' )
+ )
+ ),
+ ),
+ 'settingsFields' => self::get_settings_fields(),
+ 'activeTypes' => self::get( 'global', 'icon_types' ),
+ 'ajaxUrls' => array(
+ 'update' => add_query_arg( 'action', 'menu_icons_update_settings', admin_url( '/admin-ajax.php' ) ),
+ ),
+ 'menuSettings' => self::get_menu_settings( self::get_current_menu_id() ),
+ )
+ );
+
+ wp_localize_script( 'menu-icons', 'menuIcons', $js_data );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type-fonts.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type-fonts.php
new file mode 100644
index 00000000..c22d4840
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type-fonts.php
@@ -0,0 +1,24 @@
+
+ */
+
+require_once dirname( __FILE__ ) . '/type.php';
+
+/**
+ * Generic handler for icon fonts
+ *
+ */
+abstract class Menu_Icons_Type_Fonts extends Menu_Icons_Type {
+ /**
+ * Constructor
+ *
+ * @since 0.9.0
+ */
+ public function __construct() {
+ _deprecated_function( __CLASS__, '0.9.0', 'Icon_Picker_Type_Font' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type.php
new file mode 100644
index 00000000..8e9a8066
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/includes/type.php
@@ -0,0 +1,107 @@
+
+ */
+
+
+/**
+ * Generic handler for icon type
+ *
+ * @since 0.1.0
+ */
+abstract class Menu_Icons_Type {
+
+ /**
+ * Holds icon type
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var string
+ */
+ protected $type;
+
+ /**
+ * Holds icon label
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var string
+ */
+ protected $label;
+
+ /**
+ * Holds icon stylesheet URL
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var string
+ */
+ protected $stylesheet;
+
+ /**
+ * Custom stylesheet ID
+ *
+ * @since 0.8.0
+ * @access protected
+ * @var string
+ */
+ protected $stylesheet_id;
+
+ /**
+ * Holds icon version
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var string
+ */
+ protected $version;
+
+ /**
+ * Holds array key for icon value
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var string
+ */
+ protected $key;
+
+ /**
+ * Holds menu settings
+ *
+ * @since 0.3.0
+ * @access protected
+ * @var array
+ */
+ protected $menu_setttings = array();
+
+
+ /**
+ * Class constructor
+ *
+ * This simply sets $key
+ *
+ * @since 0.1.0
+ * @since 0.9.0 Deprecated.
+ */
+ function __construct() {
+ _deprecated_function( __CLASS__, '0.9.0', 'Icon_Picker_Type' );
+ }
+
+
+ /**
+ * Register our type
+ *
+ * @since 0.1.0
+ * @since 0.9.0 Deprecated. This simply returns the $types.
+ * @param array $types Icon Types
+ * @uses apply_filters() Calls 'menu_icons_{type}_props' on type properties.
+ * @return array
+ */
+ public function register( $types ) {
+ return $types;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.js
new file mode 100644
index 00000000..d75c0394
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.js
@@ -0,0 +1,655 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // identity function for calling harmony imports with the correct context
+/******/ __webpack_require__.i = function(value) { return value; };
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, {
+/******/ configurable: false,
+/******/ enumerable: true,
+/******/ get: getter
+/******/ });
+/******/ }
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 2);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* global menuIcons:false */
+__webpack_require__(3);
+
+(function ($) {
+ var miPicker;
+
+ if (!menuIcons.activeTypes || _.isEmpty(menuIcons.activeTypes)) {
+ return;
+ }
+ /**
+ * @namespace
+ * @property {object} templates - Cached templates for the item previews on the fields
+ * @property {string} wrapClass - Field wrapper's class
+ * @property {object} frame - Menu Icons' media frame instance
+ * @property {object} target - Frame's target model
+ */
+
+
+ miPicker = {
+ templates: {},
+ wrapClass: 'div.menu-icons-wrap',
+ frame: null,
+ target: new wp.media.model.IconPickerTarget(),
+
+ /**
+ * Callback function to filter active icon types
+ *
+ * TODO: Maybe move to frame view?
+ *
+ * @param {string} type - Icon type.
+ */
+ typesFilter: function (type) {
+ return $.inArray(type.id, menuIcons.activeTypes) >= 0;
+ },
+
+ /**
+ * Create Menu Icons' media frame
+ */
+ createFrame: function () {
+ miPicker.frame = new wp.media.view.MediaFrame.MenuIcons({
+ target: miPicker.target,
+ ipTypes: _.filter(iconPicker.types, miPicker.typesFilter),
+ SidebarView: wp.media.view.MenuIconsSidebar
+ });
+ },
+
+ /**
+ * Pick icon for a menu item and open the frame
+ *
+ * @param {object} model - Menu item model.
+ */
+ pickIcon: function (model) {
+ miPicker.frame.target.set(model, {
+ silent: true
+ });
+ miPicker.frame.open();
+ },
+
+ /**
+ * Set or unset icon
+ *
+ * @param {object} e - jQuery click event.
+ */
+ setUnset: function (e) {
+ var $el = $(e.currentTarget),
+ $clicked = $(e.target);
+ e.preventDefault();
+
+ if ($clicked.hasClass('_select') || $clicked.hasClass('_icon')) {
+ miPicker.setIcon($el);
+ } else if ($clicked.hasClass('_remove')) {
+ miPicker.unsetIcon($el);
+ }
+ },
+
+ /**
+ * Set Icon
+ *
+ * @param {object} $el - jQuery object.
+ */
+ setIcon: function ($el) {
+ var id = $el.data('id'),
+ frame = miPicker.frame,
+ items = frame.menuItems,
+ model = items.get(id);
+
+ if (model) {
+ miPicker.pickIcon(model.toJSON());
+ return;
+ }
+
+ model = {
+ id: id,
+ $el: $el,
+ $title: $('#edit-menu-item-title-' + id),
+ $inputs: {}
+ }; // Collect menu item's settings fields and use them
+ // as the model's attributes.
+
+ $el.find('div._settings input').each(function () {
+ var $input = $(this),
+ key = $input.attr('class').replace('_mi-', ''),
+ value = $input.val();
+
+ if (!value) {
+ if (_.has(menuIcons.menuSettings, key)) {
+ value = menuIcons.menuSettings[key];
+ } else if (_.has(menuIcons.settingsFields, key)) {
+ value = menuIcons.settingsFields[key]['default'];
+ }
+ }
+
+ model[key] = value;
+ model.$inputs[key] = $input;
+ });
+ items.add(model);
+ miPicker.pickIcon(model);
+ },
+
+ /**
+ * Unset icon
+ *
+ * @param {object} $el - jQuery object.
+ */
+ unsetIcon: function ($el) {
+ var id = $el.data('id');
+ $el.find('div._settings input').val('');
+ $el.trigger('mi:update');
+ miPicker.frame.menuItems.remove(id);
+ },
+
+ /**
+ * Update valeus of menu item's setting fields
+ *
+ * When the type and icon is set, this will (re)generate the icon
+ * preview on the menu item field.
+ *
+ * @param {object} e - jQuery event.
+ */
+ updateField: function (e) {
+ var $el = $(e.currentTarget),
+ $set = $el.find('a._select'),
+ $unset = $el.find('a._remove'),
+ type = $el.find('input._mi-type').val(),
+ icon = $el.find('input._mi-icon').val(),
+ url = $el.find('input._mi-url').val(),
+ template;
+
+ if (type === '' || icon === '' || _.indexOf(menuIcons.activeTypes, type) < 0) {
+ $set.text(menuIcons.text.select).attr('title', '');
+ $unset.addClass('hidden');
+ return;
+ }
+
+ if (miPicker.templates[type]) {
+ template = miPicker.templates[type];
+ } else {
+ template = miPicker.templates[type] = wp.template('menu-icons-item-field-preview-' + iconPicker.types[type].templateId);
+ }
+
+ $unset.removeClass('hidden');
+ $set.attr('title', menuIcons.text.change);
+ $set.html(template({
+ type: type,
+ icon: icon,
+ url: url
+ }));
+ },
+
+ /**
+ * Initialize picker functionality
+ *
+ * #fires mi:update
+ */
+ init: function () {
+ miPicker.createFrame();
+ $(document).on('click', miPicker.wrapClass, miPicker.setUnset).on('mi:update', miPicker.wrapClass, miPicker.updateField); // Trigger 'mi:update' event to generate the icons on the item fields.
+
+ $(miPicker.wrapClass).trigger('mi:update');
+ }
+ };
+ miPicker.init();
+})(jQuery);
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports) {
+
+(function ($) {
+ /**
+ * Settings box tabs
+ *
+ * We can't use core's tabs script here because it will clear the
+ * checkboxes upon tab switching
+ */
+ $('#menu-icons-settings-tabs').on('click', 'a.mi-settings-nav-tab', function (e) {
+ var $el = $(this).blur(),
+ $target = $('#' + $el.data('type'));
+ e.preventDefault();
+ e.stopPropagation();
+ $el.parent().addClass('tabs').siblings().removeClass('tabs');
+ $target.removeClass('tabs-panel-inactive').addClass('tabs-panel-active').show().siblings('div.tabs-panel').hide().addClass('tabs-panel-inactive').removeClass('tabs-panel-active');
+ }).find('a.mi-settings-nav-tab').first().click(); // Settings meta box
+
+ $('#menu-icons-settings-save').on('click', function (e) {
+ var $button = $(this).prop('disabled', true),
+ $spinner = $button.siblings('span.spinner');
+ e.preventDefault();
+ e.stopPropagation();
+ $spinner.css({
+ display: 'inline-block',
+ visibility: 'visible'
+ });
+ $.ajax({
+ type: 'POST',
+ url: window.menuIcons.ajaxUrls.update,
+ data: $('#menu-icons-settings :input').serialize(),
+ success: function (response) {
+ if (response.success && response.data.redirectUrl === true) {
+ window.location = response.data.redirectUrl;
+ } else {
+ $button.prop('disabled', false);
+ }
+
+ $spinner.hide();
+ },
+ fail: function () {
+ $spinner.hide();
+ }
+ });
+ });
+})(jQuery);
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports, __webpack_require__) {
+
+__webpack_require__(1);
+
+__webpack_require__(0);
+
+/***/ }),
+/* 3 */
+/***/ (function(module, exports, __webpack_require__) {
+
+wp.media.model.MenuIconsItemSettingField = __webpack_require__(4);
+wp.media.model.MenuIconsItemSettings = __webpack_require__(5);
+wp.media.model.MenuIconsItem = __webpack_require__(6);
+wp.media.view.MenuIconsItemSettingField = __webpack_require__(9);
+wp.media.view.MenuIconsItemSettings = __webpack_require__(10);
+wp.media.view.MenuIconsItemPreview = __webpack_require__(8);
+wp.media.view.MenuIconsSidebar = __webpack_require__(11);
+wp.media.view.MediaFrame.MenuIcons = __webpack_require__(7);
+
+/***/ }),
+/* 4 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.model.MenuIconsItemSettingField
+ *
+ * @class
+ * @augments Backbone.Model
+ */
+var MenuIconsItemSettingField = Backbone.Model.extend({
+ defaults: {
+ id: '',
+ label: '',
+ value: '',
+ type: 'text'
+ }
+});
+module.exports = MenuIconsItemSettingField;
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.model.MenuIconsItemSettings
+ *
+ * @class
+ * @augments Backbone.Collection
+ */
+var MenuIconsItemSettings = Backbone.Collection.extend({
+ model: wp.media.model.MenuIconsItemSettingField
+});
+module.exports = MenuIconsItemSettings;
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.model.MenuIconsItem
+ *
+ * @class
+ * @augments Backbone.Model
+ */
+var Item = Backbone.Model.extend({
+ initialize: function () {
+ this.on('change', this.updateValues, this);
+ },
+
+ /**
+ * Update the values of menu item's settings fields
+ *
+ * #fires mi:update
+ */
+ updateValues: function () {
+ _.each(this.get('$inputs'), function ($input, key) {
+ $input.val(this.get(key));
+ }, this); // Trigger the 'mi:update' event to regenerate the icon on the field.
+
+
+ this.get('$el').trigger('mi:update');
+ }
+});
+module.exports = Item;
+
+/***/ }),
+/* 7 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.view.MediaFrame.MenuIcons
+ *
+ * @class
+ * @augments wp.media.view.MediaFrame.IconPicker
+ * @augments wp.media.view.MediaFrame.Select
+ * @augments wp.media.view.MediaFrame
+ * @augments wp.media.view.Frame
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIcons = wp.media.view.MediaFrame.IconPicker.extend({
+ initialize: function () {
+ this.menuItems = new Backbone.Collection([], {
+ model: wp.media.model.MenuIconsItem
+ });
+ wp.media.view.MediaFrame.IconPicker.prototype.initialize.apply(this, arguments);
+
+ if (this.setMenuTabPanelAriaAttributes) {
+ this.off('open', this.setMenuTabPanelAriaAttributes, this); // Set the router ARIA tab panel attributes when the modal opens.
+
+ this.off('open', this.setRouterTabPanelAriaAttributes, this); // Update the menu ARIA tab panel attributes when the content updates.
+
+ this.off('content:render', this.setMenuTabPanelAriaAttributes, this); // Update the router ARIA tab panel attributes when the content updates.
+
+ this.off('content:render', this.setRouterTabPanelAriaAttributes, this);
+ }
+
+ this.listenTo(this.target, 'change', this.miUpdateItemProps);
+ this.on('select', this.miClearTarget, this);
+ },
+ miUpdateItemProps: function (props) {
+ var model = this.menuItems.get(props.id);
+ model.set(props.changed);
+ },
+ miClearTarget: function () {
+ this.target.clear({
+ silent: true
+ });
+ }
+});
+module.exports = MenuIcons;
+
+/***/ }),
+/* 8 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.view.MenuIconsItemPreview
+ *
+ * @class
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsItemPreview = wp.media.View.extend({
+ tagName: 'p',
+ className: 'mi-preview menu-item attachment-info',
+ events: {
+ 'click a': 'preventDefault'
+ },
+ initialize: function () {
+ wp.media.View.prototype.initialize.apply(this, arguments);
+ this.model.on('change', this.render, this);
+ },
+ render: function () {
+ var frame = this.controller,
+ state = frame.state(),
+ selected = state.get('selection').single(),
+ props = this.model.toJSON(),
+ data = _.extend(props, {
+ type: state.id,
+ icon: selected.id,
+ title: this.model.get('$title').val(),
+ url: state.ipGetIconUrl(selected, props.image_size)
+ }),
+ template = 'menu-icons-item-sidebar-preview-' + iconPicker.types[state.id].templateId + '-';
+
+ if (data.hide_label) {
+ template += 'hide_label';
+ } else {
+ template += data.position;
+ }
+
+ this.template = wp.media.template(template);
+ this.$el.html(this.template(data));
+ return this;
+ },
+ preventDefault: function (e) {
+ e.preventDefault();
+ }
+});
+module.exports = MenuIconsItemPreview;
+
+/***/ }),
+/* 9 */
+/***/ (function(module, exports) {
+
+var $ = jQuery,
+ MenuIconsItemSettingField;
+/**
+ * wp.media.view.MenuIconsItemSettingField
+ *
+ * @class
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+
+MenuIconsItemSettingField = wp.media.View.extend({
+ tagName: 'label',
+ className: 'setting',
+ events: {
+ 'change :input': '_update'
+ },
+ initialize: function () {
+ wp.media.View.prototype.initialize.apply(this, arguments);
+ this.template = wp.media.template('menu-icons-settings-field-' + this.model.get('type'));
+ this.model.on('change', this.render, this);
+ },
+ prepare: function () {
+ return this.model.toJSON();
+ },
+ _update: function (e) {
+ var value = $(e.currentTarget).val();
+ this.model.set('value', value);
+ this.options.item.set(this.model.id, value);
+ }
+});
+module.exports = MenuIconsItemSettingField;
+
+/***/ }),
+/* 10 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.view.MenuIconsItemSettings
+ *
+ * @class
+ * @augments wp.media.view.PriorityList
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsItemSettings = wp.media.view.PriorityList.extend({
+ className: 'mi-settings attachment-info',
+ prepare: function () {
+ _.each(this.collection.map(this.createField, this), function (view) {
+ this.set(view.model.id, view);
+ }, this);
+ },
+ createField: function (model) {
+ var field = new wp.media.view.MenuIconsItemSettingField({
+ item: this.model,
+ model: model,
+ collection: this.collection
+ });
+ return field;
+ }
+});
+module.exports = MenuIconsItemSettings;
+
+/***/ }),
+/* 11 */
+/***/ (function(module, exports) {
+
+/**
+ * wp.media.view.MenuIconsSidebar
+ *
+ * @class
+ * @augments wp.media.view.IconPickerSidebar
+ * @augments wp.media.view.Sidebar
+ * @augments wp.media.view.PriorityList
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsSidebar = wp.media.view.IconPickerSidebar.extend({
+ initialize: function () {
+ var title = new wp.media.View({
+ tagName: 'h3',
+ priority: -10
+ });
+ var info = new wp.media.View({
+ tagName: 'p',
+ className: '_info',
+ priority: 1000
+ });
+ wp.media.view.IconPickerSidebar.prototype.initialize.apply(this, arguments);
+ title.$el.text(window.menuIcons.text.preview);
+ this.set('title', title);
+ info.$el.html(window.menuIcons.text.settingsInfo);
+ this.set('info', info);
+ },
+ createSingle: function () {
+ this.createPreview();
+ this.createSettings();
+ },
+ disposeSingle: function () {
+ this.unset('preview');
+ this.unset('settings');
+ },
+ createPreview: function () {
+ var self = this,
+ frame = self.controller,
+ state = frame.state(); // If the selected icon is still being downloaded (image or svg type),
+ // wait for it to complete before creating the preview.
+
+ if (state.dfd && state.dfd.state() === 'pending') {
+ state.dfd.done(function () {
+ self.createPreview();
+ });
+ return;
+ }
+
+ self.set('preview', new wp.media.view.MenuIconsItemPreview({
+ controller: frame,
+ model: frame.target,
+ priority: 80
+ }));
+ },
+ createSettings: function () {
+ var frame = this.controller,
+ state = frame.state(),
+ fieldIds = state.get('data').settingsFields,
+ fields = [];
+
+ _.each(fieldIds, function (fieldId) {
+ var field = window.menuIcons.settingsFields[fieldId],
+ model;
+
+ if (!field) {
+ return;
+ }
+
+ model = _.defaults({
+ value: frame.target.get(fieldId) || field['default']
+ }, field);
+ fields.push(model);
+ });
+
+ if (!fields.length) {
+ return;
+ }
+
+ this.set('settings', new wp.media.view.MenuIconsItemSettings({
+ controller: this.controller,
+ collection: new wp.media.model.MenuIconsItemSettings(fields),
+ model: frame.target,
+ type: this.options.type,
+ priority: 120
+ }));
+ }
+});
+module.exports = MenuIconsSidebar;
+
+/***/ })
+/******/ ]);
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.min.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.min.js
new file mode 100644
index 00000000..4bb026c3
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/admin.min.js
@@ -0,0 +1 @@
+!function(i){var n={};function a(e){if(n[e])return n[e].exports;var t=n[e]={i:e,l:!1,exports:{}};return i[e].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.m=i,a.c=n,a.i=function(e){return e},a.d=function(e,t,i){a.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=2)}([function(e,t,i){var o,r;i(3),o=jQuery,menuIcons.activeTypes&&!_.isEmpty(menuIcons.activeTypes)&&(r={templates:{},wrapClass:"div.menu-icons-wrap",frame:null,target:new wp.media.model.IconPickerTarget,typesFilter:function(e){return 0<=o.inArray(e.id,menuIcons.activeTypes)},createFrame:function(){r.frame=new wp.media.view.MediaFrame.MenuIcons({target:r.target,ipTypes:_.filter(iconPicker.types,r.typesFilter),SidebarView:wp.media.view.MenuIconsSidebar})},pickIcon:function(e){r.frame.target.set(e,{silent:!0}),r.frame.open()},setUnset:function(e){var t=o(e.currentTarget),i=o(e.target);e.preventDefault(),i.hasClass("_select")||i.hasClass("_icon")?r.setIcon(t):i.hasClass("_remove")&&r.unsetIcon(t)},setIcon:function(e){var t=e.data("id"),i=r.frame.menuItems,n=i.get(t);n?r.pickIcon(n.toJSON()):(n={id:t,$el:e,$title:o("#edit-menu-item-title-"+t),$inputs:{}},e.find("div._settings input").each(function(){var e=o(this),t=e.attr("class").replace("_mi-",""),i=e.val();i||(_.has(menuIcons.menuSettings,t)?i=menuIcons.menuSettings[t]:_.has(menuIcons.settingsFields,t)&&(i=menuIcons.settingsFields[t].default)),n[t]=i,n.$inputs[t]=e}),i.add(n),r.pickIcon(n))},unsetIcon:function(e){var t=e.data("id");e.find("div._settings input").val(""),e.trigger("mi:update"),r.frame.menuItems.remove(t)},updateField:function(e){var t,e=o(e.currentTarget),i=e.find("a._select"),n=e.find("a._remove"),a=e.find("input._mi-type").val(),s=e.find("input._mi-icon").val(),e=e.find("input._mi-url").val();if(""===a||""===s||_.indexOf(menuIcons.activeTypes,a)<0)return i.text(menuIcons.text.select).attr("title",""),void n.addClass("hidden");t=r.templates[a]||(r.templates[a]=wp.template("menu-icons-item-field-preview-"+iconPicker.types[a].templateId)),n.removeClass("hidden"),i.attr("title",menuIcons.text.change),i.html(t({type:a,icon:s,url:e}))},init:function(){r.createFrame(),o(document).on("click",r.wrapClass,r.setUnset).on("mi:update",r.wrapClass,r.updateField),o(r.wrapClass).trigger("mi:update")}}).init()},function(e,t){var n;(n=jQuery)("#menu-icons-settings-tabs").on("click","a.mi-settings-nav-tab",function(e){var t=n(this).blur(),i=n("#"+t.data("type"));e.preventDefault(),e.stopPropagation(),t.parent().addClass("tabs").siblings().removeClass("tabs"),i.removeClass("tabs-panel-inactive").addClass("tabs-panel-active").show().siblings("div.tabs-panel").hide().addClass("tabs-panel-inactive").removeClass("tabs-panel-active")}).find("a.mi-settings-nav-tab").first().click(),n("#menu-icons-settings-save").on("click",function(e){var t=n(this).prop("disabled",!0),i=t.siblings("span.spinner");e.preventDefault(),e.stopPropagation(),i.css({display:"inline-block",visibility:"visible"}),n.ajax({type:"POST",url:window.menuIcons.ajaxUrls.update,data:n("#menu-icons-settings :input").serialize(),success:function(e){e.success&&!0===e.data.redirectUrl?window.location=e.data.redirectUrl:t.prop("disabled",!1),i.hide()},fail:function(){i.hide()}})})},function(e,t,i){i(1),i(0)},function(e,t,i){wp.media.model.MenuIconsItemSettingField=i(4),wp.media.model.MenuIconsItemSettings=i(5),wp.media.model.MenuIconsItem=i(6),wp.media.view.MenuIconsItemSettingField=i(9),wp.media.view.MenuIconsItemSettings=i(10),wp.media.view.MenuIconsItemPreview=i(8),wp.media.view.MenuIconsSidebar=i(11),wp.media.view.MediaFrame.MenuIcons=i(7)},function(e,t){var i=Backbone.Model.extend({defaults:{id:"",label:"",value:"",type:"text"}});e.exports=i},function(e,t){var i=Backbone.Collection.extend({model:wp.media.model.MenuIconsItemSettingField});e.exports=i},function(e,t){var i=Backbone.Model.extend({initialize:function(){this.on("change",this.updateValues,this)},updateValues:function(){_.each(this.get("$inputs"),function(e,t){e.val(this.get(t))},this),this.get("$el").trigger("mi:update")}});e.exports=i},function(e,t){var i=wp.media.view.MediaFrame.IconPicker.extend({initialize:function(){this.menuItems=new Backbone.Collection([],{model:wp.media.model.MenuIconsItem}),wp.media.view.MediaFrame.IconPicker.prototype.initialize.apply(this,arguments),this.setMenuTabPanelAriaAttributes&&(this.off("open",this.setMenuTabPanelAriaAttributes,this),this.off("open",this.setRouterTabPanelAriaAttributes,this),this.off("content:render",this.setMenuTabPanelAriaAttributes,this),this.off("content:render",this.setRouterTabPanelAriaAttributes,this)),this.listenTo(this.target,"change",this.miUpdateItemProps),this.on("select",this.miClearTarget,this)},miUpdateItemProps:function(e){this.menuItems.get(e.id).set(e.changed)},miClearTarget:function(){this.target.clear({silent:!0})}});e.exports=i},function(e,t){var i=wp.media.View.extend({tagName:"p",className:"mi-preview menu-item attachment-info",events:{"click a":"preventDefault"},initialize:function(){wp.media.View.prototype.initialize.apply(this,arguments),this.model.on("change",this.render,this)},render:function(){var e=this.controller.state(),t=e.get("selection").single(),i=this.model.toJSON(),t=_.extend(i,{type:e.id,icon:t.id,title:this.model.get("$title").val(),url:e.ipGetIconUrl(t,i.image_size)}),i="menu-icons-item-sidebar-preview-"+iconPicker.types[e.id].templateId+"-";return t.hide_label?i+="hide_label":i+=t.position,this.template=wp.media.template(i),this.$el.html(this.template(t)),this},preventDefault:function(e){e.preventDefault()}});e.exports=i},function(e,t){var i=jQuery,n=wp.media.View.extend({tagName:"label",className:"setting",events:{"change :input":"_update"},initialize:function(){wp.media.View.prototype.initialize.apply(this,arguments),this.template=wp.media.template("menu-icons-settings-field-"+this.model.get("type")),this.model.on("change",this.render,this)},prepare:function(){return this.model.toJSON()},_update:function(e){e=i(e.currentTarget).val();this.model.set("value",e),this.options.item.set(this.model.id,e)}});e.exports=n},function(e,t){var i=wp.media.view.PriorityList.extend({className:"mi-settings attachment-info",prepare:function(){_.each(this.collection.map(this.createField,this),function(e){this.set(e.model.id,e)},this)},createField:function(e){return new wp.media.view.MenuIconsItemSettingField({item:this.model,model:e,collection:this.collection})}});e.exports=i},function(e,t){var i=wp.media.view.IconPickerSidebar.extend({initialize:function(){var e=new wp.media.View({tagName:"h3",priority:-10}),t=new wp.media.View({tagName:"p",className:"_info",priority:1e3});wp.media.view.IconPickerSidebar.prototype.initialize.apply(this,arguments),e.$el.text(window.menuIcons.text.preview),this.set("title",e),t.$el.html(window.menuIcons.text.settingsInfo),this.set("info",t)},createSingle:function(){this.createPreview(),this.createSettings()},disposeSingle:function(){this.unset("preview"),this.unset("settings")},createPreview:function(){var e=this,t=e.controller,i=t.state();i.dfd&&"pending"===i.dfd.state()?i.dfd.done(function(){e.createPreview()}):e.set("preview",new wp.media.view.MenuIconsItemPreview({controller:t,model:t.target,priority:80}))},createSettings:function(){var i=this.controller,e=i.state().get("data").settingsFields,n=[];_.each(e,function(e){var t=window.menuIcons.settingsFields[e];t&&(e=_.defaults({value:i.target.get(e)||t.default},t),n.push(e))}),n.length&&this.set("settings",new wp.media.view.MenuIconsItemSettings({controller:this.controller,collection:new wp.media.model.MenuIconsItemSettings(n),model:i.target,type:this.options.type,priority:120}))}});e.exports=i}]);
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/index.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/index.js
new file mode 100644
index 00000000..c2d5e463
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/index.js
@@ -0,0 +1,2 @@
+require( './settings' );
+require( './picker' );
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/index.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/index.js
new file mode 100644
index 00000000..59095a59
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/index.js
@@ -0,0 +1,9 @@
+wp.media.model.MenuIconsItemSettingField = require( './models/item-setting-field.js' );
+wp.media.model.MenuIconsItemSettings = require( './models/item-settings.js' );
+wp.media.model.MenuIconsItem = require( './models/item.js' );
+
+wp.media.view.MenuIconsItemSettingField = require( './views/item-setting-field.js' );
+wp.media.view.MenuIconsItemSettings = require( './views/item-settings.js' );
+wp.media.view.MenuIconsItemPreview = require( './views/item-preview.js' );
+wp.media.view.MenuIconsSidebar = require( './views/sidebar.js' );
+wp.media.view.MediaFrame.MenuIcons = require( './views/frame.js' );
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-setting-field.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-setting-field.js
new file mode 100644
index 00000000..5b28cdc8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-setting-field.js
@@ -0,0 +1,16 @@
+/**
+ * wp.media.model.MenuIconsItemSettingField
+ *
+ * @class
+ * @augments Backbone.Model
+ */
+var MenuIconsItemSettingField = Backbone.Model.extend({
+ defaults: {
+ id: '',
+ label: '',
+ value: '',
+ type: 'text'
+ }
+});
+
+module.exports = MenuIconsItemSettingField;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-settings.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-settings.js
new file mode 100644
index 00000000..11279680
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item-settings.js
@@ -0,0 +1,11 @@
+/**
+ * wp.media.model.MenuIconsItemSettings
+ *
+ * @class
+ * @augments Backbone.Collection
+ */
+var MenuIconsItemSettings = Backbone.Collection.extend({
+ model: wp.media.model.MenuIconsItemSettingField
+});
+
+module.exports = MenuIconsItemSettings;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item.js
new file mode 100644
index 00000000..2233c6ec
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/models/item.js
@@ -0,0 +1,27 @@
+/**
+ * wp.media.model.MenuIconsItem
+ *
+ * @class
+ * @augments Backbone.Model
+ */
+var Item = Backbone.Model.extend({
+ initialize: function() {
+ this.on( 'change', this.updateValues, this );
+ },
+
+ /**
+ * Update the values of menu item's settings fields
+ *
+ * #fires mi:update
+ */
+ updateValues: function() {
+ _.each( this.get( '$inputs' ), function( $input, key ) {
+ $input.val( this.get( key ) );
+ }, this );
+
+ // Trigger the 'mi:update' event to regenerate the icon on the field.
+ this.get( '$el' ).trigger( 'mi:update' );
+ }
+});
+
+module.exports = Item;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/frame.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/frame.js
new file mode 100644
index 00000000..a37e1098
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/frame.js
@@ -0,0 +1,46 @@
+/**
+ * wp.media.view.MediaFrame.MenuIcons
+ *
+ * @class
+ * @augments wp.media.view.MediaFrame.IconPicker
+ * @augments wp.media.view.MediaFrame.Select
+ * @augments wp.media.view.MediaFrame
+ * @augments wp.media.view.Frame
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+
+var MenuIcons = wp.media.view.MediaFrame.IconPicker.extend({
+ initialize: function() {
+ this.menuItems = new Backbone.Collection([], {
+ model: wp.media.model.MenuIconsItem
+ });
+
+ wp.media.view.MediaFrame.IconPicker.prototype.initialize.apply( this, arguments );
+ if(this.setMenuTabPanelAriaAttributes){
+ this.off( 'open', this.setMenuTabPanelAriaAttributes, this );
+ // Set the router ARIA tab panel attributes when the modal opens.
+ this.off( 'open', this.setRouterTabPanelAriaAttributes, this );
+
+ // Update the menu ARIA tab panel attributes when the content updates.
+ this.off( 'content:render', this.setMenuTabPanelAriaAttributes, this );
+ // Update the router ARIA tab panel attributes when the content updates.
+ this.off( 'content:render', this.setRouterTabPanelAriaAttributes, this );
+ }
+ this.listenTo( this.target, 'change', this.miUpdateItemProps );
+ this.on( 'select', this.miClearTarget, this );
+ },
+
+ miUpdateItemProps: function( props ) {
+ var model = this.menuItems.get( props.id );
+
+ model.set( props.changed );
+ },
+
+ miClearTarget: function() {
+ this.target.clear({ silent: true });
+ }
+});
+
+module.exports = MenuIcons;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-preview.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-preview.js
new file mode 100644
index 00000000..5b73fabd
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-preview.js
@@ -0,0 +1,51 @@
+/**
+ * wp.media.view.MenuIconsItemPreview
+ *
+ * @class
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsItemPreview = wp.media.View.extend({
+ tagName: 'p',
+ className: 'mi-preview menu-item attachment-info',
+ events: {
+ 'click a': 'preventDefault'
+ },
+
+ initialize: function() {
+ wp.media.View.prototype.initialize.apply( this, arguments );
+ this.model.on( 'change', this.render, this );
+ },
+
+ render: function() {
+ var frame = this.controller,
+ state = frame.state(),
+ selected = state.get( 'selection' ).single(),
+ props = this.model.toJSON(),
+ data = _.extend( props, {
+ type: state.id,
+ icon: selected.id,
+ title: this.model.get( '$title' ).val(),
+ url: state.ipGetIconUrl( selected, props.image_size )
+ }),
+ template = 'menu-icons-item-sidebar-preview-' + iconPicker.types[ state.id ].templateId + '-';
+
+ if ( data.hide_label ) {
+ template += 'hide_label';
+ } else {
+ template += data.position;
+ }
+
+ this.template = wp.media.template( template );
+ this.$el.html( this.template( data ) );
+
+ return this;
+ },
+
+ preventDefault: function( e ) {
+ e.preventDefault();
+ }
+});
+
+module.exports = MenuIconsItemPreview;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-setting-field.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-setting-field.js
new file mode 100644
index 00000000..8b3abcfb
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-setting-field.js
@@ -0,0 +1,38 @@
+var $ = jQuery,
+ MenuIconsItemSettingField;
+
+/**
+ * wp.media.view.MenuIconsItemSettingField
+ *
+ * @class
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+MenuIconsItemSettingField = wp.media.View.extend({
+ tagName: 'label',
+ className: 'setting',
+ events: {
+ 'change :input': '_update'
+ },
+
+ initialize: function() {
+ wp.media.View.prototype.initialize.apply( this, arguments );
+
+ this.template = wp.media.template( 'menu-icons-settings-field-' + this.model.get( 'type' ) );
+ this.model.on( 'change', this.render, this );
+ },
+
+ prepare: function() {
+ return this.model.toJSON();
+ },
+
+ _update: function( e ) {
+ var value = $( e.currentTarget ).val();
+
+ this.model.set( 'value', value );
+ this.options.item.set( this.model.id, value );
+ }
+});
+
+module.exports = MenuIconsItemSettingField;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-settings.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-settings.js
new file mode 100644
index 00000000..1a3eda00
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/item-settings.js
@@ -0,0 +1,30 @@
+/**
+ * wp.media.view.MenuIconsItemSettings
+ *
+ * @class
+ * @augments wp.media.view.PriorityList
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsItemSettings = wp.media.view.PriorityList.extend({
+ className: 'mi-settings attachment-info',
+
+ prepare: function() {
+ _.each( this.collection.map( this.createField, this ), function( view ) {
+ this.set( view.model.id, view );
+ }, this );
+ },
+
+ createField: function( model ) {
+ var field = new wp.media.view.MenuIconsItemSettingField({
+ item: this.model,
+ model: model,
+ collection: this.collection
+ });
+
+ return field;
+ }
+});
+
+module.exports = MenuIconsItemSettings;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/sidebar.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/sidebar.js
new file mode 100644
index 00000000..712c6a5d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/media/views/sidebar.js
@@ -0,0 +1,101 @@
+/**
+ * wp.media.view.MenuIconsSidebar
+ *
+ * @class
+ * @augments wp.media.view.IconPickerSidebar
+ * @augments wp.media.view.Sidebar
+ * @augments wp.media.view.PriorityList
+ * @augments wp.media.View
+ * @augments wp.Backbone.View
+ * @augments Backbone.View
+ */
+var MenuIconsSidebar = wp.media.view.IconPickerSidebar.extend({
+ initialize: function() {
+ var title = new wp.media.View({
+ tagName: 'h3',
+ priority: - 10
+ });
+
+ var info = new wp.media.View({
+ tagName: 'p',
+ className: '_info',
+ priority: 1000
+ });
+
+ wp.media.view.IconPickerSidebar.prototype.initialize.apply( this, arguments );
+
+ title.$el.text( window.menuIcons.text.preview );
+ this.set( 'title', title );
+
+ info.$el.html( window.menuIcons.text.settingsInfo );
+ this.set( 'info', info );
+ },
+
+ createSingle: function() {
+ this.createPreview();
+ this.createSettings();
+ },
+
+ disposeSingle: function() {
+ this.unset( 'preview' );
+ this.unset( 'settings' );
+ },
+
+ createPreview: function() {
+ var self = this,
+ frame = self.controller,
+ state = frame.state();
+
+ // If the selected icon is still being downloaded (image or svg type),
+ // wait for it to complete before creating the preview.
+ if ( state.dfd && state.dfd.state() === 'pending' ) {
+ state.dfd.done( function() {
+ self.createPreview();
+ });
+
+ return;
+ }
+
+ self.set( 'preview', new wp.media.view.MenuIconsItemPreview({
+ controller: frame,
+ model: frame.target,
+ priority: 80
+ }) );
+ },
+
+ createSettings: function() {
+ var frame = this.controller,
+ state = frame.state(),
+ fieldIds = state.get( 'data' ).settingsFields,
+ fields = [];
+
+ _.each( fieldIds, function( fieldId ) {
+ var field = window.menuIcons.settingsFields[ fieldId ],
+ model;
+
+ if ( ! field ) {
+ return;
+ }
+
+ model = _.defaults({
+ value: frame.target.get( fieldId ) || field['default']
+ }, field );
+
+ fields.push( model );
+ });
+
+ if ( ! fields.length ) {
+ return;
+ }
+
+ this.set( 'settings', new wp.media.view.MenuIconsItemSettings({
+ controller: this.controller,
+ collection: new wp.media.model.MenuIconsItemSettings( fields ),
+ model: frame.target,
+ type: this.options.type,
+ priority: 120
+ }) );
+ }
+});
+
+module.exports = MenuIconsSidebar;
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/picker.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/picker.js
new file mode 100644
index 00000000..78f654de
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/picker.js
@@ -0,0 +1,190 @@
+/* global menuIcons:false */
+
+require( './media' );
+
+( function( $ ) {
+ var miPicker;
+
+ if ( ! menuIcons.activeTypes || _.isEmpty( menuIcons.activeTypes ) ) {
+ return;
+ }
+
+ /**
+ * @namespace
+ * @property {object} templates - Cached templates for the item previews on the fields
+ * @property {string} wrapClass - Field wrapper's class
+ * @property {object} frame - Menu Icons' media frame instance
+ * @property {object} target - Frame's target model
+ */
+ miPicker = {
+ templates: {},
+ wrapClass: 'div.menu-icons-wrap',
+ frame: null,
+ target: new wp.media.model.IconPickerTarget(),
+
+ /**
+ * Callback function to filter active icon types
+ *
+ * TODO: Maybe move to frame view?
+ *
+ * @param {string} type - Icon type.
+ */
+ typesFilter: function( type ) {
+ return ( $.inArray( type.id, menuIcons.activeTypes ) >= 0 );
+ },
+
+ /**
+ * Create Menu Icons' media frame
+ */
+ createFrame: function() {
+ miPicker.frame = new wp.media.view.MediaFrame.MenuIcons({
+ target: miPicker.target,
+ ipTypes: _.filter( iconPicker.types, miPicker.typesFilter ),
+ SidebarView: wp.media.view.MenuIconsSidebar
+ });
+ },
+
+ /**
+ * Pick icon for a menu item and open the frame
+ *
+ * @param {object} model - Menu item model.
+ */
+ pickIcon: function( model ) {
+ miPicker.frame.target.set( model, { silent: true });
+ miPicker.frame.open();
+ },
+
+ /**
+ * Set or unset icon
+ *
+ * @param {object} e - jQuery click event.
+ */
+ setUnset: function( e ) {
+ var $el = $( e.currentTarget ),
+ $clicked = $( e.target );
+
+ e.preventDefault();
+
+ if ( $clicked.hasClass( '_select' ) || $clicked.hasClass( '_icon' ) ) {
+ miPicker.setIcon( $el );
+ } else if ( $clicked.hasClass( '_remove' ) ) {
+ miPicker.unsetIcon( $el );
+ }
+ },
+
+ /**
+ * Set Icon
+ *
+ * @param {object} $el - jQuery object.
+ */
+ setIcon: function( $el ) {
+ var id = $el.data( 'id' ),
+ frame = miPicker.frame,
+ items = frame.menuItems,
+ model = items.get( id );
+
+ if ( model ) {
+ miPicker.pickIcon( model.toJSON() );
+ return;
+ }
+
+ model = {
+ id: id,
+ $el: $el,
+ $title: $( '#edit-menu-item-title-' + id ),
+ $inputs: {}
+ };
+
+ // Collect menu item's settings fields and use them
+ // as the model's attributes.
+ $el.find( 'div._settings input' ).each( function() {
+ var $input = $( this ),
+ key = $input.attr( 'class' ).replace( '_mi-', '' ),
+ value = $input.val();
+
+ if ( ! value ) {
+ if ( _.has( menuIcons.menuSettings, key ) ) {
+ value = menuIcons.menuSettings[ key ];
+ } else if ( _.has( menuIcons.settingsFields, key ) ) {
+ value = menuIcons.settingsFields[ key ]['default'];
+ }
+ }
+
+ model[ key ] = value;
+ model.$inputs[ key ] = $input;
+ });
+
+ items.add( model );
+ miPicker.pickIcon( model );
+ },
+
+ /**
+ * Unset icon
+ *
+ * @param {object} $el - jQuery object.
+ */
+ unsetIcon: function( $el ) {
+ var id = $el.data( 'id' );
+
+ $el.find( 'div._settings input' ).val( '' );
+ $el.trigger( 'mi:update' );
+ miPicker.frame.menuItems.remove( id );
+ },
+
+ /**
+ * Update valeus of menu item's setting fields
+ *
+ * When the type and icon is set, this will (re)generate the icon
+ * preview on the menu item field.
+ *
+ * @param {object} e - jQuery event.
+ */
+ updateField: function( e ) {
+ var $el = $( e.currentTarget ),
+ $set = $el.find( 'a._select' ),
+ $unset = $el.find( 'a._remove' ),
+ type = $el.find( 'input._mi-type' ).val(),
+ icon = $el.find( 'input._mi-icon' ).val(),
+ url = $el.find( 'input._mi-url' ).val(),
+ template;
+
+ if ( type === '' || icon === '' || _.indexOf( menuIcons.activeTypes, type ) < 0 ) {
+ $set.text( menuIcons.text.select ).attr( 'title', '' );
+ $unset.addClass( 'hidden' );
+
+ return;
+ }
+
+ if ( miPicker.templates[ type ]) {
+ template = miPicker.templates[ type ];
+ } else {
+ template = miPicker.templates[ type ] = wp.template( 'menu-icons-item-field-preview-' + iconPicker.types[ type ].templateId );
+ }
+
+ $unset.removeClass( 'hidden' );
+ $set.attr( 'title', menuIcons.text.change );
+ $set.html( template({
+ type: type,
+ icon: icon,
+ url: url
+ }) );
+ },
+
+ /**
+ * Initialize picker functionality
+ *
+ * #fires mi:update
+ */
+ init: function() {
+ miPicker.createFrame();
+ $( document )
+ .on( 'click', miPicker.wrapClass, miPicker.setUnset )
+ .on( 'mi:update', miPicker.wrapClass, miPicker.updateField );
+
+ // Trigger 'mi:update' event to generate the icons on the item fields.
+ $( miPicker.wrapClass ).trigger( 'mi:update' );
+ }
+ };
+
+ miPicker.init();
+}( jQuery ) );
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/settings.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/settings.js
new file mode 100644
index 00000000..4e43015a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/js/src/settings.js
@@ -0,0 +1,60 @@
+( function( $ ) {
+ /**
+ * Settings box tabs
+ *
+ * We can't use core's tabs script here because it will clear the
+ * checkboxes upon tab switching
+ */
+ $( '#menu-icons-settings-tabs' )
+ .on( 'click', 'a.mi-settings-nav-tab', function( e ) {
+ var $el = $( this ).blur(),
+ $target = $( '#' + $el.data( 'type' ) );
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ $el.parent().addClass( 'tabs' ).siblings().removeClass( 'tabs' );
+ $target
+ .removeClass( 'tabs-panel-inactive' )
+ .addClass( 'tabs-panel-active' )
+ .show()
+ .siblings( 'div.tabs-panel' )
+ .hide()
+ .addClass( 'tabs-panel-inactive' )
+ .removeClass( 'tabs-panel-active' );
+ })
+ .find( 'a.mi-settings-nav-tab' ).first().click();
+
+ // Settings meta box
+ $( '#menu-icons-settings-save' ).on( 'click', function( e ) {
+ var $button = $( this ).prop( 'disabled', true ),
+ $spinner = $button.siblings( 'span.spinner' );
+
+ e.preventDefault();
+ e.stopPropagation();
+
+ $spinner.css({
+ display: 'inline-block',
+ visibility: 'visible'
+ });
+
+ $.ajax({
+ type: 'POST',
+ url: window.menuIcons.ajaxUrls.update,
+ data: $( '#menu-icons-settings :input' ).serialize(),
+
+ success: function( response ) {
+ if ( response.success && response.data.redirectUrl === true ) {
+ window.location = response.data.redirectUrl;
+ } else {
+ $button.prop( 'disabled', false );
+ }
+ $spinner.hide();
+ },
+
+ fail: function() {
+ $spinner.hide();
+ }
+ });
+ });
+})( jQuery );
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/languages/menu-icons.pot b/wp-content/upgrade-temp-backup/plugins/menu-icons/languages/menu-icons.pot
new file mode 100644
index 00000000..fd7e9bc2
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/languages/menu-icons.pot
@@ -0,0 +1,4066 @@
+# Copyright (C) 2020 ThemeIsle
+# This file is distributed under the GPLv2.
+msgid ""
+msgstr ""
+"Project-Id-Version: Menu Icons 0.12.3\n"
+"Report-Msgid-Bugs-To: https://github.com/Codeinwp/wp-menu-icons/issues\n"
+"POT-Creation-Date: 2020-07-13 12:12:23+00:00\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"PO-Revision-Date: 2020-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Themeisle Translate Team \n"
+"Language-Team: Themeisle Translate \n"
+"Language: en\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Country: United States\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-KeywordsList: "
+"__;_e;_x:1,2c;_ex:1,2c;_n:1,2;_nx:1,2,4c;_n_noop:1,2;_nx_noop:1,2,3c;esc_"
+"attr__;esc_html__;esc_attr_e;esc_html_e;esc_attr_x:1,2c;esc_html_x:1,2c;\n"
+"X-Poedit-Basepath: ../\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-Bookmarks: \n"
+"X-Textdomain-Support: yes\n"
+"X-Generator: grunt-wp-i18n 1.0.3\n"
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:587
+msgid "404"
+msgstr ""
+
+#: includes/library/form-fields.php:152
+msgid "%1$s: Type %2$s is not supported, reverting to text."
+msgstr ""
+
+#: includes/library/form-fields.php:528
+msgid "— Select —"
+msgstr ""
+
+#: includes/library/functions.php:79
+msgid "Thumbnail"
+msgstr ""
+
+#: includes/library/functions.php:80
+msgid "Medium"
+msgstr ""
+
+#: includes/library/functions.php:81
+msgid "Large"
+msgstr ""
+
+#: includes/library/functions.php:82
+msgid "Full Size"
+msgstr ""
+
+#: includes/picker.php:63
+msgid "Type"
+msgstr ""
+
+#: includes/picker.php:68 includes/picker.php:166
+msgid "Icon"
+msgstr ""
+
+#: includes/picker.php:116
+msgid "Icon:"
+msgstr ""
+
+#: includes/picker.php:117 includes/settings.php:740
+msgid "Select"
+msgstr ""
+
+#: includes/picker.php:118 includes/settings.php:741
+#: vendor/codeinwp/icon-picker/includes/fields/base.php:68
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:465
+msgid "Remove"
+msgstr ""
+
+#: includes/settings.php:301
+msgid "Menu Icons Settings"
+msgstr ""
+
+#: includes/settings.php:335
+msgid "Menu Icons Settings have been successfully updated."
+msgstr ""
+
+#: includes/settings.php:336
+msgid "Menu Icons Settings have been successfully reset."
+msgstr ""
+
+#: includes/settings.php:373 includes/settings.php:396
+msgid "Extensions"
+msgstr ""
+
+#: includes/settings.php:415
+msgid "Discard all changes and reset to default state"
+msgstr ""
+
+#: includes/settings.php:416
+msgid "Reset"
+msgstr ""
+
+#: includes/settings.php:425
+msgid "Save Settings"
+msgstr ""
+
+#: includes/settings.php:452
+msgid "Global"
+msgstr ""
+
+#: includes/settings.php:453
+msgid "Global settings"
+msgstr ""
+
+#: includes/settings.php:458
+msgid "Icon Types"
+msgstr ""
+
+#: includes/settings.php:474
+msgid "Current Menu"
+msgstr ""
+
+#: includes/settings.php:476
+msgid "\"%s\" menu settings"
+msgstr ""
+
+#: includes/settings.php:502
+msgid "Hide Label"
+msgstr ""
+
+#: includes/settings.php:507
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:800
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:805
+msgid "No"
+msgstr ""
+
+#: includes/settings.php:511
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:795
+msgid "Yes"
+msgstr ""
+
+#: includes/settings.php:518
+msgid "Position"
+msgstr ""
+
+#: includes/settings.php:523
+msgid "Before"
+msgstr ""
+
+#: includes/settings.php:527
+msgid "After"
+msgstr ""
+
+#: includes/settings.php:534
+msgid "Vertical Align"
+msgstr ""
+
+#: includes/settings.php:539
+msgid "Super"
+msgstr ""
+
+#: includes/settings.php:543
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:292
+msgid "Top"
+msgstr ""
+
+#: includes/settings.php:547
+msgid "Text Top"
+msgstr ""
+
+#: includes/settings.php:551
+msgid "Middle"
+msgstr ""
+
+#: includes/settings.php:555
+msgid "Baseline"
+msgstr ""
+
+#: includes/settings.php:559
+msgid "Text Bottom"
+msgstr ""
+
+#: includes/settings.php:563
+msgid "Bottom"
+msgstr ""
+
+#: includes/settings.php:567
+msgid "Sub"
+msgstr ""
+
+#: includes/settings.php:574
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:910
+msgid "Font Size"
+msgstr ""
+
+#: includes/settings.php:585
+msgid "SVG Width"
+msgstr ""
+
+#: includes/settings.php:596
+msgid "Image Size"
+msgstr ""
+
+#: includes/settings.php:739
+#: vendor/codeinwp/icon-picker/includes/fields/base.php:67
+#: vendor/codeinwp/icon-picker/includes/loader.php:237
+msgid "Select Icon"
+msgstr ""
+
+#: includes/settings.php:742
+msgid "Change"
+msgstr ""
+
+#: includes/settings.php:743
+#: vendor/codeinwp/icon-picker/includes/loader.php:236
+msgid "All"
+msgstr ""
+
+#: includes/settings.php:744
+msgid "Preview"
+msgstr ""
+
+#: includes/settings.php:746
+msgid ""
+"Please note that the actual look of the icons on the front-end will also be "
+"affected by the style of your active theme. You can add your own CSS using "
+"%2$s or a plugin such as %3$s if you need to override it."
+msgstr ""
+
+#: includes/settings.php:751
+msgid "the customizer"
+msgstr ""
+
+#: menu-icons.php:123
+msgid "Menu Icons: No registered icon types found."
+msgstr ""
+
+#: menu-icons.php:152
+msgid ""
+"Looks like Menu Icons was installed via Composer. Please activate Icon "
+"Picker first."
+msgstr ""
+
+#: vendor/codeinwp/gutenberg-menu-icons/class-gutenberg-menu-icons.php:163
+#: vendor/codeinwp/gutenberg-menu-icons/class-gutenberg-menu-icons.php:175
+msgid "Cheatin’ huh?"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/fontpack.php:132
+msgid "Icon Picker: %1$s was not found in %2$s."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/fontpack.php:133
+msgid "Icon Picker: %s contains an error or more."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/fontpack.php:134
+msgid "Icon Picker: %1$s is not set or invalid in %2$s."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/fontpack.php:135
+msgid ""
+"Icon Picker: %1$s is already registered. Please check your font pack config "
+"file: %2$s."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/fontpack.php:273
+msgid "Pack: %s"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/loader.php:235
+msgid "Icon Picker"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:81
+msgid "Admin"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:85
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:77
+msgid "Post Formats"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:89
+msgid "Welcome Screen"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:93
+msgid "Image Editor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:97
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:108
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:81
+msgid "Text Editor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:101
+msgid "Post"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:105
+msgid "Sorting"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:109
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:68
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:85
+msgid "Social"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:113
+msgid "Jobs"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:117
+msgid "Internal/Products"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:121
+msgid "Taxonomies"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:125
+msgid "Alerts/Notifications"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:129
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:200
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:56
+msgid "Media"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:133
+msgid "Misc./Post Types"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:160
+msgid "Appearance"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:165
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:137
+msgid "Collapse"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:170
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:305
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2377
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2382
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:634
+msgid "Comments"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:175
+msgid "Customizer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:180
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1295
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2442
+msgid "Dashboard"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:185
+msgid "Generic"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:190
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:340
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:865
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2572
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:509
+msgid "Filter"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:195
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1300
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1305
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2742
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:754
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:602
+msgid "Home"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:205
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:522
+msgid "Menu"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:210
+msgid "Multisite"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:215
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1315
+msgid "Network"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:220
+msgid "Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:225
+msgid "Plugins"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:230
+msgid "Settings"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:235
+msgid "Site"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:240
+msgid "Tools"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:245
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3587
+msgid "Users"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:250
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:622
+msgid "Standard"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:255
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:627
+msgid "Aside"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:260
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:632
+#: vendor/codeinwp/icon-picker/includes/types/image.php:53
+msgid "Image"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:265
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:470
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:935
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1200
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1205
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1210
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:635
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:640
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:289
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:642
+msgid "Video"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:270
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:900
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:667
+msgid "Audio"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:275
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:400
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:544
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:652
+msgid "Quote"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:280
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:637
+msgid "Gallery"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:285
+msgid "Links"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:290
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:647
+msgid "Status"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:295
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:662
+msgid "Chat"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:300
+msgid "Add page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:310
+msgid "Edit page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:315
+msgid "Learn More"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:320
+msgid "View Site"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:325
+msgid "Widgets"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:330
+msgid "Write Blog"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:335
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2412
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:504
+msgid "Crop"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:345
+msgid "Rotate"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:350
+msgid "Rotate Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:355
+msgid "Rotate Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:360
+msgid "Flip Vertical"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:365
+msgid "Flip Horizontal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:370
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1858
+msgid "Undo"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:375
+msgid "Redo"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:380
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:180
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1748
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:374
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:692
+msgid "Bold"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:385
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:185
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1808
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:379
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:697
+msgid "Italic"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:390
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1838
+msgid "Unordered List"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:395
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1833
+msgid "Ordered List"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:405
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:510
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:105
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1728
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:414
+msgid "Align Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:410
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:520
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:110
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1733
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:419
+msgid "Align Center"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:415
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:515
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:115
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1743
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:424
+msgid "Align Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:420
+msgid "Insert More"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:425
+msgid "Spell Check"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:430
+msgid "Distraction-free"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:435
+msgid "Kitchensink"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:440
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1913
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:384
+msgid "Underline"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:445
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:120
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1738
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:429
+msgid "Justify"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:450
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:394
+msgid "Text Color"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:455
+msgid "Paste Word"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:460
+msgid "Paste Text"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:465
+msgid "Clear Formatting"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:475
+msgid "Custom Characters"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:480
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1798
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:444
+msgid "Indent"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:485
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1803
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:449
+msgid "Outdent"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:490
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:147
+msgid "Help"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:495
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1868
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:389
+msgid "Strikethrough"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:500
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1818
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:539
+msgid "Unlink"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:505
+msgid "RTL"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:525
+msgid "Align None"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:530
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:335
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:340
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2872
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:784
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:157
+msgid "Lock"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:535
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:540
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:725
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2227
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2232
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2237
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2242
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2247
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:599
+msgid "Calendar"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:545
+msgid "Hidden"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:550
+msgid "Visibility"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:555
+msgid "Post Status"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:560
+msgid "Post Trash"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:565
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:275
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2467
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:682
+msgid "Edit"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:570
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:570
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:575
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3512
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3517
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:859
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:592
+msgid "Trash"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:575
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:595
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:615
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:184
+msgid "Arrow: Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:580
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:600
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:620
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:189
+msgid "Arrow: Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:585
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:605
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:625
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:194
+msgid "Arrow: Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:590
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:610
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:630
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:199
+msgid "Arrow: Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:635
+msgid "Left-Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:640
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3277
+msgid "Sort"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:645
+msgid "List View"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:650
+msgid "Excerpt View"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:655
+msgid "Grid View"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:660
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:665
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:670
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:525
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:530
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3192
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3197
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3202
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3207
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3212
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:839
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:262
+msgid "Share"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:675
+msgid "Twitter"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:680
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3162
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:834
+msgid "RSS"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:685
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:690
+msgid "Email"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:695
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:700
+msgid "Facebook"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:705
+msgid "Google+"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:710
+msgid "Networking"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:715
+msgid "Art"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:720
+msgid "Hammer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:725
+msgid "Migrate"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:730
+msgid "Performance"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:735
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:740
+msgid "WordPress"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:745
+msgid "PressThis"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:750
+msgid "Update"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:755
+msgid "Screen Options"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:760
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1045
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2802
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2807
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1074
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:152
+msgid "Info"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:765
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:437
+msgid "Cart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:770
+msgid "Feedback"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:775
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1345
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1350
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2332
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:609
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:597
+msgid "Cloud"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:780
+msgid "Translation"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:785
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:535
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3402
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:367
+msgid "Tag"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:790
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:357
+msgid "Category"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:810
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:430
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1406
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1411
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3062
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3067
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:674
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:172
+msgid "Plus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:815
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:365
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1396
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1401
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2952
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2957
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:679
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:684
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:177
+msgid "Minus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:820
+msgid "Dismiss"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:825
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:794
+msgid "Marker"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:830
+msgid "Star: Filled"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:835
+msgid "Star: Half"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:840
+msgid "Star: Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:845
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:875
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:880
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2587
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2592
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2597
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:724
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:492
+msgid "Flag"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:850
+msgid "Skip Back"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:855
+msgid "Back"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:860
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:400
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:405
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1975
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1980
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1985
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:894
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:899
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:327
+msgid "Play"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:865
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:410
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:415
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1960
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1965
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1970
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:904
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:332
+msgid "Pause"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:870
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:160
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:165
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1955
+msgid "Forward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:875
+msgid "Skip Forward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:880
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:470
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:475
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1853
+msgid "Repeat"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:885
+msgid "Volume: On"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:890
+msgid "Volume: Off"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:895
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2052
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:589
+msgid "Archive"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:905
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2347
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:687
+msgid "Code"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:910
+msgid "Default"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:915
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:457
+msgid "Document"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:920
+msgid "Interactive"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:925
+msgid "Spreadsheet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:930
+msgid "Text"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:940
+msgid "Audio Playlist"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:945
+msgid "Video Playlist"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:950
+msgid "Album"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:955
+msgid "Analytics"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:960
+msgid "Awards"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:965
+msgid "Backup"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:970
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2202
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2207
+msgid "Building"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:975
+msgid "Businessman"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:980
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:735
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2252
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:229
+msgid "Camera"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:985
+msgid "Carrot"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:990
+msgid "Chart: Pie"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:995
+msgid "Chart: Bar"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1000
+msgid "Chart: Line"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1005
+msgid "Chart: Area"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1010
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2452
+msgid "Desktop"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1015
+msgid "Forms"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1020
+msgid "Groups"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1025
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1030
+msgid "ID"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1035
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1040
+msgid "Images"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1045
+msgid "Index Card"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1050
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:759
+msgid "Layout"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1055
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1060
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:607
+msgid "Location"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1065
+msgid "Products"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1070
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:557
+msgid "Portfolio"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1075
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1080
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:690
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2172
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:999
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:432
+msgid "Book"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1085
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:265
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:270
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2462
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:709
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:467
+msgid "Download"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1090
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:580
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3562
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:714
+msgid "Upload"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1095
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2322
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:604
+msgid "Clock"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1100
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2862
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1084
+msgid "Lightbulb"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1105
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1030
+msgid "Money"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1110
+msgid "Palm Tree"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1115
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1120
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1125
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3037
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3047
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:542
+msgid "Phone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1120
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:515
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:520
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3172
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:247
+msgid "Search"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1125
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1130
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3217
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1144
+msgid "Shield"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1135
+msgid "Slides"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1140
+msgid "Smartphone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1145
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1215
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1220
+msgid "Smiley"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1150
+msgid "S.O.S."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1155
+msgid "Sticky"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1160
+msgid "Store"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1165
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3392
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:572
+msgid "Tablet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1170
+msgid "Testimonial"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1175
+msgid "Tickets"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1180
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:555
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3437
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3447
+msgid "Thumbs Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1185
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:560
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3432
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3442
+msgid "Thumbs Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1190
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:345
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:350
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3547
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3552
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:789
+msgid "Unlock"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1195
+msgid "Vault"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/dashicons.php:1215
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3627
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:582
+msgid "Warning"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:48
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:57
+msgid "Actions"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:52
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:72
+msgid "Currency"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:60
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:69
+msgid "Misc."
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:64
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:73
+msgid "Places"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:95
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:100
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2042
+msgid "Adjust"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:125
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1157
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:402
+msgid "Arrow Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:130
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1142
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:407
+msgid "Arrow Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:135
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1147
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:412
+msgid "Arrow Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:140
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1152
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:417
+msgid "Arrow Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:145
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1945
+msgid "Fast Backward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:150
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1990
+msgid "Step Backward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:155
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1925
+msgid "Backward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:170
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1995
+msgid "Step Forward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:175
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1950
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:924
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:342
+msgid "Fast Forward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:190
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1813
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:534
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:657
+msgid "Link"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:195
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1197
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1217
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2277
+msgid "Caret Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:200
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1182
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1202
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2262
+msgid "Caret Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:205
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1187
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1207
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2267
+msgid "Caret Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:210
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1192
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1212
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2272
+msgid "Caret Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:215
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1371
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1376
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2297
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2302
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2307
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:699
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:704
+msgid "Check"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:220
+msgid "Check Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:225
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1257
+msgid "Chevron Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:230
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1242
+msgid "Chevron Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:235
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1247
+msgid "Chevron Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:240
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1252
+msgid "Chevron Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:245
+msgid "Circle Arrow Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:250
+msgid "Circle Arrow Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:255
+msgid "Circle Arrow Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:260
+msgid "Circle Arrow Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:280
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1935
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:959
+msgid "Eject"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:285
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:290
+msgid "File New"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:295
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:300
+msgid "File Edit"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:305
+msgid "Fork"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:310
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:497
+msgid "Fullscreen"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:315
+msgid "Indent Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:320
+msgid "Indent Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:325
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:330
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1823
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1828
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:774
+msgid "List"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:355
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:360
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2917
+msgid "Map Marker"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:370
+msgid "Minus Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:375
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:192
+msgid "Move"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:380
+msgid "Off"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:385
+msgid "OK"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:390
+msgid "OK Circle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:395
+msgid "OK Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:420
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:425
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2000
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2005
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2010
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:909
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:337
+msgid "Stop"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:435
+msgid "Plus Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:440
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3082
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:524
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:207
+msgid "Print"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:445
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3097
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3102
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3107
+msgid "Question"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:450
+msgid "Question Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:455
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:889
+msgid "Record"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:460
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1634
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:804
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:227
+msgid "Refresh"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:480
+msgid "Resize Vertical"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:485
+msgid "Resize Horizontal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:490
+msgid "Resize Full"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:495
+msgid "Resize Small"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:500
+msgid "Return"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:505
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3152
+msgid "Retweet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:510
+msgid "Reverse"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:540
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3412
+msgid "Tasks"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:545
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1888
+msgid "Text Height"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:550
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1893
+msgid "Text Width"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:565
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3472
+msgid "Tint"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:585
+msgid "View Mode"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:590
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3622
+msgid "Volume Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:595
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3612
+msgid "Volume Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:600
+msgid "Mute"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:605
+msgid "Warning Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:610
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:884
+msgid "Zoom In"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:615
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:879
+msgid "Zoom Out"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:645
+msgid "Adult"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:650
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:655
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2022
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2027
+msgid "Address Book"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:660
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:114
+msgid "ASL"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:665
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2072
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:974
+msgid "Asterisk"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:670
+msgid "Ban Circle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:675
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2092
+msgid "Barcode"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:680
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2137
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2142
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2147
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2152
+msgid "Bell"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:685
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:159
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:119
+msgid "Blind"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:695
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:164
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:124
+msgid "Braille"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:700
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2192
+msgid "Briefcase"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:705
+msgid "Broom"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:710
+msgid "Brush"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:715
+msgid "Bulb"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:720
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2212
+msgid "Bullhorn"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:730
+msgid "Calendar Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:740
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1661
+msgid "Car"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:745
+msgid "CC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:750
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2292
+msgid "Certificate"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:755
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2312
+msgid "Child"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:760
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:765
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1629
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:452
+msgid "Cog"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:770
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2362
+msgid "Cogs"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:775
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:780
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2367
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2372
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:614
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:352
+msgid "Comment"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:785
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:790
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2397
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:234
+msgid "Compass"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:795
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1567
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1572
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2407
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:339
+msgid "Credit Card"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:805
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:810
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2482
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2487
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2492
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2497
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2502
+msgid "Envelope"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:815
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:820
+msgid "Error"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:825
+msgid "Exclamation Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:830
+msgid "Eye Close"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:835
+msgid "Eye Open"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:840
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2902
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:154
+msgid "Male"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:845
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2562
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:159
+msgid "Female"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:850
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:855
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1304
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1309
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:554
+msgid "File"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:860
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2567
+msgid "Film"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:870
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2577
+msgid "Fire"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:885
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2612
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2622
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:649
+msgid "Folder"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:890
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2617
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2627
+msgid "Folder Open"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:895
+msgid "Folder Close"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:900
+msgid "Folder Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:905
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1788
+msgid "Font"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:915
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2662
+msgid "Gift"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:920
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2667
+msgid "Glass"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:925
+msgid "Glasses"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:930
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:935
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2672
+msgid "Globe"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:940
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:945
+msgid "Graph"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:950
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:955
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2682
+msgid "Group"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:960
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:139
+msgid "Guide Dog"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:965
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1277
+msgid "Hand Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:970
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1262
+msgid "Hand Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:975
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1267
+msgid "Hand Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:980
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1272
+msgid "Hand Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:985
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2727
+msgid "HDD"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:990
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2737
+msgid "Headphones"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:995
+msgid "Hearing Impaired"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1000
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1005
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1495
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1500
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:669
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:507
+msgid "Heart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1010
+msgid "Heart Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1015
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2747
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2752
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2757
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2762
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2767
+msgid "Hourglass"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1020
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1025
+msgid "Idea"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1030
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1035
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1040
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2777
+msgid "Inbox"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1050
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2812
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1079
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:512
+msgid "Key"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1055
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1060
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2827
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:239
+msgid "Laptop"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1065
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2832
+msgid "Leaf"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1070
+msgid "Lines"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1075
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2877
+msgid "Magic"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1080
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2882
+msgid "Magnet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1085
+msgid "Mic"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1090
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2982
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1099
+msgid "Music"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1095
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1100
+msgid "Paper Clip"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1105
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1110
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3022
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3027
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3032
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:814
+msgid "Pencil"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1115
+msgid "Person"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1130
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1135
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:519
+msgid "Photo"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1140
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3052
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:547
+msgid "Picture"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1145
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1676
+msgid "Plane"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1150
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3077
+msgid "Podcast"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1155
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1134
+msgid "Puzzle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1160
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3092
+msgid "QR Code"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1165
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1170
+msgid "Quotes"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1175
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3122
+msgid "Random"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1180
+msgid "Scissors"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1185
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1190
+msgid "Screen"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1195
+msgid "Screenshot"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1200
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3222
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:369
+msgid "Shopping Cart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1205
+msgid "Shopping Cart Sign"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1210
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3252
+msgid "Signal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1225
+msgid "Speaker"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1230
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3567
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3572
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3577
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3582
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:377
+msgid "User"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1235
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:854
+msgid "Thumbnails"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1240
+msgid "Thumbnails (Large)"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1245
+msgid "Thumbnails (List)"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1250
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1255
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:372
+msgid "Time"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1260
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1179
+msgid "Torso"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1265
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1716
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1721
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:179
+msgid "Wheelchair"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1270
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1275
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3662
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:874
+msgid "Wrench"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1280
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:189
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:149
+msgid "Universal Access"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1285
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2177
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2182
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:594
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1004
+msgid "Bookmark"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1290
+msgid "Bookmark Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1310
+msgid "Home (iPhone)"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1320
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3407
+msgid "Tags"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1325
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1330
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:617
+msgid "Website"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/elusive.php:1445
+msgid "Open Source"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:60
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:48
+msgid "Accessibility"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:64
+msgid "Brand"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:68
+msgid "Charts"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:76
+msgid "Directional"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:80
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:68
+msgid "File Types"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:84
+msgid "Form Controls"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:88
+msgid "Genders"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:92
+msgid "Medical"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:96
+msgid "Payment"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:100
+msgid "Spinners"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:104
+msgid "Transportation"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:112
+msgid "Video Player"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:116
+msgid "Web Application"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:144
+msgid "American Sign Language"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:149
+msgid "Audio Description"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:154
+msgid "Assistive Listening Systems"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:169
+msgid "Deaf"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:174
+msgid "Low Vision"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:179
+msgid "Phone Volume Control"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:184
+msgid "Sign Language"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:973
+msgid "Area Chart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:978
+msgid "Bar Chart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:983
+msgid "Line Chart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:988
+msgid "Pie Chart"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:995
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:294
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:299
+msgid "Bitcoin"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1000
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:304
+msgid "Dollar"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1005
+msgid "Euro"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1010
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1015
+msgid "GBP"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1020
+msgid "GG"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1025
+msgid "Israeli Sheqel"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1035
+msgid "Rouble"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1040
+msgid "Rupee"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1045
+msgid "Turkish Lira"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1050
+msgid "Won"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1055
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:319
+msgid "Yen"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1062
+msgid "Angle Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1067
+msgid "Angle Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1072
+msgid "Angle Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1077
+msgid "Angle Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1082
+msgid "Angle Double Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1087
+msgid "Angle Double Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1092
+msgid "Angle Double Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1097
+msgid "Angle Double Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1102
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1122
+msgid "Arrow Circle Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1107
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1127
+msgid "Arrow Circle Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1112
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1132
+msgid "Arrow Circle Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1117
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1137
+msgid "Arrow Circle Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1162
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1167
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1172
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1177
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1920
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2057
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2062
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2067
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:52
+msgid "Arrows"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1222
+msgid "Chevron Circle Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1227
+msgid "Chevron Circle Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1232
+msgid "Chevron Circle Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1237
+msgid "Chevron Circle Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1282
+msgid "Long Arrow Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1287
+msgid "Long Arrow Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1292
+msgid "Long Arrow Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1297
+msgid "Long Arrow Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1314
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1319
+msgid "File: Text"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1324
+msgid "File: Archive"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1329
+msgid "File: Audio"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1334
+msgid "File: Code"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1339
+msgid "File: Excel"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1344
+msgid "File: Image"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1349
+msgid "File: PDF"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1354
+msgid "File: Powerpoint"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1359
+msgid "File: Video"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1364
+msgid "File: Word"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1381
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1386
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1624
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2317
+msgid "Circle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1391
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:462
+msgid "Dot"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1416
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1421
+msgid "Square"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1428
+msgid "Genderless"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1433
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1438
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1443
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1448
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1453
+msgid "Mars"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1458
+msgid "Mercury"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1463
+msgid "Neuter"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1468
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1473
+msgid "Transgender"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1478
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1483
+msgid "Venus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1488
+msgid "Venus + Mars"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1505
+msgid "Heartbeat"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1510
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1515
+msgid "Hospital"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1520
+msgid "Medkit"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1525
+msgid "Stethoscope"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1530
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1535
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1540
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1545
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1550
+msgid "Thermometer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1555
+msgid "User MD"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1639
+msgid "Spinner"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1646
+msgid "Ambulance"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1651
+msgid "Bicycle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1656
+msgid "Bus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1666
+msgid "Fighter Jet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1671
+msgid "Motorcycle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1681
+msgid "Rocket"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1686
+msgid "Ship"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1691
+msgid "Space Shuttle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1696
+msgid "Subway"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1701
+msgid "Taxi"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1706
+msgid "Train"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1711
+msgid "Truck"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1753
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1009
+msgid "Clipboard"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1758
+msgid "Columns"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1763
+msgid "Copy"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1768
+msgid "Cut"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1773
+msgid "Paste"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1778
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2507
+msgid "Eraser"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1783
+msgid "Files"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1793
+msgid "Header"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1843
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:809
+msgid "Paperclip"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1848
+msgid "Paragraph"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1863
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:529
+msgid "Save"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1873
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:409
+msgid "Subscript"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1878
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:404
+msgid "Superscript"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1883
+msgid "Table"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1898
+msgid "Table Header"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1903
+msgid "TH Large"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1908
+msgid "TH List"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1930
+msgid "Compress"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:1940
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:142
+msgid "Expand"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2015
+msgid "YouTube Play"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2032
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2037
+msgid "Address Card"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2047
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:969
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:672
+msgid "Anchor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2077
+msgid "At"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2082
+msgid "Balance"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2087
+msgid "Ban"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2097
+msgid "Bars"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2102
+msgid "Bathtub"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2107
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2112
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2117
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2122
+msgid "Battery"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2127
+msgid "Bed"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2132
+msgid "Beer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2157
+msgid "Binoculars"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2162
+msgid "Birthday Cake"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2167
+msgid "Bolt"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2187
+msgid "Bomb"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2197
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:427
+msgid "Bug"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2217
+msgid "Bullseye"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2222
+msgid "Calculator"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2257
+msgid "Camera Retro"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2282
+msgid "Cart Arrow Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2287
+msgid "Cart Plus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2327
+msgid "Clone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2337
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:442
+msgid "Cloud Download"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2342
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:447
+msgid "Cloud Upload"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2352
+msgid "Code Fork"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2357
+msgid "Coffee"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2387
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2392
+msgid "Commenting"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2402
+msgid "Copyright"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2417
+msgid "Crosshairs"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2422
+msgid "Cube"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2427
+msgid "Cubes"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2432
+msgid "Cursor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2437
+msgid "Cutlery"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2447
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:644
+msgid "Database"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2457
+msgid "Diamond"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2472
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2477
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:477
+msgid "Ellipsis"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2512
+msgid "Exchange"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2517
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2522
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2527
+msgid "Exclamation"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2532
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2537
+msgid "External Link"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2542
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2547
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:664
+msgid "Eye"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2552
+msgid "Eye Dropper"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2557
+msgid "Fax"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2582
+msgid "Fire Extinguisher"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2602
+msgid "Flash"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2607
+msgid "Flask"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2632
+msgid "Foot Ball"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2637
+msgid "Frown"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2642
+msgid "Gamepad"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2647
+msgid "Gavel"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2652
+msgid "Gear"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2657
+msgid "Gears"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2677
+msgid "Graduation Cap"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2687
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2697
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2702
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2707
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2712
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2717
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2722
+msgid "Hand"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2692
+msgid "Handshake"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2732
+msgid "Hash Tag"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2772
+msgid "History"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2782
+msgid "ID Badge"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2787
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2792
+msgid "ID Card"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2797
+msgid "Industry"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2817
+msgid "Keyboard"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2822
+msgid "Language"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2837
+msgid "Legal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2842
+msgid "Lemon"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2847
+msgid "Level Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2852
+msgid "Level Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2857
+msgid "Life Buoy"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2867
+msgid "Location Arrow"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2887
+msgid "Mail Forward"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2892
+msgid "Mail Reply"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2897
+msgid "Mail Reply All"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2907
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2912
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1089
+msgid "Map"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2922
+msgid "Map Pin"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2927
+msgid "Map Signs"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2932
+msgid "Meh"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2937
+msgid "Microchip"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2942
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2947
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:249
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:527
+msgid "Microphone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2962
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:254
+msgid "Mobile"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2967
+msgid "Mobile Phone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2972
+msgid "Moon"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2977
+msgid "Mouse Pointer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2987
+msgid "Newspaper"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2992
+msgid "Object Group"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:2997
+msgid "Object Ungroup"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3002
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:537
+msgid "Paint Brush"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3007
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3012
+msgid "Paper Plane"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3017
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1114
+msgid "Paw"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3042
+msgid "Percent"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3057
+msgid "Plug"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3072
+msgid "Power Off"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3087
+msgid "Puzzle Piece"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3112
+msgid "Quote Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3117
+msgid "Quote Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3127
+msgid "Rebel"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3132
+msgid "Recycle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3137
+msgid "Registered"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3142
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:232
+msgid "Reply"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3147
+msgid "Reply All"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3157
+msgid "Road"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3167
+msgid "RSS Square"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3177
+msgid "Search Minus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3182
+msgid "Search Plus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3187
+msgid "Server"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3227
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:364
+msgid "Shopping Bag"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3232
+msgid "Shopping Basket"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3237
+msgid "Shower"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3242
+msgid "Sign In"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3247
+msgid "Sign Out"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3257
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:612
+msgid "Sitemap"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3262
+msgid "Sliders"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3267
+msgid "Smile"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3272
+msgid "Snowflake"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3282
+msgid "Sort ASC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3287
+msgid "Sort DESC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3292
+msgid "Sort Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3297
+msgid "Sort Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3302
+msgid "Sort Alpha ASC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3307
+msgid "Sort Alpha DESC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3312
+msgid "Sort Amount ASC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3317
+msgid "Sort Amount DESC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3322
+msgid "Sort Numeric ASC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3327
+msgid "Sort Numeric DESC"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3332
+msgid "Spoon"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3337
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3362
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:849
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:562
+msgid "Star"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3342
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3347
+msgid "Star Half"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3352
+msgid "Star Half Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3357
+msgid "Star Half Full"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3367
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3372
+msgid "Sticky Note"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3377
+msgid "Street View"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3382
+msgid "Suitcase"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3387
+msgid "Sun"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3397
+msgid "Tachometer"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3417
+msgid "Television"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3422
+msgid "Terminal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3427
+msgid "Thumb Tack"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3452
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1164
+msgid "Ticket"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3457
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3462
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3467
+msgid "Times"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3477
+msgid "Toggle Down"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3482
+msgid "Toggle Left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3487
+msgid "Toggle Right"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3492
+msgid "Toggle Up"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3497
+msgid "Toggle Off"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3502
+msgid "Toggle On"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3507
+msgid "Trademark"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3522
+msgid "Tree"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3527
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1174
+msgid "Trophy"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3532
+msgid "TTY"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3537
+msgid "Umbrella"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3542
+msgid "University"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3557
+msgid "Unsorted"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3592
+msgid "User: Add"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3597
+msgid "User: Remove"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3602
+msgid "User: Password"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3607
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:577
+msgid "Video Camera"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3617
+msgid "Volume Of"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3632
+msgid "WiFi"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3637
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3642
+msgid "Window Close"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3647
+msgid "Window Maximize"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3652
+msgid "Window Minimize"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/fa.php:3657
+msgid "Window Restore"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/font.php:191
+#: vendor/codeinwp/icon-picker/includes/types/svg.php:110
+msgid "Deselect"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:56
+msgid "Devices"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:60
+msgid "Ecommerce"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:64
+msgid "Editor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:72
+msgid "General"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:76
+msgid "Media Controls"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:80
+msgid "Miscellaneous"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:84
+msgid "People"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:88
+msgid "Social/Brand"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:129
+msgid "Closed Caption"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:134
+msgid "Elevator"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:144
+msgid "Hearing Aid"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:164
+msgid "Male & Female"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:169
+msgid "Male Symbol"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:174
+msgid "Female Symbol"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:204
+msgid "Arrows: Out"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:209
+msgid "Arrows: In"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:214
+msgid "Arrows: Expand"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:219
+msgid "Arrows: Compress"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:224
+msgid "Bluetooth"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:244
+msgid "Megaphone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:259
+msgid "Mobile Signal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:264
+msgid "Monitor"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:269
+msgid "Tablet: Portrait"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:274
+msgid "Tablet: Landscape"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:279
+msgid "Telephone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:284
+msgid "USB"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:309
+msgid "EURO"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:314
+msgid "Pound"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:324
+msgid "Burst"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:329
+msgid "Burst: New"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:334
+msgid "Burst: Sale"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:344
+msgid "Dollar Bill"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:354
+msgid "Price Tag"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:359
+msgid "Price Tag: Multiple"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:399
+msgid "Background Color"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:434
+msgid "List: Number"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:439
+msgid "List: Bullet"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:454
+msgid "Add Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:459
+msgid "Copy Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:464
+msgid "Duplicate Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:469
+msgid "Delete Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:474
+msgid "Remove Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:479
+msgid "Edit Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:484
+msgid "Export"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:489
+msgid "Export to CSV"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:494
+msgid "Export to PDF"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:499
+msgid "Fill Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:514
+msgid "Paint Bucket"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:549
+msgid "Search in Page"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:559
+msgid "CSV"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:564
+msgid "Doc"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:569
+msgid "PDF"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:574
+msgid "Addressbook"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:579
+msgid "Alert"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:584
+msgid "Annotate"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:619
+msgid "Comment: Minus"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:624
+msgid "Comment: Quotes"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:629
+msgid "Comment: Video"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:639
+msgid "Contrast"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:654
+msgid "Folder: Add"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:659
+msgid "Folder: Lock"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:689
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:694
+msgid "X"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:719
+msgid "Upload to Cloud"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:729
+msgid "Foundation"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:734
+msgid "Graph: Bar"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:739
+msgid "Graph: Horizontal"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:744
+msgid "Graph: Pie"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:749
+msgid "Graph: Trend"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:764
+msgid "Like"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:769
+msgid "Dislike"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:779
+msgid "List: Thumbnails"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:799
+msgid "Magnifying Glass"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:819
+msgid "Play Video"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:824
+msgid "Results"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:829
+msgid "Results: Demographics"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:844
+msgid "Sound"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:864
+msgid "Web"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:869
+msgid "Widget"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:914
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:182
+msgid "Previous"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:919
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:322
+msgid "Rewind"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:929
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:187
+msgid "Next"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:934
+msgid "Volume"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:939
+msgid "Volume: Low"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:944
+msgid "Volume: Mute"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:949
+msgid "Loop"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:954
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:267
+msgid "Shuffle"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:964
+msgid "Rewind 10"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:979
+msgid "@"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:984
+msgid "Battery: Full"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:989
+msgid "Battery: Half"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:994
+msgid "Battery: Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1014
+msgid "Clipboard: Pencil"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1019
+msgid "Clipboard: Notes"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1024
+msgid "Crown"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1029
+msgid "Dice: 1"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1034
+msgid "Dice: 2"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1039
+msgid "Dice: 3"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1044
+msgid "Dice: 4"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1049
+msgid "Dice: 5"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1054
+msgid "Dice: 6"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1059
+msgid "Cone"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1064
+msgid "Firs Aid"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1069
+msgid "Foot"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1094
+msgid "Mountains"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1104
+msgid "No Dogs"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1109
+msgid "No Smoking"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1119
+msgid "Power"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1124
+msgid "Prohibited"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1129
+msgid "Projection Screen"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1139
+msgid "Sheriff Badge"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1149
+msgid "Skull"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1154
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1159
+msgid "Target"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1169
+msgid "Trees"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1184
+msgid "Torso: Business"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1189
+msgid "Torso: Female"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1194
+msgid "Torsos"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1199
+msgid "Torsos: All"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1204
+msgid "Torsos: All Female"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1209
+msgid "Torsos: Male & Female"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/foundation-icons.php:1214
+msgid "Torsos: Female & Male"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:61
+msgid "Media Player"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:65
+msgid "Meta"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:112
+msgid "Checkmark"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:117
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:122
+msgid "Close"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:127
+msgid "Dropdown"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:132
+msgid "Dropdown left"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:162
+msgid "Maximize"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:167
+msgid "Minimize"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:197
+msgid "Hide"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:202
+msgid "Show"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:212
+msgid "Rating: Empty"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:217
+msgid "Rating: Half"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:222
+msgid "Rating: Full"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:237
+msgid "Reply alt"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:242
+msgid "Reply single"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:252
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:257
+msgid "Send to"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:272
+msgid "Spam"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:277
+msgid "Subscribe"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:282
+msgid "Subscribed"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:287
+msgid "Unsubscribe"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:297
+msgid "Unapprove"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:302
+msgid "Zoom"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:307
+msgid "Unzoom"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:312
+msgid "X-Post"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:317
+msgid "Skip back"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:347
+msgid "Skip ahead"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:362
+msgid "Hierarchy"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:382
+msgid "Day"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:387
+msgid "Week"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:392
+msgid "Month"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:397
+msgid "Pinned"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:422
+msgid "Activity"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:472
+msgid "Draggable"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:482
+msgid "External"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:487
+msgid "Feed"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:502
+msgid "Handset"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:517
+msgid "Mail"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:532
+msgid "Notice"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:552
+msgid "Plugin"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:567
+msgid "Summary"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/genericon.php:677
+msgid "Attachment"
+msgstr ""
+
+#: vendor/codeinwp/icon-picker/includes/types/svg.php:52
+msgid "SVG"
+msgstr ""
+
+#: vendor/codeinwp/menu-item-custom-fields/doc/menu-item-custom-fields-example.php:51
+msgid "Custom Field #1"
+msgstr ""
+
+#: vendor/codeinwp/menu-item-custom-fields/doc/menu-item-custom-fields-example.php:52
+msgid "Custom Field #2"
+msgstr ""
+
+#. Plugin Name of the plugin/theme
+msgid "Menu Icons"
+msgstr ""
+
+#. Plugin URI of the plugin/theme
+msgid "https://github.com/Codeinwp/wp-menu-icons"
+msgstr ""
+
+#. Description of the plugin/theme
+msgid "Spice up your navigation menus with pretty icons, easily."
+msgstr ""
+
+#. Author of the plugin/theme
+msgid "ThemeIsle"
+msgstr ""
+
+#. Author URI of the plugin/theme
+msgid "https://themeisle.com"
+msgstr ""
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/mailin.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/mailin.php
new file mode 100644
index 00000000..e4d28d7d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/mailin.php
@@ -0,0 +1,867 @@
+base_url = $base_url;
+ $this->api_key = $api_key;
+ }
+ /**
+ * Do CURL request with authorization
+ */
+ private function do_request( $resource, $method, $input ) {
+ $called_url = $this->base_url . '/' . $resource;
+ $ch = curl_init( $called_url );
+ $auth_header = 'api-key:' . $this->api_key;
+ $content_header = 'Content-Type:application/json';
+ if ( strtoupper( substr( PHP_OS, 0, 3 ) ) === 'WIN' ) {
+ // Windows only over-ride
+ curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
+ }
+ curl_setopt( $ch, CURLOPT_HTTPHEADER, array($auth_header, $content_header) );
+ curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
+ curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
+ curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
+ curl_setopt( $ch, CURLOPT_HEADER, 0 );
+ curl_setopt( $ch, CURLOPT_POSTFIELDS, $input );
+ $data = curl_exec( $ch );
+ if ( curl_errno( $ch ) ) {
+ echo 'Curl error: ' . curl_error( $ch ) . '\n';
+ }
+ curl_close( $ch );
+ return json_decode( $data, true );
+ }
+ public function get( $resource, $input ) {
+ return $this->do_request( $resource, 'GET', $input );
+ }
+ public function put( $resource, $input ) {
+ return $this->do_request( $resource, 'PUT', $input );
+ }
+ public function post( $resource, $input ) {
+ return $this->do_request( $resource, 'POST', $input );
+ }
+ public function delete( $resource, $input ) {
+ return $this->do_request( $resource, 'DELETE', $input );
+ }
+
+ /*
+ Get Account.
+ No input required
+ */
+ public function get_account() {
+ return $this->get( 'account', '' );
+ }
+
+ /*
+ Get SMTP details.
+ No input required
+ */
+ public function get_smtp_details() {
+ return $this->get( 'account/smtpdetail', '' );
+ }
+
+ /*
+ Create Child Account.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} child_email: Email address of Reseller child [Mandatory]
+ @options data {String} password: Password of Reseller child to login [Mandatory]
+ @options data {String} company_org: Name of Reseller child’s company [Mandatory]
+ @options data {String} first_name: First name of Reseller child [Mandatory]
+ @options data {String} last_name: Last name of Reseller child [Mandatory]
+ @options data {Array} credits: Number of email & sms credits respectively, which will be assigned to the Reseller child’s account [Optional]
+ - email_credit {Integer} number of email credits
+ - sms_credit {Integer} Number of sms credts
+ @options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
+ */
+ public function create_child_account( $data ) {
+ return $this->post( 'account', json_encode( $data ) );
+ }
+
+ /*
+ Update Child Account.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} auth_key: 16 character authorization key of Reseller child to be modified [Mandatory]
+ @options data {String} company_org: Name of Reseller child’s company [Optional]
+ @options data {String} first_name: First name of Reseller child [Optional]
+ @options data {String} last_name: Last name of Reseller child [Optional]
+ @options data {String} password: Password of Reseller child to login [Optional]
+ @options data {Array} associate_ip: Associate dedicated IPs to reseller child. You can use commas to separate multiple IPs [Optional]
+ @options data {Array} disassociate_ip: Disassociate dedicated IPs from reseller child. You can use commas to separate multiple IPs [Optional]
+ */
+ public function update_child_account( $data ) {
+ return $this->put( 'account', json_encode( $data ) );
+ }
+
+ /*
+ Delete Child Account.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} auth_key: 16 character authorization key of Reseller child to be deleted [Mandatory]
+ */
+ public function delete_child_account( $data ) {
+ return $this->delete( 'account/' . $data['auth_key'], '' );
+ }
+
+ /*
+ Get Reseller child Account.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} auth_key: 16 character authorization key of Reseller child. Example : To get the details of more than one child account, use, {"key1":"abC01De2fGHI3jkL","key2":"mnO45Pq6rSTU7vWX"} [Mandatory]
+ */
+ public function get_reseller_child( $data ) {
+ return $this->post( 'account/getchildv2', json_encode( $data ) );
+ }
+
+ /*
+ Add/Remove Reseller child's Email/Sms credits.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} auth_key: 16 character authorization key of Reseller child to modify credits [Mandatory]
+ @options data {Array} add_credit: Number of email & sms credits to be added. You can assign either email or sms credits, one at a time other will remain 0. [Mandatory: if rmv_credit is empty]
+ - email_credit {Integer} number of email credits
+ - sms_credit {Integer} Number of sms credts
+ @options data {Array} rmv_credit: Number of email & sms credits to be removed. You can assign either email or sms credits, one at a time other will remain 0. [Mandatory: if add_credits is empty]
+ - email_credit {Integer} number of email credits
+ - sms_credit {Integer} Number of sms credts
+ */
+ public function add_remove_child_credits( $data ) {
+ return $this->post( 'account/addrmvcredit', json_encode( $data ) );
+ }
+
+ /*
+ Get a particular campaign detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Unique Id of the campaign [Mandatory]
+ */
+ public function get_campaign_v2( $data ) {
+ return $this->get( 'campaign/' . $data['id'] . '/detailsv2', '' );
+ }
+
+ /*
+ Get all campaigns detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} type: Type of campaign. Possible values – classic, trigger, sms, template ( case sensitive ) [Optional]
+ @options data {String} status: Status of campaign. Possible values – draft, sent, archive, queued, suspended, in_process, temp_active, temp_inactive ( case sensitive ) [Optional]
+ @options data {Integer} page: Maximum number of records per request is 500, if there are more than 500 campaigns then you can use this parameter to get next 500 results [Optional]
+ @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
+ */
+ public function get_campaigns_v2( $data ) {
+ return $this->get( 'campaign/detailsv2', json_encode( $data ) );
+ }
+
+ /*
+ Create and Schedule your campaigns. It returns the ID of the created campaign.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} category: Tag name of the campaign [Optional]
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} name: Name of the campaign [Mandatory]
+ @options data {String} bat: Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
+ @options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
+ @options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
+ @options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
+ @options data {String} subject: Subject of the campaign [Mandatory]
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM] To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
+ @options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
+ @options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
+ @options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+
+ */
+ public function create_campaign( $data ) {
+ return $this->post( 'campaign', json_encode( $data ) );
+ }
+
+ /*
+ Update your campaign.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of campaign to be modified [Mandatory]
+ @options data {String} category: Tag name of the campaign [Optional]
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} name: Name of the campaign [Optional]
+ @options data {String} bat: Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Optional]
+ @options data {String} html_url: Url which content is the body of content [Optional]
+ @options data {Array} listid These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
+ @options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
+ @options data {String} subject: Subject of the campaign.
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
+ @options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
+ @options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
+ @options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+ */
+ public function update_campaign( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'campaign/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Delete your campaigns.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of campaign to be deleted [Mandatory]
+ */
+ public function delete_campaign( $data ) {
+ return $this->delete( 'campaign/' . $data['id'], '' );
+ }
+
+ /*
+ Send report of Sent and Archived campaign.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of campaign to send its report [Mandatory]
+ @options data {String} lang: Language of email content. Possible values – fr (default), en, es, it & pt [Optional]
+ @options data {String} email_subject: Message subject [Mandatory]
+ @options data {Array} email_to: Email address of the recipient(s). Example: "test@example.net". You can use commas to separate multiple recipients [Mandatory]
+ @options data {String} email_content_type: Body of the message in text/HTML version. Possible values – text & html [Mandatory]
+ @options data {Array} email_bcc: Same as email_to but for Bcc [Optional]
+ @options data {Array} email_cc: Same as email_to but for Cc [Optional]
+ @options data {String} email_body: Body of the message [Mandatory]
+ */
+ public function campaign_report_email( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->post( 'campaign/' . $id . '/report', json_encode( $data ) );
+ }
+
+ /*
+ Export the recipients of a specified campaign.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of campaign to export its recipients [Mandatory]
+ @options data {String} notify_url: URL that will be called once the export process is finished [Mandatory]
+ @options data {String} type: Type of recipients. Possible values – all, non_clicker, non_opener, clicker, opener, soft_bounces, hard_bounces & unsubscribes [Mandatory]
+ */
+ public function campaign_recipients_export( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->post( 'campaign/' . $id . '/recipients', json_encode( $data ) );
+ }
+
+ /*
+ Get the Campaign name, subject and share link of the classic type campaigns only which are sent, for those which are not sent and the rest of campaign types like trigger, template & sms, will return an error message of share link not available.
+ @param {Array} data contains php array with key value pair.
+ @options data {Array} camp_ids: Id of campaign to get share link. You can use commas to separate multiple ids [Mandatory]
+ */
+
+ public function share_campaign( $data ) {
+ return $this->post( 'campaign/sharelinkv2', json_encode( $data ) );
+ }
+
+ /*
+ Send a Test Campaign.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of the campaign [Mandatory]
+ @options data {Array} emails: Email address of recipient(s) existing in the one of the lists & should not be blacklisted. Example: "test@example.net". You can use commas to separate multiple recipients [Mandatory]
+ */
+ public function send_bat_email( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->post( 'campaign/' . $id . '/test', json_encode( $data ) );
+ }
+
+ /*
+ Update the Campaign status.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of campaign to update its status [Mandatory]
+ @options data {String} status: Types of status. Possible values – suspended, archive, darchive, sent, queued, replicate and replicate_template ( case sensitive ) [Mandatory]
+ */
+ public function update_campaign_status( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'campaign/' . $id . '/updatecampstatus', json_encode( $data ) );
+ }
+
+ /*
+ Create and schedule your Trigger campaigns.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} category: Tag name of the campaign [Optional]
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} trigger_name: Name of the campaign [Mandatory]
+ @options data {String} bat: Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
+ @options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
+ @options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
+ @options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
+ @options data {String} subject: Subject of the campaign [Mandatory]
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
+ @options data {Integer} recurring: Type of trigger campaign. Possible values = 0 (default) & 1. recurring = 0 means contact can receive the same Trigger campaign only once, & recurring = 1 means contact can receive the same Trigger campaign several times [Optional]
+ @options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
+ @options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
+ @options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+ */
+ public function create_trigger_campaign( $data ) {
+ return $this->post( 'campaign', json_encode( $data ) );
+ }
+
+ /*
+ Update and schedule your Trigger campaigns.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of Trigger campaign to be modified [Mandatory]
+ @options data {String} category: Tag name of the campaign [Optional]
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} trigger_name: Name of the campaign [Mandatory]
+ @options data {String} bat Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
+ @options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
+ @options data {Array} listid: These are the lists to which the campaign has been sent [Mandatory: if scheduled_date is not empty]
+ @options data {String} scheduled_date: The day on which the campaign is supposed to run[Optional]
+ @options data {String} subject: Subject of the campaign [Mandatory]
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients, please make sure that the sender details are defined here, and in case of no sender, you can add them also via API & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Array} exclude_list: These are the lists which must be excluded from the campaign [Optional]
+ @options data {Integer} recurring: Type of trigger campaign. Possible values = 0 (default) & 1. recurring = 0 means contact can receive the same Trigger campaign only once, & recurring = 1 means contact can receive the same Trigger campaign several times [Optional]
+ @options data {String} attachment_url: Provide the absolute url of the attachment [Optional]
+ @options data {Integer} inline_image: Status of inline image. Possible values = 0 (default) & 1. inline_image = 0 means image can’t be embedded, & inline_image = 1 means image can be embedded, in the email [Optional]
+ @options data {Integer} mirror_active: Status of mirror links in campaign. Possible values = 0 & 1 (default). mirror_active = 0 means mirror links are deactivated, & mirror_active = 1 means mirror links are activated, in the campaign [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+ */
+ public function update_trigger_campaign( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'campaign/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Get all folders detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 folders then you can use this parameter to get next 50 results [Mandatory]
+ @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
+ */
+ public function get_folders( $data ) {
+ return $this->get( 'folder', json_encode( $data ) );
+ }
+
+ /*
+ Get a particular folder detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of folder to get details [Mandatory]
+ */
+ public function get_folder( $data ) {
+ return $this->get( 'folder/' . $data['id'], '' );
+ }
+
+ /*
+ Create a new folder.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} name: Desired name of the folder to be created [Mandatory]
+ */
+ public function create_folder( $data ) {
+ return $this->post( 'folder', json_encode( $data ) );
+ }
+
+ /*
+ Delete a specific folder information.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of folder to be deleted [Mandatory]
+ */
+ public function delete_folder( $data ) {
+ return $this->delete( 'folder/' . $data['id'], '' );
+ }
+
+ /*
+ Update an existing folder.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of folder to be modified [Mandatory]
+ @options data {String} name: Desired name of the folder to be modified [Mandatory]
+ */
+ public function update_folder( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'folder/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Get all lists detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} list_parent: This is the existing folder id & can be used to get all lists belonging to it [Optional]
+ @options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 processes then you can use this parameter to get next 50 results [Mandatory]
+ @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
+ */
+ public function get_lists( $data ) {
+ return $this->get( 'list', json_encode( $data ) );
+ }
+
+ /*
+ Get a particular list detail.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of list to get details [Mandatory]
+ */
+ public function get_list( $data ) {
+ return $this->get( 'list/' . $data['id'], '' );
+ }
+
+ /*
+ Create a new list.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} list_name: Desired name of the list to be created [Mandatory]
+ @options data {Integer} list_parent: Folder ID [Mandatory]
+ */
+ public function create_list( $data ) {
+ return $this->post( 'list', json_encode( $data ) );
+ }
+
+ /*
+ Update a list.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of list to be modified [Mandatory]
+ @options data {String} list_name: Desired name of the list to be modified [Optional]
+ @options data {Integer} list_parent: Folder ID [Mandatory]
+ */
+ public function update_list( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'list/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Delete a specific list.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of list to be deleted [Mandatory]
+ */
+ public function delete_list( $data ) {
+ return $this->delete( 'list/' . $data['id'], '' );
+ }
+
+ /*
+ Display details of all users for the given lists.
+ @param {Array} data contains php array with key value pair.
+ @options data {Array} listids: These are the list ids to get their data. The ids found will display records [Mandatory]
+ @options data {String} timestamp: This is date-time filter to fetch modified user records >= this time. Valid format Y-m-d H:i:s. Example: "2015-05-22 14:30:00" [Optional]
+ @options data {Integer} page: Maximum number of records per request is 500, if in your list there are more than 500 users then you can use this parameter to get next 500 results [Optional]
+ @options data {Integer} page_limit: This should be a valid number between 1-500 [Optional]
+ */
+ public function display_list_users( $data ) {
+ return $this->post( 'list/display', json_encode( $data ) );
+ }
+
+ /*
+ Add already existing users in the SendinBlue contacts to the list.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of list to link users in it [Mandatory]
+ @options data {Array} users: Email address of the already existing user(s) in the SendinBlue contacts. Example: "test@example.net". You can use commas to separate multiple users [Mandatory]
+ */
+
+ public function add_users_list( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->post( 'list/' . $id . '/users', json_encode( $data ) );
+ }
+
+ /*
+ Delete already existing users in the SendinBlue contacts from the list.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of list to unlink users from it [Mandatory]
+ @options data {Array} users: Email address of the already existing user(s) in the SendinBlue contacts to be modified. Example: "test@example.net". You can use commas to separate multiple users [Mandatory]
+ */
+ public function delete_users_list( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->delete( 'list/' . $id . '/delusers', json_encode( $data ) );
+ }
+
+ /*
+ Access all the attributes information under the account.
+ No input required
+ */
+ public function get_attributes() {
+ return $this->get( 'attribute', '' );
+ }
+
+ /*
+ Access the specific type of attribute information.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global [Optional]
+ */
+ public function get_attribute( $data ) {
+ return $this->get( 'attribute/' . $data['type'], '' );
+ }
+
+ /*
+ Create an Attribute.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} type: Type of attribute. Possible values – normal, transactional, category, calculated & global ( case sensitive ) [Mandatory]
+ @options data {Array} data: The name and data type of ‘normal’ & ‘transactional’ attribute to be created in your SendinBlue account. It should be sent as an associative array. Example: array(‘ATTRIBUTE_NAME1′ => ‘DATA_TYPE1′, ‘ATTRIBUTE_NAME2’=> ‘DATA_TYPE2′).
+ The name and data value of ‘category’, ‘calculated’ & ‘global’, should be sent as JSON string. Example: ‘[{ "name":"ATTRIBUTE_NAME1", "value":"Attribute_value1" }, { "name":"ATTRIBUTE_NAME2", "value":"Attribute_value2" }]’. You can use commas to separate multiple attributes [Mandatory]
+ */
+ public function create_attribute( $data ) {
+ return $this->post( 'attribute/', json_encode( $data ) );
+ }
+
+ /*
+ Delete a specific type of attribute information.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} type: Type of attribute to be deleted [Mandatory]
+ */
+ public function delete_attribute( $type, $data ) {
+ $type = $data['type'];
+ unset( $data['type'] );
+ return $this->post( 'attribute/' . $type, json_encode( $data ) );
+ }
+
+ /*
+ Create a new user if an email provided as input, doesn’t exists in the contact list of your SendinBlue account, otherwise it will update the existing user.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} email: Email address of the user to be created in SendinBlue contacts. Already existing email address of user in the SendinBlue contacts to be modified [Mandatory]
+ @options data {Array} attributes: The name of attribute present in your SendinBlue account. It should be sent as an associative array. Example: array("NAME"=>"name"). You can use commas to separate multiple attributes [Optional]
+ @options data {Integer} blacklisted: This is used to blacklist/ Unblacklist a user. Possible values – 0 & 1. blacklisted = 1 means user has been blacklisted [Optional]
+ @options data {Array} listid: The list id(s) to be linked from user [Optional]
+ @options data {Array} listid_unlink: The list id(s) to be unlinked from user [Optional]
+ @options data {Array} blacklisted_sms: This is used to blacklist/ Unblacklist a user’s SMS number. Possible values – 0 & 1. blacklisted_sms = 1 means user’s SMS number has been blacklisted [Optional]
+ */
+ public function create_update_user( $data ) {
+ return $this->post( 'user/createdituser', json_encode( $data ) );
+ }
+
+ /*
+ Get Access a specific user Information.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} email: Email address of the already existing user in the SendinBlue contacts [Mandatory]
+ */
+ public function get_user( $data ) {
+ return $this->get( 'user/' . $data['email'], '' );
+ }
+
+ /*
+ Unlink existing user from all lists.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} email: Email address of the already existing user in the SendinBlue contacts to be unlinked from all lists [Mandatory]
+ */
+ public function delete_user( $data ) {
+ return $this->delete( 'user/' . $data['email'], '' );
+ }
+
+ /*
+ Import Users Information.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} url: The URL of the file to be imported. Possible file types – .txt, .csv [Mandatory: if body is empty]
+ @options data {String} body: The Body with csv content to be imported. Example: ‘NAME;SURNAME;EMAIL\n"Name1";"Surname1";"example1@example.net"\n"Name2";"Surname2";"example2@example.net"‘, where \n separates each user data. You can use semicolon to separate multiple attributes [Mandatory: if url is empty]
+ @options data {Array} listids: These are the list ids in which the the users will be imported [Mandatory: if name is empty]
+ @options data {String} notify_url: URL that will be called once the import process is finished [Optional] In notify_url, we are sending the content using POST method
+ @options data {String} name: This is new list name which will be created first & then users will be imported in it [Mandatory: if listids is empty]
+ @options data {Integer} list_parent: This is the existing folder id & can be used with name parameter to make newly created list’s desired parent [Optional]
+ */
+ public function import_users( $data ) {
+ return $this->post( 'user/import', json_encode( $data ) );
+ }
+
+ /*
+ Export Users Information.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} export_attrib: The name of attribute present in your SendinBlue account. You can use commas to separate multiple attributes. Example: "EMAIL,NAME,SMS" [Optional]
+ @options data {String} filter: Filter can be added to export users. Example: "{\"blacklisted\":1}", will export all blacklisted users [Mandatory]
+ @options data {String} notify_url: URL that will be called once the export process is finished [Optional]
+ */
+ public function export_users( $data ) {
+ return $this->post( 'user/export', json_encode( $data ) );
+ }
+
+ /*
+ Get all the processes information under the account.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} page: Maximum number of records per request is 50, if there are more than 50 processes then you can use this parameter to get next 50 results [Mandatory]
+ @options data {Integer} page_limit: This should be a valid number between 1-50 [Mandatory]
+ */
+ public function get_processes( $data ) {
+ return $this->get( 'process', json_encode( $data ) );
+ }
+
+ /*
+ Get the process information.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of process to get details [Mandatory]
+ */
+ public function get_process( $data ) {
+ return $this->get( 'process/' . $data['id'], '' );
+ }
+
+ /*
+ To retrieve details of all webhooks.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} is_plat: Flag to get webhooks. Possible values – 0 & 1. Example: to get Transactional webhooks, use $is_plat=0, to get Marketing webhooks, use $is_plat=1, & to get all webhooks, use $is_plat="" [Optional]
+ */
+ public function get_webhooks( $data ) {
+ return $this->get( 'webhook', json_encode( $data ) );
+ }
+
+ /*
+ To retrieve details of any particular webhook.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of webhook to get details [Mandatory]
+ */
+ public function get_webhook( $data ) {
+ return $this->get( 'webhook/' . $data['id'], '' );
+ }
+
+ /*
+ Create a Webhook.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} url: URL that will be triggered by a webhook [Mandatory]
+ @options data {String} description: Webook description [Optional]
+ @options data {Array} events: Set of events. You can use commas to separate multiple events. Possible values for Transcational webhook – request, delivered, hard_bounce, soft_bounce, blocked, spam, invalid_email, deferred, click, & opened and Possible Values for Marketing webhook – spam, opened, click, hard_bounce, unsubscribe, soft_bounce & list_addition ( case sensitive ) [Mandatory]
+ @options data {Integer} is_plat: Flag to create webhook type. Possible values – 0 (default) & 1. Example: to create Transactional webhooks, use $is_plat=0, & to create Marketing webhooks, use $is_plat=1 [Optional]
+ */
+ public function create_webhook( $data ) {
+ return $this->post( 'webhook', json_encode( $data ) );
+ }
+
+ /*
+ Delete a webhook.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of webhook to be deleted [Mandatory]
+ */
+ public function delete_webhook( $data ) {
+ return $this->delete( 'webhook/' . $data['id'], '' );
+ }
+
+ /*
+ Update a webhook.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of webhook to be modified [Mandatory]
+ @options data {String} url: URL that will be triggered by a webhook [Mandatory]
+ @options data {String} description: Webook description [Optional]
+ @options data {Array} events: Set of events. You can use commas to separate multiple events. Possible values for Transcational webhook – request, delivered, hard_bounce, soft_bounce, blocked, spam, invalid_email, deferred, click, & opened and Possible Values for Marketing webhook – spam, opened, click, hard_bounce, unsubscribe, soft_bounce & list_addition ( case sensitive ) [Mandatory]
+ */
+ public function update_webhook( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'webhook/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Get Access of created senders information.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} option: Options to get senders. Possible options – IP-wise, & Domain-wise ( only for dedicated IP clients ). Example: to get senders with specific IP, use $option=’1.2.3.4′, to get senders with specific domain use, $option=’domain.com’, & to get all senders, use $option="" [Optional]
+ */
+ public function get_senders( $data ) {
+ return $this->get( 'advanced', json_encode( $data ) );
+ }
+
+ /*
+ Create your Senders.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} name: Name of the sender [Mandatory]
+ @options data {String} email: Email address of the sender [Mandatory]
+ @options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
+ */
+ public function create_sender( $data ) {
+ return $this->post( 'advanced', json_encode( $data ) );
+ }
+
+ /*
+ Update your Senders.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of sender to be modified [Mandatory]
+ @options data {String} name: Name of the sender [Mandatory]
+ @options data {Array} ip_domain: Pass pipe ( | ) separated Dedicated IP and its associated Domain. Example: "1.2.3.4|mydomain.com". You can use commas to separate multiple ip_domain’s [Mandatory: Only for Dedicated IP clients, for Shared IP clients, it should be kept blank]
+ */
+ public function update_sender( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'advanced/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Delete your Sender Information.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of sender to be deleted [Mandatory]
+ */
+ public function delete_sender( $data ) {
+ return $this->delete( 'advanced/' . $data['id'], '' );
+ }
+
+ /*
+ Send Transactional Email.
+ @param {Array} data contains php array with key value pair.
+ @options data {Array} to: Email address of the recipient(s). It should be sent as an associative array. Example: array("to@example.net"=>"to whom"). You can use commas to separate multiple recipients [Mandatory]
+ @options data {String} subject: Message subject [Mandatory]
+ @options data {Array} from Email address for From header. It should be sent as an array. Example: array("from@email.com","from email") [Mandatory]
+ @options data {String} html: Body of the message. (HTML version) [Mandatory]. To send inline images, use , the 'src' attribute value inside {} (curly braces) should be same as the filename used in 'inline_image' parameter
+ @options data {String} text: Body of the message. (text version) [Optional]
+ @options data {Array} cc: Same as to but for Cc. Example: array("cc@example.net","cc whom") [Optional]
+ @options data {Array} bcc: Same as to but for Bcc. Example: array("bcc@example.net","bcc whom") [Optional]
+ @options data {Array} replyto: Same as from but for Reply To. Example: array("from@email.com","from email") [Optional]
+ @options data {Array} attachment: Provide the absolute url of the attachment/s. Possible extension values = gif, png, bmp, cgm, jpg, jpeg, txt, css, shtml, html, htm, csv, zip, pdf, xml, doc, xls, ppt, tar, and ez. To send attachment/s generated on the fly you have to pass your attachment/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple attachments [Optional]
+ @options data {Array} headers: The headers will be sent along with the mail headers in original email. Example: array("Content-Type"=>"text/html; charset=iso-8859-1"). You can use commas to separate multiple headers [Optional]
+ @options data {Array} inline_image: Pass your inline image/s filename & its base64 encoded chunk data as an associative array. Example: array("YourFileName.Extension"=>"Base64EncodedChunkData"). You can use commas to separate multiple inline images [Optional]
+ */
+ public function send_email( $data ) {
+ return $this->post( 'email', json_encode( $data ) );
+ }
+
+ /*
+ Aggregate / date-wise report of the SendinBlue SMTP account.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} aggregate: This is used to indicate, you are interested in all-time totals. Possible values – 0 & 1. aggregate = 0 means it will not aggregate records, and will show stats per day/date wise [Optional]
+ @options data {String} start_date: The start date to look up statistics. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
+ @options data {String} end_date: The end date to look up statistics. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
+ @options data {Integer} days: Number of days in the past to include statistics ( Includes today ). It must be an integer greater than 0 [Optional]
+ @options data {String} tag: The tag you will specify to retrieve detailed stats. It must be an existing tag that has statistics [Optional]
+ */
+ public function get_statistics( $data ) {
+ return $this->post( 'statistics', json_encode( $data ) );
+ }
+
+ /*
+ Get Email Event report.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} limit: To limit the number of results returned. It should be an integer [Optional]
+ @options data {String} start_date: The start date to get report from. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
+ @options data {String} end_date: The end date to get report till date. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
+ @options data {Integer} offset: Beginning point in the list to retrieve from. It should be an integer [Optional]
+ @options data {String} date: Specific date to get its report. Date must be in YYYY-MM-DD format and should be earlier than todays date [Optional]
+ @options data {Integer} days: Number of days in the past (includes today). If specified, must be an integer greater than 0 [Optional]
+ @options data {String} email: Email address to search report for [Optional]
+ */
+ public function get_report( $data ) {
+ return $this->post( 'report', json_encode( $data ) );
+ }
+
+ /*
+ Delete any hardbounce, which actually would have been blocked due to some temporary ISP failures.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} start_date: The start date to get report from. Date must be in YYYY-MM-DD format and should be before the end_date [Optional]
+ @options data {String} end_date: The end date to get report till date. Date must be in YYYY-MM-DD format and should be after the start_date [Optional]
+ @options data {String} email: Email address to delete its bounces [Optional]
+ */
+ public function delete_bounces( $data ) {
+ return $this->post( 'bounces', json_encode( $data ) );
+ }
+
+ /*
+ Send templates created on SendinBlue, through SendinBlue SMTP (transactional mails).
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of the template created on SendinBlue account [Mandatory]
+ @options data {String} to: Email address of the recipient(s). You can use pipe ( | ) to separate multiple recipients. Example: "to-example@example.net|to2-example@example.net" [Mandatory]
+ @options data {String} cc: Same as to but for Cc [Optional]
+ @options data {String} bcc: Same as to but for Bcc [Optional]
+ @options data {Array} attrv The name of attribute present in your SendinBlue account. It should be sent as an associative array. Example: array("NAME"=>"name"). You can use commas to separate multiple attributes [Optional]
+ @options data {String} attachment_url: Provide the absolute url of the attachment. Url not allowed from local machine. File must be hosted somewhere [Optional]
+ @options data {Array} attachment: To send attachment/s generated on the fly you have to pass your attachment/s filename & its base64 encoded chunk data as an associative array [Optional]
+ */
+ public function send_transactional_template( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'template/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Create a Template.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
+ @options data {String} template_name: Name of the Template [Mandatory]
+ @options data {String} bat: Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
+ @options data {String} html_url Url: which content is the body of content [Mandatory: if html_content is empty]
+ @options data {String} subject: Subject of the campaign [Mandatory]
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_fieldv This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Integer} status: Status of template. Possible values = 0 (default) & 1. status = 0 means template is inactive, & status = 1 means template is active [Optional]
+ @options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
+ */
+ public function create_template( $data ) {
+ return $this->post( 'template', json_encode( $data ) );
+ }
+
+ /*
+ Update a Template.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of Template to be modified [Mandatory]
+ @options data {String} from_name: Sender name from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
+ @options data {String} template_name: Name of the Template [Mandatory]
+ @options data {String} bat: Email address for test mail [Optional]
+ @options data {String} html_content: Body of the content. The HTML content field must have more than 10 characters [Mandatory: if html_url is empty]
+ @options data {String} html_url: Url which content is the body of content [Mandatory: if html_content is empty]
+ @options data {String} subject: Subject of the campaign [Mandatory]
+ @options data {String} from_email: Sender email from which the campaign emails are sent [Mandatory: for Dedicated IP clients & for Shared IP clients, if sender exists]
+ @options data {String} reply_to: The reply to email in the campaign emails [Optional]
+ @options data {String} to_field: This is to personalize the «To» Field. If you want to include the first name and last name of your recipient, add [PRENOM] [NOM]. To use the contact attributes here, these should already exist in SendinBlue account [Optional]
+ @options data {Integer} status: Status of template. Possible values = 0 (default) & 1. status = 0 means template is inactive, & status = 1 means template is active [Optional]
+ @options data {Integer} attachment: Status of attachment. Possible values = 0 (default) & 1. attach = 0 means an attachment can’t be sent, & attach = 1 means an attachment can be sent, in the email [Optional]
+ */
+ public function update_template( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'template/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Send a transactional SMS.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} to: The mobile number to send SMS to with country code [Mandatory]
+ @options data {String} from: The name of the sender. The number of characters is limited to 11 (alphanumeric format) [Mandatory]
+ @options data {String} text: The text of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Mandatory]
+ @options data {String} web_url: The web URL that can be called once the message is successfully delivered [Optional]
+ @options data {String} tag: The tag that you can associate with the message [Optional]
+ @options data {String} type: Type of message. Possible values – marketing (default) & transactional. You can use marketing for sending marketing SMS, & for sending transactional SMS, use transactional type [Optional]
+ */
+ public function send_sms( $data ) {
+ return $this->post( 'sms', json_encode( $data ) );
+ }
+
+ /*
+ Create & Schedule your SMS campaigns.
+ @param {Array} data contains php array with key value pair.
+ @options data {String} name: Name of the SMS campaign [Mandatory]
+ @options data {String} sender: This allows you to customize the SMS sender. The number of characters is limited to 11 ( alphanumeric format ) [Optional]
+ @options data {String} content: Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Optional]
+ @options data {String} bat: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Optional]
+ @options data {Array} listid: These are the list ids to which the SMS campaign is sent [Mandatory: if scheduled_date is not empty]
+ @options data {Array} exclude_list: These are the list ids which will be excluded from the SMS campaign [Optional]
+ @options data {String} scheduled_date: The day on which the SMS campaign is supposed to run [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+ */
+ public function create_sms_campaign( $data ) {
+ return $this->post( 'sms', json_encode( $data ) );
+ }
+
+ /*
+ Update your SMS campaigns.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of the SMS campaign [Mandatory]
+ @options data {String} name: Name of the SMS campaign [Optional]
+ @options data {String} sender: This allows you to customize the SMS sender. The number of characters is limited to 11 ( alphanumeric format ) [Optional]
+ @options data {String} content: Content of the message. The maximum characters used per SMS is 160, if used more than that, it will be counted as more than one SMS [Optional]
+ @options data {String} bat: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Optional]
+ @options data {Array} listid: hese are the list ids to which the SMS campaign is sent [Mandatory: if scheduled_date is not empty]
+ @options data {Array} exclude_list: These are the list ids which will be excluded from the SMS campaign [Optional]
+ @options data {String} scheduled_date: The day on which the SMS campaign is supposed to run [Optional]
+ @options data {Integer} send_now: Flag to send campaign now. Possible values = 0 (default) & 1. send_now = 0 means campaign can’t be send now, & send_now = 1 means campaign ready to send now [Optional]
+ */
+ public function update_sms_campaign( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->put( 'sms/' . $id, json_encode( $data ) );
+ }
+
+ /*
+ Send a Test SMS.
+ @param {Array} data contains php array with key value pair.
+ @options data {Integer} id: Id of the SMS campaign [Mandatory]
+ @options data {String} to: Mobile number with the country code to send test SMS. The mobile number defined here should belong to one of your contacts in SendinBlue account and should not be blacklisted [Mandatory]
+ */
+ public function send_bat_sms( $data ) {
+ $id = $data['id'];
+ unset( $data['id'] );
+ return $this->get( 'sms/' . $id, json_encode( $data ) );
+ }
+
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/menu-icons.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/menu-icons.php
new file mode 100644
index 00000000..840fb7c8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/menu-icons.php
@@ -0,0 +1,272 @@
+
+ *
+ *
+ * Plugin name: Menu Icons
+ * Plugin URI: https://github.com/Codeinwp/wp-menu-icons
+ * Description: Spice up your navigation menus with pretty icons, easily.
+ * Version: 0.13.15
+ * Author: ThemeIsle
+ * Author URI: https://themeisle.com
+ * License: GPLv2
+ * Text Domain: menu-icons
+ * Domain Path: /languages
+ * WordPress Available: yes
+ * Requires License: no
+ */
+
+
+/**
+ * Main plugin class
+ */
+final class Menu_Icons {
+
+ const DISMISS_NOTICE = 'menu-icons-dismiss-notice';
+
+ const VERSION = '0.13.15';
+
+ /**
+ * Holds plugin data
+ *
+ * @access protected
+ * @since 0.1.0
+ * @var array
+ */
+ protected static $data;
+
+
+ /**
+ * Get plugin data
+ *
+ * @since 0.1.0
+ * @since 0.9.0 Return NULL if $name is not set in $data.
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public static function get( $name = null ) {
+ if ( is_null( $name ) ) {
+ return self::$data;
+ }
+
+ if ( isset( self::$data[ $name ] ) ) {
+ return self::$data[ $name ];
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Load plugin
+ *
+ * 1. Load translation
+ * 2. Set plugin data (directory and URL paths)
+ * 3. Attach plugin initialization at icon_picker_init hook
+ *
+ * @since 0.1.0
+ * @wp_hook action plugins_loaded
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference/plugins_loaded
+ */
+ public static function _load() {
+ load_plugin_textdomain( 'menu-icons', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
+
+ self::$data = array(
+ 'dir' => plugin_dir_path( __FILE__ ),
+ 'url' => plugin_dir_url( __FILE__ ),
+ 'types' => array(),
+ );
+
+ Icon_Picker::instance();
+
+ require_once self::$data['dir'] . 'includes/library/compat.php';
+ require_once self::$data['dir'] . 'includes/library/functions.php';
+ require_once self::$data['dir'] . 'includes/meta.php';
+
+ Menu_Icons_Meta::init();
+
+ // Font awesome backward compatible functionalities.
+ require_once self::$data['dir'] . 'includes/library/font-awesome/backward-compatible-icons.php';
+ require_once self::$data['dir'] . 'includes/library/font-awesome/font-awesome.php';
+ Menu_Icons_Font_Awesome::init();
+
+ add_action( 'icon_picker_init', array( __CLASS__, '_init' ), 9 );
+
+ add_action( 'admin_enqueue_scripts', array( __CLASS__, '_admin_enqueue_scripts' ) );
+ add_action( 'wp_dashboard_setup', array( __CLASS__, '_wp_menu_icons_dashboard_notice' ) );
+ add_action( 'admin_action_menu_icon_hide_notice', array( __CLASS__, 'wp_menu_icons_dismiss_dashboard_notice' ) );
+
+ add_filter(
+ 'wp_menu_icons_load_promotions',
+ function() {
+ return array( 'otter' );
+ }
+ );
+ add_filter(
+ 'wp_menu_icons_dissallowed_promotions', function () {
+ return array( 'om-editor', 'om-image-block' );
+ }
+ );
+ }
+
+
+ /**
+ * Initialize
+ *
+ * 1. Get registered types from Icon Picker
+ * 2. Load settings
+ * 3. Load front-end functionalities
+ *
+ * @since 0.1.0
+ * @since 0.9.0 Hook into `icon_picker_init`.
+ * @wp_hook action icon_picker_init
+ * @link http://codex.wordpress.org/Plugin_API/Action_Reference
+ */
+ public static function _init() {
+ /**
+ * Allow themes/plugins to add/remove icon types
+ *
+ * @since 0.1.0
+ * @param array $types Icon types
+ */
+ self::$data['types'] = apply_filters(
+ 'menu_icons_types',
+ Icon_Picker_Types_Registry::instance()->types
+ );
+
+ // Nothing to do if there are no icon types registered.
+ if ( empty( self::$data['types'] ) ) {
+ if ( WP_DEBUG ) {
+ trigger_error( esc_html__( 'Menu Icons: No registered icon types found.', 'menu-icons' ) );
+ }
+
+ return;
+ }
+
+ // Load settings.
+ require_once self::$data['dir'] . 'includes/settings.php';
+ Menu_Icons_Settings::init();
+
+ // Load front-end functionalities.
+ if ( ! is_admin() ) {
+ require_once self::$data['dir'] . '/includes/front.php';
+ Menu_Icons_Front_End::init();
+ }
+
+ do_action( 'menu_icons_loaded' );
+ }
+
+
+ /**
+ * Display notice about missing Icon Picker
+ *
+ * @since 0.9.1
+ * @wp_hook action admin_notice
+ */
+ public static function _notice_missing_icon_picker() {
+ ?>
+
+ *Menus* to edit your menus
+1. Enable/Disable icon types in "Menu Icons Settings" meta box
+1. Set default settings for current nav menu; these settings will be inherited by the newly added menu items
+1. Select icon by clicking on the "Select icon" link
+1. Save the menu
+
+### Supported icon types ###
+- Dashicons (WordPress core icons)
+- [Elusive Icons](http://shoestrap.org/downloads/elusive-icons-webfont/) by [Aristeides Stathopoulos](http://shoestrap.org/blog/author/aristath/)
+- [Font Awesome](http://fontawesome.io/) by [Dave Gandy](http://twitter.com/davegandy)
+- [Foundation Icons](http://zurb.com/playground/foundation-icon-fonts-3/) by [Zurb](http://zurb.com/)
+- [Genericons](http://genericons.com/) by [Automattic](http://automattic.com/)
+- [Fontello](http://fontello.com/) icon packs
+- [TI Icons](http://themeisle.com/free-icons/) icon pack by [ThemeIsle](http://twitter.com/themeisle)
+- Image (attachments)
+- SVG (attachments)
+
+### Planned supported icon types ###
+- Image (URL)
+
+### Compatible themes ###
+Menu icons works with most of the themes out there, especially with popular ones like Twenty Seventeen or [Hestia](https://themeisle.com/themes/hestia/).
+
+Development of this plugin is done on [GitHub](https://github.com/codeinwp/wp-menu-icons). **Pull requests welcome**. Please see [issues reported](https://github.com/codeinwp/wp-menu-icons/issues) there before going to the plugin forum.
+
+All the code and sources is publicly available on [GitHub/wp-menu-icons](https://github.com/codeinwp/wp-menu-icons) for this plugin and
+for the [SDK](https://github.com/Codeinwp/themeisle-sdk).
+
+
+## If you like this plugin, then consider checking out our other projects: ##
+
+[CodeinWP Blog](https://www.codeinwp.com/blog/) – Designer's Guide To WordPress
+[Revive.Social](https://revive.social) – Social Media Tools
+[JustFreeThemes](https://justfreethemes.com) - Free WordPress Themes directory
+
+
+
+
+## Screenshots ##
+1. Menu Editor
+2. Icon selection
+3. Twenty Fourteen with Dashicons
+4. Twenty Fourteen with Genericons
+5. Twenty Thirteen with Dashicons
+6. Twenty Thirteen with Genericons
+7. Settings Meta Box (Global)
+8. Settings Meta Box (Menu)
+
+
+## Installation ##
+
+1. Upload `menu-icons` to the `/wp-content/plugins/` directory
+1. Activate the plugin through the *Plugins* menu in WordPress
+
+
+## Frequently Asked Questions ##
+
+### The icons are not showing! ###
+Make sure that your active theme is using the default walker for displaying the nav menu. If it's using its own custom walker, make sure that the menu item titles are filterable (please consult your theme author about this).
+
+### The icon positions don't look right ###
+If you're comfortable with editing your theme stylesheet, then you can override the styles from there.
+If you have [Jetpack](http://wordpress.org/plugins/jetpack) installed, you can also use its **Custom CSS** module.
+Otherwise, I recommend you to use the [Advanced CSS plugin](https://wordpress.org/plugins/advanced-css-editor/).
+
+### Some font icons are not rendering correctly ###
+This is a bug with the font icon itself. When the font is updated, this plugin will update its font too.
+
+### How do I use css file from CDN? ###
+You can use the `icon_picker_icon_type_stylesheet_uri` filter, eg:
+
+ /**
+ * Load Font Awesome's CSS from CDN
+ *
+ * @param string $stylesheet_uri Icon type's stylesheet URI.
+ * @param string $icon_type_id Icon type's ID.
+ * @param Icon_Picker_Type_Font $icon_type Icon type's instance.
+ *
+ * @return string
+ */
+ function myprefix_font_awesome_css_from_cdn( $stylesheet_uri, $icon_type_id, $icon_type ) {
+ if ( 'fa' === $icon_type_id ) {
+ $stylesheet_uri = sprintf(
+ 'https://maxcdn.bootstrapcdn.com/font-awesome/%s/css/font-awesome.min.css',
+ $icon_type->version
+ );
+ }
+
+ return $stylesheet_uri;
+ }
+ add_filter( 'icon_picker_icon_type_stylesheet_uri', 'myprefix_font_awesome_css_from_cdn', 10, 3 );
+
+
+### Is this plugin extendable? ###
+**Certainly!** Here's how you can remove an icon type from your plugin/theme:
+
+ /**
+ * Remove one or more icon types
+ *
+ * Uncomment one or more line to remove icon types
+ *
+ * @param array $types Registered icon types.
+ * @return array
+ */
+ function my_remove_menu_icons_type( $types ) {
+ // Dashicons
+ //unset( $types['dashicons'] );
+
+ // Elusive
+ //unset( $types['elusive'] );
+
+ // Font Awesome
+ //unset( $types['fa'] );
+
+ // Foundation
+ //unset( $types['foundation-icons'] );
+
+ // Genericons
+ //unset( $types['genericon'] );
+
+ // Image
+ //unset( $types['image'] );
+
+ return $types;
+ }
+ add_filter( 'menu_icons_types', 'my_remove_menu_icons_type' );
+
+
+To add a new icon type, take a look at the files inside the `includes/library/icon-picker/includes/types` directory of this plugin.
+
+### I don't want the settings meta box. How do I remove/disable it? ###
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+
+ add_filter( 'menu_icons_disable_settings', '__return_true' );
+
+
+### How can I change the CSS class for hiding the menu item labels? ###
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+
+ /**
+ * Override hidden label class
+ *
+ * @param string $class Hidden label class.
+ * @return string
+ */
+ function my_menu_icons_hidden_label_class( $class ) {
+ $class = 'hidden';
+
+ return $class;
+ }
+ add_filter( 'menu_icons_hidden_label_class', 'my_menu_icons_hidden_label_class' );
+
+
+### How can I modify the markup the menu items? ###
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+
+ /**
+ * Override menu item markup
+ *
+ * @param string $markup Menu item title markup.
+ * @param integer $id Menu item ID.
+ * @param array $meta Menu item meta values.
+ * @param string $title Menu item title.
+ *
+ * @return string
+ */
+ function my_menu_icons_override_markup( $markup, $id, $meta, $title ) {
+ // Do your thing.
+
+ return $markup;
+ }
+ add_filter( 'menu_icons_item_title', 'my_menu_icons_override_markup', 10, 4 );
+
+
+### Can you please add X icon font? ###
+Let me know via [GitHub issues](https://github.com/codeinw/wp-menu-icons/issues) and I'll see what I can do.
+
+### How do I disable menu icons for a certain menu? ###
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+
+ /**
+ * Disable menu icons for a menu
+ *
+ * @param array $menu_settings Menu Settings.
+ * @param int $menu_id Menu ID.
+ *
+ * @return array
+ */
+ function my_menu_icons_menu_settings( $menu_settings, $menu_id ) {
+ if ( 13 === $menu_id ) {
+ $menu_settings['disabled'] = true;
+ }
+
+ return $menu_settings;
+ }
+ add_filter( 'menu_icons_menu_settings', 'my_menu_icons_menu_settings', 10, 2 );
+
+
+### How do I add an icon pack from Fontello? ###
+1. Create a new directory called `fontpacks` in `wp-content`.
+1. Grab the zip of the pack, extract, and upload it to the newly created directory.
+1. Enable the icon type from the Settings meta box.
+
+
+### I can't select a custom image size from the *Image Size* dropdown ###
+Read [this blog post](http://kucrut.org/add-custom-image-sizes-right-way/).
+
+## Changelog ##
+### 0.12.5 - 2020-08-18 ###
+
+
+
+### 0.12.4 - 2020-07-13 ###
+
+* Fix Font Awesome not loading
+
+
+### 0.12.3 - 2020-07-13 ###
+
+* Fixed Menu Icons in Block Editor not working
+* Fixed CWP links.
+
+
+### 0.12.2 - 2019-11-15 ###
+
+
+
+### 0.12.1 - 2019-11-15 ###
+
+* Improve legacy compatibility
+
+
+### 0.12.0 - 2019-11-15 ###
+
+* Fix issues with WordPress 5.3.
+
+
+### 0.11.5 - 2019-05-23 ###
+
+* Sync composer dependencies with the latest version
+
+
+### 0.11.4 - 2018-12-10 ###
+
+* fix issue with composer libraries.
+
+
+### 0.11.3 - 2018-12-10 ###
+
+* Tested with WP 5.0
+
+
+### 0.11.2 - 2018-03-05 ###
+
+* Improve popup sidebar layout.
+
+
+### 0.11.1 - 2018-02-24 ###
+
+* Add recommendation boxes in the menu icon popup.
+
+
+### 0.11.0 - 2018-01-05 ###
+
+* Change ownership to ThemeIsle.
+* Improves compatibility with various ThemeIsle products.
+
+
+### 0.10.2 ###
+* Compatibility with WordPress 4.7.0, props [Aaron K](https://github.com/aaronkirkham).
+
+### 0.10.1 ###
+* Support RTL, props [ybspost](https://wordpress.org/support/profile/ybspost).
+
+### 0.10.0 ###
+* Icon Picker 0.4.0
+ * Font Awesome 4.6.1
+ * Introduce `icon_picker_icon_type_stylesheet_uri` filter hook.
+* Add `aria-hidden="true"` attribute to icon element
+
+### 0.9.3 ###
+* Fix CSS conflicts
+
+### 0.9.2 ###
+* Update Icon Picker to [0.1.1](https://github.com/kucrut/wp-icon-picker/releases/tag/v0.1.1).
+
+### 0.9.1 ###
+* Fix support for Composer.
+
+### 0.9.0 ###
+* Performance optimization.
+* Modularisation. Developers: Take a look at the [Icon Picker](https://github.com/kucrut/wp-icon-picker) library.
+* Bug fixes.
+* Removed `menu_icons_{type_id}_props` filter.
+
+### 0.8.1 ###
+* Fix disappearing icons from front-end when not logged-in, props [jj9617](http://profiles.wordpress.org/jj9617/)
+
+### 0.8.0 ###
+* Update Dashicons
+* Update Genericons to 3.4
+* Update Font Awesome to 4.4.0
+* Allow the plugin to be disabled for a certain menu
+* Add new icon type: SVG, props [Ethan Clevenger](https://github.com/ethanclevenger91)
+* Add new filter: `menu_icons_hidden_label_class`
+* Add new filter: `menu_icons_item_title`
+
+### 0.7.0 ###
+* Update Dashicons
+* Fix annoying browser popup when navigating away from Nav Menus screen
+* Work-around settings update with ajax
+
+### 0.6.0 ###
+* Update Genericons to [3.2](http://genericons.com/2014/10/03/3-2/)
+* Update Font Awesome to [4.2.0](http://fontawesome.io/whats-new/)
+
+### 0.5.1 ###
+* Update Menu Item Custom Fields to play nice with other plugins.
+* Add missing Foundation Icons stylesheet, props [John](http://wordpress.org/support/profile/dsl225)
+* JS & CSS fixes
+
+### 0.5.0 ###
+* New Icon type: Foundation Icons
+* Add new Dashicons icons
+* Various fixes & enhancements
+
+### 0.4.0 ###
+* Fontello icon packs support
+* New icon type: Image (attachments)
+
+### 0.3.2 ###
+* Add missing minified CSS for Elusive font icon, props [zazou83](http://profiles.wordpress.org/zazou83)
+
+### 0.3.1 ###
+* Fix fatal error on outdated PHP versions, props [dellos](http://profiles.wordpress.org/dellos)
+
+### 0.3.0 ###
+* Add Settings meta box on Menu screen
+* New feature: Settings inheritance (nav menu > menu items)
+* New feature: Hide menu item labels
+* New Icon type: Elusive Icons
+* Update Font Awesome to 4.1.0
+
+### 0.2.3 ###
+* Add new group for Dashicons: Media
+
+### 0.2.1 ###
+* Fix icon selector compatibility with WP 3.9
+
+### 0.2.0 ###
+* Media frame for icon selection
+* New font icon: Font Awesome
+
+### 0.1.5 ###
+* Invisible, but important fixes and improvements
+
+### 0.1.4 ###
+* Fix menu saving
+
+### 0.1.3 ###
+* Provide icon selection fields on newly added menu items
+
+### 0.1.2 ###
+* Improve extra stylesheet
+
+### 0.1.1 ###
+* Improve icon selection UX
+
+### 0.1.0 ###
+* Initial public release
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/readme.txt b/wp-content/upgrade-temp-backup/plugins/menu-icons/readme.txt
new file mode 100644
index 00000000..6876ee8a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/readme.txt
@@ -0,0 +1,561 @@
+=== Menu Icons by ThemeIsle ===
+Contributors: codeinwp, themeisle
+Tags: menu, nav-menu, icons, navigation
+Requires at least: 4.7
+Tested up to: 6.6
+Stable tag: trunk
+License: GPLv2
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+Spice up your navigation menus with pretty icons, easily.
+
+
+== Description ==
+
+This plugin gives you the ability to add icons to your menu items, similar to the look of the latest dashboard menu.
+
+https://www.youtube.com/watch?v=YcSotWXIczI
+
+= Usage =
+1. After the plugin is activated, go to *Appearance* > *Menus* to edit your menus
+1. Enable/Disable icon types in "Menu Icons Settings" meta box
+1. Set default settings for current nav menu; these settings will be inherited by the newly added menu items
+1. Select icon by clicking on the "Select icon" link
+1. Save the menu
+
+= Supported icon types =
+- Dashicons (WordPress core icons)
+- [Elusive Icons](http://shoestrap.org/downloads/elusive-icons-webfont/) by [Aristeides Stathopoulos](http://shoestrap.org/blog/author/aristath/)
+- [Font Awesome](http://fontawesome.io/) by [Dave Gandy](http://twitter.com/davegandy)
+- [Foundation Icons](http://zurb.com/playground/foundation-icon-fonts-3/) by [Zurb](http://zurb.com/)
+- [Genericons](http://genericons.com/) by [Automattic](http://automattic.com/)
+- [Fontello](http://fontello.com/) icon packs
+- [TI Icons](http://themeisle.com/free-icons/) icon pack by [ThemeIsle](http://twitter.com/themeisle)
+- Image (attachments)
+- SVG (attachments)
+
+= Planned supported icon types =
+- Image (URL)
+
+= Compatible themes =
+Menu icons works with most of the themes out there, especially with popular ones like Twenty Seventeen or [Hestia](https://themeisle.com/themes/hestia/).
+
+Development of this plugin is done on [GitHub](https://github.com/codeinwp/wp-menu-icons). **Pull requests welcome**. Please see [issues reported](https://github.com/codeinwp/wp-menu-icons/issues) there before going to the plugin forum.
+
+== If you like this plugin, then consider checking out our other projects: ==
+
+[CodeinWP Blog](https://www.codeinwp.com/blog/) – Designer's Guide To WordPress
+[Revive.Social](https://revive.social) – Social Media Tools
+[JustFreeThemes](https://justfreethemes.com) - Free WordPress Themes directory
+
+
+
+
+== Screenshots ==
+1. Menu Editor
+2. Icon selection
+3. Twenty Fourteen with Dashicons
+4. Twenty Fourteen with Genericons
+5. Twenty Thirteen with Dashicons
+6. Twenty Thirteen with Genericons
+7. Settings Meta Box (Global)
+8. Settings Meta Box (Menu)
+
+
+== Installation ==
+
+1. Upload `menu-icons` to the `/wp-content/plugins/` directory
+1. Activate the plugin through the *Plugins* menu in WordPress
+
+
+== Frequently Asked Questions ==
+
+= The icons are not showing! =
+Make sure that your active theme is using the default walker for displaying the nav menu. If it's using its own custom walker, make sure that the menu item titles are filterable (please consult your theme author about this).
+
+= The icon positions don't look right =
+If you're comfortable with editing your theme stylesheet, then you can override the styles from there.
+If you have [Jetpack](http://wordpress.org/plugins/jetpack) installed, you can also use its **Custom CSS** module.
+Otherwise, I recommend you to use the [Advanced CSS plugin](https://wordpress.org/plugins/advanced-css-editor/).
+
+= Some font icons are not rendering correctly =
+This is a bug with the font icon itself. When the font is updated, this plugin will update its font too.
+
+= How do I use css file from CDN? =
+You can use the `icon_picker_icon_type_stylesheet_uri` filter, eg:
+`
+/**
+ * Load Font Awesome's CSS from CDN
+ *
+ * @param string $stylesheet_uri Icon type's stylesheet URI.
+ * @param string $icon_type_id Icon type's ID.
+ * @param Icon_Picker_Type_Font $icon_type Icon type's instance.
+ *
+ * @return string
+ */
+function myprefix_font_awesome_css_from_cdn( $stylesheet_uri, $icon_type_id, $icon_type ) {
+ if ( 'fa' === $icon_type_id ) {
+ $stylesheet_uri = sprintf(
+ 'https://maxcdn.bootstrapcdn.com/font-awesome/%s/css/font-awesome.min.css',
+ $icon_type->version
+ );
+ }
+
+ return $stylesheet_uri;
+}
+add_filter( 'icon_picker_icon_type_stylesheet_uri', 'myprefix_font_awesome_css_from_cdn', 10, 3 );
+`
+
+= Is this plugin extendable? =
+**Certainly!** Here's how you can remove an icon type from your plugin/theme:
+`
+/**
+ * Remove one or more icon types
+ *
+ * Uncomment one or more line to remove icon types
+ *
+ * @param array $types Registered icon types.
+ * @return array
+ */
+function my_remove_menu_icons_type( $types ) {
+ // Dashicons
+ //unset( $types['dashicons'] );
+
+ // Elusive
+ //unset( $types['elusive'] );
+
+ // Font Awesome
+ //unset( $types['fa'] );
+
+ // Foundation
+ //unset( $types['foundation-icons'] );
+
+ // Genericons
+ //unset( $types['genericon'] );
+
+ // Image
+ //unset( $types['image'] );
+
+ return $types;
+}
+add_filter( 'menu_icons_types', 'my_remove_menu_icons_type' );
+`
+
+To add a new icon type, take a look at the files inside the `includes/library/icon-picker/includes/types` directory of this plugin.
+
+= I don't want the settings meta box. How do I remove/disable it? =
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+`
+add_filter( 'menu_icons_disable_settings', '__return_true' );
+`
+
+= How can I change the CSS class for hiding the menu item labels? =
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+`
+/**
+ * Override hidden label class
+ *
+ * @param string $class Hidden label class.
+ * @return string
+ */
+function my_menu_icons_hidden_label_class( $class ) {
+ $class = 'hidden';
+
+ return $class;
+}
+add_filter( 'menu_icons_hidden_label_class', 'my_menu_icons_hidden_label_class' );
+`
+
+= How can I modify the markup the menu items? =
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+`
+/**
+ * Override menu item markup
+ *
+ * @param string $markup Menu item title markup.
+ * @param integer $id Menu item ID.
+ * @param array $meta Menu item meta values.
+ * @param string $title Menu item title.
+ *
+ * @return string
+ */
+function my_menu_icons_override_markup( $markup, $id, $meta, $title ) {
+ // Do your thing.
+
+ return $markup;
+}
+add_filter( 'menu_icons_item_title', 'my_menu_icons_override_markup', 10, 4 );
+`
+
+= Can you please add X icon font? =
+Let me know via [GitHub issues](https://github.com/codeinw/wp-menu-icons/issues) and I'll see what I can do.
+
+= How do I disable menu icons for a certain menu? =
+Add this block of code to your [mu-plugin file](http://codex.wordpress.org/Must_Use_Plugins):
+`
+/**
+ * Disable menu icons for a menu
+ *
+ * @param array $menu_settings Menu Settings.
+ * @param int $menu_id Menu ID.
+ *
+ * @return array
+ */
+function my_menu_icons_menu_settings( $menu_settings, $menu_id ) {
+ if ( 13 === $menu_id ) {
+ $menu_settings['disabled'] = true;
+ }
+
+ return $menu_settings;
+}
+add_filter( 'menu_icons_menu_settings', 'my_menu_icons_menu_settings', 10, 2 );
+`
+
+= How do I add an icon pack from Fontello? =
+1. Create a new directory called `fontpacks` in `wp-content`.
+1. Grab the zip of the pack, extract, and upload it to the newly created directory.
+1. Enable the icon type from the Settings meta box.
+
+
+= I can't select a custom image size from the *Image Size* dropdown =
+Read [this blog post](http://kucrut.org/add-custom-image-sizes-right-way/).
+
+== Changelog ==
+
+##### [Version 0.13.15](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.14...v0.13.15) (2024-07-10)
+
+- Removed recommendations of unsupported plugins
+- Fixed conditions for theme recommendation
+
+
+
+
+##### [Version 0.13.14](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.13...v0.13.14) (2024-05-14)
+
+- Enhanced security
+
+
+
+
+##### [Version 0.13.13](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.12...v0.13.13) (2024-04-18)
+
+### Improvements
+- **Updated internal dependencies:** Enhanced performance and security.
+
+
+
+
+##### [Version 0.13.12](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.11...v0.13.12) (2024-04-01)
+
+### Improvements
+- **Updated internal dependencies**
+
+
+
+
+##### [Version 0.13.11](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.10...v0.13.11) (2024-03-29)
+
+### Fixes
+- Updated internal dependencies
+- Enhanced security
+
+
+
+
+##### [Version 0.13.10](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.9...v0.13.10) (2024-03-26)
+
+### Improvements
+- Updated internal dependencies
+- Improved readme to link to the public source files
+- Filter promotions
+
+
+
+
+##### [Version 0.13.9](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.8...v0.13.9) (2024-02-23)
+
+### Fixes
+- Updated dependencies
+- Harden security
+
+
+
+
+##### [Version 0.13.8](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.7...v0.13.8) (2023-12-19)
+
+- SDK Updates
+- Fixed global hide label issue
+
+
+
+
+##### [Version 0.13.7](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.6...v0.13.7) (2023-08-17)
+
+- Updated dependencies
+- Fixed broken button layout issues in other languages
+
+
+
+
+##### [Version 0.13.6](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.5...v0.13.6) (2023-07-07)
+
+- Updated composer dependencies to address warning in the widgets section
+
+
+
+
+##### [Version 0.13.5](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.4...v0.13.5) (2023-03-30)
+
+- Updated Dependencies and WordPress core tested up to version 6.2
+
+
+
+
+##### [Version 0.13.4](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.3...v0.13.4) (2023-03-01)
+
+Update dependencies
+
+
+
+
+##### [Version 0.13.3](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.2...v0.13.3) (2023-02-25)
+
+- Fix img width/height value, props @Htbaa
+- Update dependencies
+
+
+
+
+##### [Version 0.13.2](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.1...v0.13.2) (2022-11-24)
+
+* Fix - update dependencies
+
+
+
+
+##### [Version 0.13.1](https://github.com/codeinwp/wp-menu-icons/compare/v0.13.0...v0.13.1) (2022-11-04)
+
+Tested with the WordPress 6.1 version
+
+
+
+
+#### [Version 0.13.0](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.12...v0.13.0) (2022-08-23)
+
+* Fix Neve upsells showing up inconsistently on edge cases
+* Fix inconsistency with Font Awesome 5 and adds compatibility with 6th version
+* Fix compatibility with JupiterX
+* Update dependencies
+
+
+
+
+##### [Version 0.12.12](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.11...v0.12.12) (2022-05-27)
+
+- Fix the style handler conflict issue which breaks the arrow icon of the submenus on some themes
+- Fix dismiss dashboard notice issue on some edge cases
+- Fix compatibility with the Max Mega Menu plugin
+
+
+
+
+##### [Version 0.12.11](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.10...v0.12.11) (2022-03-16)
+
+Add font awesome 5 support
+Enhance compatibility with Otter/Neve
+
+
+
+
+##### [Version 0.12.10](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.9...v0.12.10) (2022-02-07)
+
+- [Fix] Add support for alt attribute for SVG icons
+- Tested up with WordPress 5.9
+
+
+
+
+##### [Version 0.12.9](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.8...v0.12.9) (2021-08-04)
+
+* Tested compatibility with WordPress 5.8
+
+
+
+
+##### [Version 0.12.8](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.7...v0.12.8) (2021-05-12)
+
+* Fix issue when the image is not accessible to fetch the width/height metadata.
+
+
+
+
+##### [Version 0.12.7](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.6...v0.12.7) (2021-05-07)
+
+Fix PHP fatal error when uploading SVG with the image uploader
+
+
+
+
+##### [Version 0.12.6](https://github.com/codeinwp/wp-menu-icons/compare/v0.12.5...v0.12.6) (2021-05-05)
+
+* Adds explicit width/height to icons to prevent layout shifts issues
+
+
+= 0.12.4 - 2020-07-13 =
+
+* Fix Font Awesome not loading
+
+
+= 0.12.3 - 2020-07-13 =
+
+* Fixed Menu Icons in Block Editor not working
+* Fixed CWP links.
+
+
+= 0.12.2 - 2019-11-15 =
+
+
+
+= 0.12.1 - 2019-11-15 =
+
+* Improve legacy compatibility
+
+
+= 0.12.0 - 2019-11-15 =
+
+* Fix issues with WordPress 5.3.
+
+
+= 0.11.5 - 2019-05-23 =
+
+* Sync composer dependencies with the latest version
+
+
+= 0.11.4 - 2018-12-10 =
+
+* fix issue with composer libraries.
+
+
+= 0.11.3 - 2018-12-10 =
+
+* Tested with WP 5.0
+
+
+= 0.11.2 - 2018-03-05 =
+
+* Improve popup sidebar layout.
+
+
+= 0.11.1 - 2018-02-24 =
+
+* Add recommendation boxes in the menu icon popup.
+
+
+= 0.11.0 - 2018-01-05 =
+
+* Change ownership to ThemeIsle.
+* Improves compatibility with various ThemeIsle products.
+
+
+= 0.10.2 =
+* Compatibility with WordPress 4.7.0, props [Aaron K](https://github.com/aaronkirkham).
+
+= 0.10.1 =
+* Support RTL, props [ybspost](https://wordpress.org/support/profile/ybspost).
+
+= 0.10.0 =
+* Icon Picker 0.4.0
+ * Font Awesome 4.6.1
+ * Introduce `icon_picker_icon_type_stylesheet_uri` filter hook.
+* Add `aria-hidden="true"` attribute to icon element
+
+= 0.9.3 =
+* Fix CSS conflicts
+
+= 0.9.2 =
+* Update Icon Picker to [0.1.1](https://github.com/kucrut/wp-icon-picker/releases/tag/v0.1.1).
+
+= 0.9.1 =
+* Fix support for Composer.
+
+= 0.9.0 =
+* Performance optimization.
+* Modularisation. Developers: Take a look at the [Icon Picker](https://github.com/kucrut/wp-icon-picker) library.
+* Bug fixes.
+* Removed `menu_icons_{type_id}_props` filter.
+
+= 0.8.1 =
+* Fix disappearing icons from front-end when not logged-in, props [jj9617](http://profiles.wordpress.org/jj9617/)
+
+= 0.8.0 =
+* Update Dashicons
+* Update Genericons to 3.4
+* Update Font Awesome to 4.4.0
+* Allow the plugin to be disabled for a certain menu
+* Add new icon type: SVG, props [Ethan Clevenger](https://github.com/ethanclevenger91)
+* Add new filter: `menu_icons_hidden_label_class`
+* Add new filter: `menu_icons_item_title`
+
+= 0.7.0 =
+* Update Dashicons
+* Fix annoying browser popup when navigating away from Nav Menus screen
+* Work-around settings update with ajax
+
+= 0.6.0 =
+* Update Genericons to [3.2](http://genericons.com/2014/10/03/3-2/)
+* Update Font Awesome to [4.2.0](http://fontawesome.io/whats-new/)
+
+= 0.5.1 =
+* Update Menu Item Custom Fields to play nice with other plugins.
+* Add missing Foundation Icons stylesheet, props [John](http://wordpress.org/support/profile/dsl225)
+* JS & CSS fixes
+
+= 0.5.0 =
+* New Icon type: Foundation Icons
+* Add new Dashicons icons
+* Various fixes & enhancements
+
+= 0.4.0 =
+* Fontello icon packs support
+* New icon type: Image (attachments)
+
+= 0.3.2 =
+* Add missing minified CSS for Elusive font icon, props [zazou83](http://profiles.wordpress.org/zazou83)
+
+= 0.3.1 =
+* Fix fatal error on outdated PHP versions, props [dellos](http://profiles.wordpress.org/dellos)
+
+= 0.3.0 =
+* Add Settings meta box on Menu screen
+* New feature: Settings inheritance (nav menu > menu items)
+* New feature: Hide menu item labels
+* New Icon type: Elusive Icons
+* Update Font Awesome to 4.1.0
+
+= 0.2.3 =
+* Add new group for Dashicons: Media
+
+= 0.2.1 =
+* Fix icon selector compatibility with WP 3.9
+
+= 0.2.0 =
+* Media frame for icon selection
+* New font icon: Font Awesome
+
+= 0.1.5 =
+* Invisible, but important fixes and improvements
+
+= 0.1.4 =
+* Fix menu saving
+
+= 0.1.3 =
+* Provide icon selection fields on newly added menu items
+
+= 0.1.2 =
+* Improve extra stylesheet
+
+= 0.1.1 =
+* Improve icon selection UX
+
+= 0.1.0 =
+* Initial public release
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/autoload.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/autoload.php
new file mode 100644
index 00000000..12c12d99
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/autoload.php
@@ -0,0 +1,25 @@
+ Things are getting better every day. 🚀
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/LICENSE b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/LICENSE
new file mode 100644
index 00000000..f288702d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ Copyright (C)
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/README.md b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/README.md
new file mode 100644
index 00000000..e020b8a1
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/README.md
@@ -0,0 +1,24 @@
+ThemeIsle Gutenberg Menu Icons
+--------------------------
+
+You can include this library like this::
+
+```
+if ( class_exists( '\ThemeIsle\GutenbergMenuIcons' ) ) {
+ \ThemeIsle\GutenbergMenuIcons::instance();
+}
+```
+
+## Releasing
+
+This repository uses conventional [changelog commit](https://github.com/Codeinwp/conventional-changelog-simple-preset) messages to trigger release
+
+How to release a new version:
+
+- Clone the master branch
+- Do your changes
+- Send a PR to master and merge it using the following subject message
+ - `release: ` - for patch release
+ - `release(minor): ` - for minor release
+ - `release(major): ` - for major release
+The release notes will inherit the body of the commit message which triggered the release. For more details check the [simple-preset](https://github.com/Codeinwp/conventional-changelog-simple-preset) that we use.
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/assets/css/font-awesome.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/assets/css/font-awesome.min.css
new file mode 100644
index 00000000..7abc657a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/assets/css/font-awesome.min.css
@@ -0,0 +1,8 @@
+/*!
+ * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com
+ * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
+ * Modefied for Block Menu plugin by @HardeepAsrani
+ * - It adds .wp-block-navigation-link__content to all selectors.
+ * - It adds > .wp-block-navigation-link__content to icon selectors.
+ * - It adds .wp-block-navigation-link to remove default styles from link.
+ */.fa .wp-block-navigation-link__content,.fab .wp-block-navigation-link__content,.fad .wp-block-navigation-link__content,.fal .wp-block-navigation-link__content,.far .wp-block-navigation-link__content,.fas .wp-block-navigation-link__content{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto}.fa.wp-block-navigation-link:before,.fab.wp-block-navigation-link:before,.fad.wp-block-navigation-link:before,.fal.wp-block-navigation-link:before,.far.wp-block-navigation-link:before,.fas.wp-block-navigation-link:before{display:none}.fa-lg .wp-block-navigation-link__content{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs .wp-block-navigation-link__content{font-size:.75em}.fa-sm .wp-block-navigation-link__content{font-size:.875em}.fa-1x .wp-block-navigation-link__content{font-size:1em}.fa-2x .wp-block-navigation-link__content{font-size:2em}.fa-3x .wp-block-navigation-link__content{font-size:3em}.fa-4x .wp-block-navigation-link__content{font-size:4em}.fa-5x .wp-block-navigation-link__content{font-size:5em}.fa-6x .wp-block-navigation-link__content{font-size:6em}.fa-7x .wp-block-navigation-link__content{font-size:7em}.fa-8x .wp-block-navigation-link__content{font-size:8em}.fa-9x .wp-block-navigation-link__content{font-size:9em}.fa-10x .wp-block-navigation-link__content{font-size:10em}.fa-fw .wp-block-navigation-link__content{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border .wp-block-navigation-link__content{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left .wp-block-navigation-link__content{float:left}.fa-pull-right .wp-block-navigation-link__content{float:right}.fa.fa-pull-left .wp-block-navigation-link__content,.fab.fa-pull-left .wp-block-navigation-link__content,.fal.fa-pull-left .wp-block-navigation-link__content,.far.fa-pull-left .wp-block-navigation-link__content,.fas.fa-pull-left .wp-block-navigation-link__content{margin-right:.3em}.fa.fa-pull-right .wp-block-navigation-link__content,.fab.fa-pull-right .wp-block-navigation-link__content,.fal.fa-pull-right .wp-block-navigation-link__content,.far.fa-pull-right .wp-block-navigation-link__content,.fas.fa-pull-right .wp-block-navigation-link__content{margin-left:.3em}.fa-spin .wp-block-navigation-link__content{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse .wp-block-navigation-link__content{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90 .wp-block-navigation-link__content{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180 .wp-block-navigation-link__content{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270 .wp-block-navigation-link__content{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal .wp-block-navigation-link__content{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical .wp-block-navigation-link__content{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both .wp-block-navigation-link__content,.fa-flip-horizontal.fa-flip-vertical .wp-block-navigation-link__content{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both .wp-block-navigation-link__content,:root .fa-flip-horizontal .wp-block-navigation-link__content,:root .fa-flip-vertical .wp-block-navigation-link__content,:root .fa-rotate-180 .wp-block-navigation-link__content,:root .fa-rotate-270 .wp-block-navigation-link__content,:root .fa-rotate-90 .wp-block-navigation-link__content{-webkit-filter:none;filter:none}.fa-stack .wp-block-navigation-link__content{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x .wp-block-navigation-link__content,.fa-stack-2x .wp-block-navigation-link__content{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x .wp-block-navigation-link__content{line-height:inherit}.fa-stack-2x .wp-block-navigation-link__content{font-size:2em}.fa-inverse .wp-block-navigation-link__content{color:#fff}.fa-500px > .wp-block-navigation-link__content:before{content:"\f26e"}.fa-accessible-icon > .wp-block-navigation-link__content:before{content:"\f368"}.fa-accusoft > .wp-block-navigation-link__content:before{content:"\f369"}.fa-acquisitions-incorporated > .wp-block-navigation-link__content:before{content:"\f6af"}.fa-ad > .wp-block-navigation-link__content:before{content:"\f641"}.fa-address-book > .wp-block-navigation-link__content:before{content:"\f2b9"}.fa-address-card > .wp-block-navigation-link__content:before{content:"\f2bb"}.fa-adjust > .wp-block-navigation-link__content:before{content:"\f042"}.fa-adn > .wp-block-navigation-link__content:before{content:"\f170"}.fa-adobe > .wp-block-navigation-link__content:before{content:"\f778"}.fa-adversal > .wp-block-navigation-link__content:before{content:"\f36a"}.fa-affiliatetheme > .wp-block-navigation-link__content:before{content:"\f36b"}.fa-air-freshener > .wp-block-navigation-link__content:before{content:"\f5d0"}.fa-airbnb > .wp-block-navigation-link__content:before{content:"\f834"}.fa-algolia > .wp-block-navigation-link__content:before{content:"\f36c"}.fa-align-center > .wp-block-navigation-link__content:before{content:"\f037"}.fa-align-justify > .wp-block-navigation-link__content:before{content:"\f039"}.fa-align-left > .wp-block-navigation-link__content:before{content:"\f036"}.fa-align-right > .wp-block-navigation-link__content:before{content:"\f038"}.fa-alipay > .wp-block-navigation-link__content:before{content:"\f642"}.fa-allergies > .wp-block-navigation-link__content:before{content:"\f461"}.fa-amazon > .wp-block-navigation-link__content:before{content:"\f270"}.fa-amazon-pay > .wp-block-navigation-link__content:before{content:"\f42c"}.fa-ambulance > .wp-block-navigation-link__content:before{content:"\f0f9"}.fa-american-sign-language-interpreting > .wp-block-navigation-link__content:before{content:"\f2a3"}.fa-amilia > .wp-block-navigation-link__content:before{content:"\f36d"}.fa-anchor > .wp-block-navigation-link__content:before{content:"\f13d"}.fa-android > .wp-block-navigation-link__content:before{content:"\f17b"}.fa-angellist > .wp-block-navigation-link__content:before{content:"\f209"}.fa-angle-double-down > .wp-block-navigation-link__content:before{content:"\f103"}.fa-angle-double-left > .wp-block-navigation-link__content:before{content:"\f100"}.fa-angle-double-right > .wp-block-navigation-link__content:before{content:"\f101"}.fa-angle-double-up > .wp-block-navigation-link__content:before{content:"\f102"}.fa-angle-down > .wp-block-navigation-link__content:before{content:"\f107"}.fa-angle-left > .wp-block-navigation-link__content:before{content:"\f104"}.fa-angle-right > .wp-block-navigation-link__content:before{content:"\f105"}.fa-angle-up > .wp-block-navigation-link__content:before{content:"\f106"}.fa-angry > .wp-block-navigation-link__content:before{content:"\f556"}.fa-angrycreative > .wp-block-navigation-link__content:before{content:"\f36e"}.fa-angular > .wp-block-navigation-link__content:before{content:"\f420"}.fa-ankh > .wp-block-navigation-link__content:before{content:"\f644"}.fa-app-store > .wp-block-navigation-link__content:before{content:"\f36f"}.fa-app-store-ios > .wp-block-navigation-link__content:before{content:"\f370"}.fa-apper > .wp-block-navigation-link__content:before{content:"\f371"}.fa-apple > .wp-block-navigation-link__content:before{content:"\f179"}.fa-apple-alt > .wp-block-navigation-link__content:before{content:"\f5d1"}.fa-apple-pay > .wp-block-navigation-link__content:before{content:"\f415"}.fa-archive > .wp-block-navigation-link__content:before{content:"\f187"}.fa-archway > .wp-block-navigation-link__content:before{content:"\f557"}.fa-arrow-alt-circle-down > .wp-block-navigation-link__content:before{content:"\f358"}.fa-arrow-alt-circle-left > .wp-block-navigation-link__content:before{content:"\f359"}.fa-arrow-alt-circle-right > .wp-block-navigation-link__content:before{content:"\f35a"}.fa-arrow-alt-circle-up > .wp-block-navigation-link__content:before{content:"\f35b"}.fa-arrow-circle-down > .wp-block-navigation-link__content:before{content:"\f0ab"}.fa-arrow-circle-left > .wp-block-navigation-link__content:before{content:"\f0a8"}.fa-arrow-circle-right > .wp-block-navigation-link__content:before{content:"\f0a9"}.fa-arrow-circle-up > .wp-block-navigation-link__content:before{content:"\f0aa"}.fa-arrow-down > .wp-block-navigation-link__content:before{content:"\f063"}.fa-arrow-left > .wp-block-navigation-link__content:before{content:"\f060"}.fa-arrow-right > .wp-block-navigation-link__content:before{content:"\f061"}.fa-arrow-up > .wp-block-navigation-link__content:before{content:"\f062"}.fa-arrows-alt > .wp-block-navigation-link__content:before{content:"\f0b2"}.fa-arrows-alt-h > .wp-block-navigation-link__content:before{content:"\f337"}.fa-arrows-alt-v > .wp-block-navigation-link__content:before{content:"\f338"}.fa-artstation > .wp-block-navigation-link__content:before{content:"\f77a"}.fa-assistive-listening-systems > .wp-block-navigation-link__content:before{content:"\f2a2"}.fa-asterisk > .wp-block-navigation-link__content:before{content:"\f069"}.fa-asymmetrik > .wp-block-navigation-link__content:before{content:"\f372"}.fa-at > .wp-block-navigation-link__content:before{content:"\f1fa"}.fa-atlas > .wp-block-navigation-link__content:before{content:"\f558"}.fa-atlassian > .wp-block-navigation-link__content:before{content:"\f77b"}.fa-atom > .wp-block-navigation-link__content:before{content:"\f5d2"}.fa-audible > .wp-block-navigation-link__content:before{content:"\f373"}.fa-audio-description > .wp-block-navigation-link__content:before{content:"\f29e"}.fa-autoprefixer > .wp-block-navigation-link__content:before{content:"\f41c"}.fa-avianex > .wp-block-navigation-link__content:before{content:"\f374"}.fa-aviato > .wp-block-navigation-link__content:before{content:"\f421"}.fa-award > .wp-block-navigation-link__content:before{content:"\f559"}.fa-aws > .wp-block-navigation-link__content:before{content:"\f375"}.fa-baby > .wp-block-navigation-link__content:before{content:"\f77c"}.fa-baby-carriage > .wp-block-navigation-link__content:before{content:"\f77d"}.fa-backspace > .wp-block-navigation-link__content:before{content:"\f55a"}.fa-backward > .wp-block-navigation-link__content:before{content:"\f04a"}.fa-bacon > .wp-block-navigation-link__content:before{content:"\f7e5"}.fa-bahai > .wp-block-navigation-link__content:before{content:"\f666"}.fa-balance-scale > .wp-block-navigation-link__content:before{content:"\f24e"}.fa-balance-scale-left > .wp-block-navigation-link__content:before{content:"\f515"}.fa-balance-scale-right > .wp-block-navigation-link__content:before{content:"\f516"}.fa-ban > .wp-block-navigation-link__content:before{content:"\f05e"}.fa-band-aid > .wp-block-navigation-link__content:before{content:"\f462"}.fa-bandcamp > .wp-block-navigation-link__content:before{content:"\f2d5"}.fa-barcode > .wp-block-navigation-link__content:before{content:"\f02a"}.fa-bars > .wp-block-navigation-link__content:before{content:"\f0c9"}.fa-baseball-ball > .wp-block-navigation-link__content:before{content:"\f433"}.fa-basketball-ball > .wp-block-navigation-link__content:before{content:"\f434"}.fa-bath > .wp-block-navigation-link__content:before{content:"\f2cd"}.fa-battery-empty > .wp-block-navigation-link__content:before{content:"\f244"}.fa-battery-full > .wp-block-navigation-link__content:before{content:"\f240"}.fa-battery-half > .wp-block-navigation-link__content:before{content:"\f242"}.fa-battery-quarter > .wp-block-navigation-link__content:before{content:"\f243"}.fa-battery-three-quarters > .wp-block-navigation-link__content:before{content:"\f241"}.fa-battle-net > .wp-block-navigation-link__content:before{content:"\f835"}.fa-bed > .wp-block-navigation-link__content:before{content:"\f236"}.fa-beer > .wp-block-navigation-link__content:before{content:"\f0fc"}.fa-behance > .wp-block-navigation-link__content:before{content:"\f1b4"}.fa-behance-square > .wp-block-navigation-link__content:before{content:"\f1b5"}.fa-bell > .wp-block-navigation-link__content:before{content:"\f0f3"}.fa-bell-slash > .wp-block-navigation-link__content:before{content:"\f1f6"}.fa-bezier-curve > .wp-block-navigation-link__content:before{content:"\f55b"}.fa-bible > .wp-block-navigation-link__content:before{content:"\f647"}.fa-bicycle > .wp-block-navigation-link__content:before{content:"\f206"}.fa-biking > .wp-block-navigation-link__content:before{content:"\f84a"}.fa-bimobject > .wp-block-navigation-link__content:before{content:"\f378"}.fa-binoculars > .wp-block-navigation-link__content:before{content:"\f1e5"}.fa-biohazard > .wp-block-navigation-link__content:before{content:"\f780"}.fa-birthday-cake > .wp-block-navigation-link__content:before{content:"\f1fd"}.fa-bitbucket > .wp-block-navigation-link__content:before{content:"\f171"}.fa-bitcoin > .wp-block-navigation-link__content:before{content:"\f379"}.fa-bity > .wp-block-navigation-link__content:before{content:"\f37a"}.fa-black-tie > .wp-block-navigation-link__content:before{content:"\f27e"}.fa-blackberry > .wp-block-navigation-link__content:before{content:"\f37b"}.fa-blender > .wp-block-navigation-link__content:before{content:"\f517"}.fa-blender-phone > .wp-block-navigation-link__content:before{content:"\f6b6"}.fa-blind > .wp-block-navigation-link__content:before{content:"\f29d"}.fa-blog > .wp-block-navigation-link__content:before{content:"\f781"}.fa-blogger > .wp-block-navigation-link__content:before{content:"\f37c"}.fa-blogger-b > .wp-block-navigation-link__content:before{content:"\f37d"}.fa-bluetooth > .wp-block-navigation-link__content:before{content:"\f293"}.fa-bluetooth-b > .wp-block-navigation-link__content:before{content:"\f294"}.fa-bold > .wp-block-navigation-link__content:before{content:"\f032"}.fa-bolt > .wp-block-navigation-link__content:before{content:"\f0e7"}.fa-bomb > .wp-block-navigation-link__content:before{content:"\f1e2"}.fa-bone > .wp-block-navigation-link__content:before{content:"\f5d7"}.fa-bong > .wp-block-navigation-link__content:before{content:"\f55c"}.fa-book > .wp-block-navigation-link__content:before{content:"\f02d"}.fa-book-dead > .wp-block-navigation-link__content:before{content:"\f6b7"}.fa-book-medical > .wp-block-navigation-link__content:before{content:"\f7e6"}.fa-book-open > .wp-block-navigation-link__content:before{content:"\f518"}.fa-book-reader > .wp-block-navigation-link__content:before{content:"\f5da"}.fa-bookmark > .wp-block-navigation-link__content:before{content:"\f02e"}.fa-bootstrap > .wp-block-navigation-link__content:before{content:"\f836"}.fa-border-all > .wp-block-navigation-link__content:before{content:"\f84c"}.fa-border-none > .wp-block-navigation-link__content:before{content:"\f850"}.fa-border-style > .wp-block-navigation-link__content:before{content:"\f853"}.fa-bowling-ball > .wp-block-navigation-link__content:before{content:"\f436"}.fa-box > .wp-block-navigation-link__content:before{content:"\f466"}.fa-box-open > .wp-block-navigation-link__content:before{content:"\f49e"}.fa-box-tissue > .wp-block-navigation-link__content:before{content:"\f95b"}.fa-boxes > .wp-block-navigation-link__content:before{content:"\f468"}.fa-braille > .wp-block-navigation-link__content:before{content:"\f2a1"}.fa-brain > .wp-block-navigation-link__content:before{content:"\f5dc"}.fa-bread-slice > .wp-block-navigation-link__content:before{content:"\f7ec"}.fa-briefcase > .wp-block-navigation-link__content:before{content:"\f0b1"}.fa-briefcase-medical > .wp-block-navigation-link__content:before{content:"\f469"}.fa-broadcast-tower > .wp-block-navigation-link__content:before{content:"\f519"}.fa-broom > .wp-block-navigation-link__content:before{content:"\f51a"}.fa-brush > .wp-block-navigation-link__content:before{content:"\f55d"}.fa-btc > .wp-block-navigation-link__content:before{content:"\f15a"}.fa-buffer > .wp-block-navigation-link__content:before{content:"\f837"}.fa-bug > .wp-block-navigation-link__content:before{content:"\f188"}.fa-building > .wp-block-navigation-link__content:before{content:"\f1ad"}.fa-bullhorn > .wp-block-navigation-link__content:before{content:"\f0a1"}.fa-bullseye > .wp-block-navigation-link__content:before{content:"\f140"}.fa-burn > .wp-block-navigation-link__content:before{content:"\f46a"}.fa-buromobelexperte > .wp-block-navigation-link__content:before{content:"\f37f"}.fa-bus > .wp-block-navigation-link__content:before{content:"\f207"}.fa-bus-alt > .wp-block-navigation-link__content:before{content:"\f55e"}.fa-business-time > .wp-block-navigation-link__content:before{content:"\f64a"}.fa-buy-n-large > .wp-block-navigation-link__content:before{content:"\f8a6"}.fa-buysellads > .wp-block-navigation-link__content:before{content:"\f20d"}.fa-calculator > .wp-block-navigation-link__content:before{content:"\f1ec"}.fa-calendar > .wp-block-navigation-link__content:before{content:"\f133"}.fa-calendar-alt > .wp-block-navigation-link__content:before{content:"\f073"}.fa-calendar-check > .wp-block-navigation-link__content:before{content:"\f274"}.fa-calendar-day > .wp-block-navigation-link__content:before{content:"\f783"}.fa-calendar-minus > .wp-block-navigation-link__content:before{content:"\f272"}.fa-calendar-plus > .wp-block-navigation-link__content:before{content:"\f271"}.fa-calendar-times > .wp-block-navigation-link__content:before{content:"\f273"}.fa-calendar-week > .wp-block-navigation-link__content:before{content:"\f784"}.fa-camera > .wp-block-navigation-link__content:before{content:"\f030"}.fa-camera-retro > .wp-block-navigation-link__content:before{content:"\f083"}.fa-campground > .wp-block-navigation-link__content:before{content:"\f6bb"}.fa-canadian-maple-leaf > .wp-block-navigation-link__content:before{content:"\f785"}.fa-candy-cane > .wp-block-navigation-link__content:before{content:"\f786"}.fa-cannabis > .wp-block-navigation-link__content:before{content:"\f55f"}.fa-capsules > .wp-block-navigation-link__content:before{content:"\f46b"}.fa-car > .wp-block-navigation-link__content:before{content:"\f1b9"}.fa-car-alt > .wp-block-navigation-link__content:before{content:"\f5de"}.fa-car-battery > .wp-block-navigation-link__content:before{content:"\f5df"}.fa-car-crash > .wp-block-navigation-link__content:before{content:"\f5e1"}.fa-car-side > .wp-block-navigation-link__content:before{content:"\f5e4"}.fa-caravan > .wp-block-navigation-link__content:before{content:"\f8ff"}.fa-caret-down > .wp-block-navigation-link__content:before{content:"\f0d7"}.fa-caret-left > .wp-block-navigation-link__content:before{content:"\f0d9"}.fa-caret-right > .wp-block-navigation-link__content:before{content:"\f0da"}.fa-caret-square-down > .wp-block-navigation-link__content:before{content:"\f150"}.fa-caret-square-left > .wp-block-navigation-link__content:before{content:"\f191"}.fa-caret-square-right > .wp-block-navigation-link__content:before{content:"\f152"}.fa-caret-square-up > .wp-block-navigation-link__content:before{content:"\f151"}.fa-caret-up > .wp-block-navigation-link__content:before{content:"\f0d8"}.fa-carrot > .wp-block-navigation-link__content:before{content:"\f787"}.fa-cart-arrow-down > .wp-block-navigation-link__content:before{content:"\f218"}.fa-cart-plus > .wp-block-navigation-link__content:before{content:"\f217"}.fa-cash-register > .wp-block-navigation-link__content:before{content:"\f788"}.fa-cat > .wp-block-navigation-link__content:before{content:"\f6be"}.fa-cc-amazon-pay > .wp-block-navigation-link__content:before{content:"\f42d"}.fa-cc-amex > .wp-block-navigation-link__content:before{content:"\f1f3"}.fa-cc-apple-pay > .wp-block-navigation-link__content:before{content:"\f416"}.fa-cc-diners-club > .wp-block-navigation-link__content:before{content:"\f24c"}.fa-cc-discover > .wp-block-navigation-link__content:before{content:"\f1f2"}.fa-cc-jcb > .wp-block-navigation-link__content:before{content:"\f24b"}.fa-cc-mastercard > .wp-block-navigation-link__content:before{content:"\f1f1"}.fa-cc-paypal > .wp-block-navigation-link__content:before{content:"\f1f4"}.fa-cc-stripe > .wp-block-navigation-link__content:before{content:"\f1f5"}.fa-cc-visa > .wp-block-navigation-link__content:before{content:"\f1f0"}.fa-centercode > .wp-block-navigation-link__content:before{content:"\f380"}.fa-centos > .wp-block-navigation-link__content:before{content:"\f789"}.fa-certificate > .wp-block-navigation-link__content:before{content:"\f0a3"}.fa-chair > .wp-block-navigation-link__content:before{content:"\f6c0"}.fa-chalkboard > .wp-block-navigation-link__content:before{content:"\f51b"}.fa-chalkboard-teacher > .wp-block-navigation-link__content:before{content:"\f51c"}.fa-charging-station > .wp-block-navigation-link__content:before{content:"\f5e7"}.fa-chart-area > .wp-block-navigation-link__content:before{content:"\f1fe"}.fa-chart-bar > .wp-block-navigation-link__content:before{content:"\f080"}.fa-chart-line > .wp-block-navigation-link__content:before{content:"\f201"}.fa-chart-pie > .wp-block-navigation-link__content:before{content:"\f200"}.fa-check > .wp-block-navigation-link__content:before{content:"\f00c"}.fa-check-circle > .wp-block-navigation-link__content:before{content:"\f058"}.fa-check-double > .wp-block-navigation-link__content:before{content:"\f560"}.fa-check-square > .wp-block-navigation-link__content:before{content:"\f14a"}.fa-cheese > .wp-block-navigation-link__content:before{content:"\f7ef"}.fa-chess > .wp-block-navigation-link__content:before{content:"\f439"}.fa-chess-bishop > .wp-block-navigation-link__content:before{content:"\f43a"}.fa-chess-board > .wp-block-navigation-link__content:before{content:"\f43c"}.fa-chess-king > .wp-block-navigation-link__content:before{content:"\f43f"}.fa-chess-knight > .wp-block-navigation-link__content:before{content:"\f441"}.fa-chess-pawn > .wp-block-navigation-link__content:before{content:"\f443"}.fa-chess-queen > .wp-block-navigation-link__content:before{content:"\f445"}.fa-chess-rook > .wp-block-navigation-link__content:before{content:"\f447"}.fa-chevron-circle-down > .wp-block-navigation-link__content:before{content:"\f13a"}.fa-chevron-circle-left > .wp-block-navigation-link__content:before{content:"\f137"}.fa-chevron-circle-right > .wp-block-navigation-link__content:before{content:"\f138"}.fa-chevron-circle-up > .wp-block-navigation-link__content:before{content:"\f139"}.fa-chevron-down > .wp-block-navigation-link__content:before{content:"\f078"}.fa-chevron-left > .wp-block-navigation-link__content:before{content:"\f053"}.fa-chevron-right > .wp-block-navigation-link__content:before{content:"\f054"}.fa-chevron-up > .wp-block-navigation-link__content:before{content:"\f077"}.fa-child > .wp-block-navigation-link__content:before{content:"\f1ae"}.fa-chrome > .wp-block-navigation-link__content:before{content:"\f268"}.fa-chromecast > .wp-block-navigation-link__content:before{content:"\f838"}.fa-church > .wp-block-navigation-link__content:before{content:"\f51d"}.fa-circle > .wp-block-navigation-link__content:before{content:"\f111"}.fa-circle-notch > .wp-block-navigation-link__content:before{content:"\f1ce"}.fa-city > .wp-block-navigation-link__content:before{content:"\f64f"}.fa-clinic-medical > .wp-block-navigation-link__content:before{content:"\f7f2"}.fa-clipboard > .wp-block-navigation-link__content:before{content:"\f328"}.fa-clipboard-check > .wp-block-navigation-link__content:before{content:"\f46c"}.fa-clipboard-list > .wp-block-navigation-link__content:before{content:"\f46d"}.fa-clock > .wp-block-navigation-link__content:before{content:"\f017"}.fa-clone > .wp-block-navigation-link__content:before{content:"\f24d"}.fa-closed-captioning > .wp-block-navigation-link__content:before{content:"\f20a"}.fa-cloud > .wp-block-navigation-link__content:before{content:"\f0c2"}.fa-cloud-download-alt > .wp-block-navigation-link__content:before{content:"\f381"}.fa-cloud-meatball > .wp-block-navigation-link__content:before{content:"\f73b"}.fa-cloud-moon > .wp-block-navigation-link__content:before{content:"\f6c3"}.fa-cloud-moon-rain > .wp-block-navigation-link__content:before{content:"\f73c"}.fa-cloud-rain > .wp-block-navigation-link__content:before{content:"\f73d"}.fa-cloud-showers-heavy > .wp-block-navigation-link__content:before{content:"\f740"}.fa-cloud-sun > .wp-block-navigation-link__content:before{content:"\f6c4"}.fa-cloud-sun-rain > .wp-block-navigation-link__content:before{content:"\f743"}.fa-cloud-upload-alt > .wp-block-navigation-link__content:before{content:"\f382"}.fa-cloudscale > .wp-block-navigation-link__content:before{content:"\f383"}.fa-cloudsmith > .wp-block-navigation-link__content:before{content:"\f384"}.fa-cloudversify > .wp-block-navigation-link__content:before{content:"\f385"}.fa-cocktail > .wp-block-navigation-link__content:before{content:"\f561"}.fa-code > .wp-block-navigation-link__content:before{content:"\f121"}.fa-code-branch > .wp-block-navigation-link__content:before{content:"\f126"}.fa-codepen > .wp-block-navigation-link__content:before{content:"\f1cb"}.fa-codiepie > .wp-block-navigation-link__content:before{content:"\f284"}.fa-coffee > .wp-block-navigation-link__content:before{content:"\f0f4"}.fa-cog > .wp-block-navigation-link__content:before{content:"\f013"}.fa-cogs > .wp-block-navigation-link__content:before{content:"\f085"}.fa-coins > .wp-block-navigation-link__content:before{content:"\f51e"}.fa-columns > .wp-block-navigation-link__content:before{content:"\f0db"}.fa-comment > .wp-block-navigation-link__content:before{content:"\f075"}.fa-comment-alt > .wp-block-navigation-link__content:before{content:"\f27a"}.fa-comment-dollar > .wp-block-navigation-link__content:before{content:"\f651"}.fa-comment-dots > .wp-block-navigation-link__content:before{content:"\f4ad"}.fa-comment-medical > .wp-block-navigation-link__content:before{content:"\f7f5"}.fa-comment-slash > .wp-block-navigation-link__content:before{content:"\f4b3"}.fa-comments > .wp-block-navigation-link__content:before{content:"\f086"}.fa-comments-dollar > .wp-block-navigation-link__content:before{content:"\f653"}.fa-compact-disc > .wp-block-navigation-link__content:before{content:"\f51f"}.fa-compass > .wp-block-navigation-link__content:before{content:"\f14e"}.fa-compress > .wp-block-navigation-link__content:before{content:"\f066"}.fa-compress-alt > .wp-block-navigation-link__content:before{content:"\f422"}.fa-compress-arrows-alt > .wp-block-navigation-link__content:before{content:"\f78c"}.fa-concierge-bell > .wp-block-navigation-link__content:before{content:"\f562"}.fa-confluence > .wp-block-navigation-link__content:before{content:"\f78d"}.fa-connectdevelop > .wp-block-navigation-link__content:before{content:"\f20e"}.fa-contao > .wp-block-navigation-link__content:before{content:"\f26d"}.fa-cookie > .wp-block-navigation-link__content:before{content:"\f563"}.fa-cookie-bite > .wp-block-navigation-link__content:before{content:"\f564"}.fa-copy > .wp-block-navigation-link__content:before{content:"\f0c5"}.fa-copyright > .wp-block-navigation-link__content:before{content:"\f1f9"}.fa-cotton-bureau > .wp-block-navigation-link__content:before{content:"\f89e"}.fa-couch > .wp-block-navigation-link__content:before{content:"\f4b8"}.fa-cpanel > .wp-block-navigation-link__content:before{content:"\f388"}.fa-creative-commons > .wp-block-navigation-link__content:before{content:"\f25e"}.fa-creative-commons-by > .wp-block-navigation-link__content:before{content:"\f4e7"}.fa-creative-commons-nc > .wp-block-navigation-link__content:before{content:"\f4e8"}.fa-creative-commons-nc-eu > .wp-block-navigation-link__content:before{content:"\f4e9"}.fa-creative-commons-nc-jp > .wp-block-navigation-link__content:before{content:"\f4ea"}.fa-creative-commons-nd > .wp-block-navigation-link__content:before{content:"\f4eb"}.fa-creative-commons-pd > .wp-block-navigation-link__content:before{content:"\f4ec"}.fa-creative-commons-pd-alt > .wp-block-navigation-link__content:before{content:"\f4ed"}.fa-creative-commons-remix > .wp-block-navigation-link__content:before{content:"\f4ee"}.fa-creative-commons-sa > .wp-block-navigation-link__content:before{content:"\f4ef"}.fa-creative-commons-sampling > .wp-block-navigation-link__content:before{content:"\f4f0"}.fa-creative-commons-sampling-plus > .wp-block-navigation-link__content:before{content:"\f4f1"}.fa-creative-commons-share > .wp-block-navigation-link__content:before{content:"\f4f2"}.fa-creative-commons-zero > .wp-block-navigation-link__content:before{content:"\f4f3"}.fa-credit-card > .wp-block-navigation-link__content:before{content:"\f09d"}.fa-critical-role > .wp-block-navigation-link__content:before{content:"\f6c9"}.fa-crop > .wp-block-navigation-link__content:before{content:"\f125"}.fa-crop-alt > .wp-block-navigation-link__content:before{content:"\f565"}.fa-cross > .wp-block-navigation-link__content:before{content:"\f654"}.fa-crosshairs > .wp-block-navigation-link__content:before{content:"\f05b"}.fa-crow > .wp-block-navigation-link__content:before{content:"\f520"}.fa-crown > .wp-block-navigation-link__content:before{content:"\f521"}.fa-crutch > .wp-block-navigation-link__content:before{content:"\f7f7"}.fa-css3 > .wp-block-navigation-link__content:before{content:"\f13c"}.fa-css3-alt > .wp-block-navigation-link__content:before{content:"\f38b"}.fa-cube > .wp-block-navigation-link__content:before{content:"\f1b2"}.fa-cubes > .wp-block-navigation-link__content:before{content:"\f1b3"}.fa-cut > .wp-block-navigation-link__content:before{content:"\f0c4"}.fa-cuttlefish > .wp-block-navigation-link__content:before{content:"\f38c"}.fa-d-and-d > .wp-block-navigation-link__content:before{content:"\f38d"}.fa-d-and-d-beyond > .wp-block-navigation-link__content:before{content:"\f6ca"}.fa-dailymotion > .wp-block-navigation-link__content:before{content:"\f952"}.fa-dashcube > .wp-block-navigation-link__content:before{content:"\f210"}.fa-database > .wp-block-navigation-link__content:before{content:"\f1c0"}.fa-deaf > .wp-block-navigation-link__content:before{content:"\f2a4"}.fa-delicious > .wp-block-navigation-link__content:before{content:"\f1a5"}.fa-democrat > .wp-block-navigation-link__content:before{content:"\f747"}.fa-deploydog > .wp-block-navigation-link__content:before{content:"\f38e"}.fa-deskpro > .wp-block-navigation-link__content:before{content:"\f38f"}.fa-desktop > .wp-block-navigation-link__content:before{content:"\f108"}.fa-dev > .wp-block-navigation-link__content:before{content:"\f6cc"}.fa-deviantart > .wp-block-navigation-link__content:before{content:"\f1bd"}.fa-dharmachakra > .wp-block-navigation-link__content:before{content:"\f655"}.fa-dhl > .wp-block-navigation-link__content:before{content:"\f790"}.fa-diagnoses > .wp-block-navigation-link__content:before{content:"\f470"}.fa-diaspora > .wp-block-navigation-link__content:before{content:"\f791"}.fa-dice > .wp-block-navigation-link__content:before{content:"\f522"}.fa-dice-d20 > .wp-block-navigation-link__content:before{content:"\f6cf"}.fa-dice-d6 > .wp-block-navigation-link__content:before{content:"\f6d1"}.fa-dice-five > .wp-block-navigation-link__content:before{content:"\f523"}.fa-dice-four > .wp-block-navigation-link__content:before{content:"\f524"}.fa-dice-one > .wp-block-navigation-link__content:before{content:"\f525"}.fa-dice-six > .wp-block-navigation-link__content:before{content:"\f526"}.fa-dice-three > .wp-block-navigation-link__content:before{content:"\f527"}.fa-dice-two > .wp-block-navigation-link__content:before{content:"\f528"}.fa-digg > .wp-block-navigation-link__content:before{content:"\f1a6"}.fa-digital-ocean > .wp-block-navigation-link__content:before{content:"\f391"}.fa-digital-tachograph > .wp-block-navigation-link__content:before{content:"\f566"}.fa-directions > .wp-block-navigation-link__content:before{content:"\f5eb"}.fa-discord > .wp-block-navigation-link__content:before{content:"\f392"}.fa-discourse > .wp-block-navigation-link__content:before{content:"\f393"}.fa-disease > .wp-block-navigation-link__content:before{content:"\f7fa"}.fa-divide > .wp-block-navigation-link__content:before{content:"\f529"}.fa-dizzy > .wp-block-navigation-link__content:before{content:"\f567"}.fa-dna > .wp-block-navigation-link__content:before{content:"\f471"}.fa-dochub > .wp-block-navigation-link__content:before{content:"\f394"}.fa-docker > .wp-block-navigation-link__content:before{content:"\f395"}.fa-dog > .wp-block-navigation-link__content:before{content:"\f6d3"}.fa-dollar-sign > .wp-block-navigation-link__content:before{content:"\f155"}.fa-dolly > .wp-block-navigation-link__content:before{content:"\f472"}.fa-dolly-flatbed > .wp-block-navigation-link__content:before{content:"\f474"}.fa-donate > .wp-block-navigation-link__content:before{content:"\f4b9"}.fa-door-closed > .wp-block-navigation-link__content:before{content:"\f52a"}.fa-door-open > .wp-block-navigation-link__content:before{content:"\f52b"}.fa-dot-circle > .wp-block-navigation-link__content:before{content:"\f192"}.fa-dove > .wp-block-navigation-link__content:before{content:"\f4ba"}.fa-download > .wp-block-navigation-link__content:before{content:"\f019"}.fa-draft2digital > .wp-block-navigation-link__content:before{content:"\f396"}.fa-drafting-compass > .wp-block-navigation-link__content:before{content:"\f568"}.fa-dragon > .wp-block-navigation-link__content:before{content:"\f6d5"}.fa-draw-polygon > .wp-block-navigation-link__content:before{content:"\f5ee"}.fa-dribbble > .wp-block-navigation-link__content:before{content:"\f17d"}.fa-dribbble-square > .wp-block-navigation-link__content:before{content:"\f397"}.fa-dropbox > .wp-block-navigation-link__content:before{content:"\f16b"}.fa-drum > .wp-block-navigation-link__content:before{content:"\f569"}.fa-drum-steelpan > .wp-block-navigation-link__content:before{content:"\f56a"}.fa-drumstick-bite > .wp-block-navigation-link__content:before{content:"\f6d7"}.fa-drupal > .wp-block-navigation-link__content:before{content:"\f1a9"}.fa-dumbbell > .wp-block-navigation-link__content:before{content:"\f44b"}.fa-dumpster > .wp-block-navigation-link__content:before{content:"\f793"}.fa-dumpster-fire > .wp-block-navigation-link__content:before{content:"\f794"}.fa-dungeon > .wp-block-navigation-link__content:before{content:"\f6d9"}.fa-dyalog > .wp-block-navigation-link__content:before{content:"\f399"}.fa-earlybirds > .wp-block-navigation-link__content:before{content:"\f39a"}.fa-ebay > .wp-block-navigation-link__content:before{content:"\f4f4"}.fa-edge > .wp-block-navigation-link__content:before{content:"\f282"}.fa-edit > .wp-block-navigation-link__content:before{content:"\f044"}.fa-egg > .wp-block-navigation-link__content:before{content:"\f7fb"}.fa-eject > .wp-block-navigation-link__content:before{content:"\f052"}.fa-elementor > .wp-block-navigation-link__content:before{content:"\f430"}.fa-ellipsis-h > .wp-block-navigation-link__content:before{content:"\f141"}.fa-ellipsis-v > .wp-block-navigation-link__content:before{content:"\f142"}.fa-ello > .wp-block-navigation-link__content:before{content:"\f5f1"}.fa-ember > .wp-block-navigation-link__content:before{content:"\f423"}.fa-empire > .wp-block-navigation-link__content:before{content:"\f1d1"}.fa-envelope > .wp-block-navigation-link__content:before{content:"\f0e0"}.fa-envelope-open > .wp-block-navigation-link__content:before{content:"\f2b6"}.fa-envelope-open-text > .wp-block-navigation-link__content:before{content:"\f658"}.fa-envelope-square > .wp-block-navigation-link__content:before{content:"\f199"}.fa-envira > .wp-block-navigation-link__content:before{content:"\f299"}.fa-equals > .wp-block-navigation-link__content:before{content:"\f52c"}.fa-eraser > .wp-block-navigation-link__content:before{content:"\f12d"}.fa-erlang > .wp-block-navigation-link__content:before{content:"\f39d"}.fa-ethereum > .wp-block-navigation-link__content:before{content:"\f42e"}.fa-ethernet > .wp-block-navigation-link__content:before{content:"\f796"}.fa-etsy > .wp-block-navigation-link__content:before{content:"\f2d7"}.fa-euro-sign > .wp-block-navigation-link__content:before{content:"\f153"}.fa-evernote > .wp-block-navigation-link__content:before{content:"\f839"}.fa-exchange-alt > .wp-block-navigation-link__content:before{content:"\f362"}.fa-exclamation > .wp-block-navigation-link__content:before{content:"\f12a"}.fa-exclamation-circle > .wp-block-navigation-link__content:before{content:"\f06a"}.fa-exclamation-triangle > .wp-block-navigation-link__content:before{content:"\f071"}.fa-expand > .wp-block-navigation-link__content:before{content:"\f065"}.fa-expand-alt > .wp-block-navigation-link__content:before{content:"\f424"}.fa-expand-arrows-alt > .wp-block-navigation-link__content:before{content:"\f31e"}.fa-expeditedssl > .wp-block-navigation-link__content:before{content:"\f23e"}.fa-external-link-alt > .wp-block-navigation-link__content:before{content:"\f35d"}.fa-external-link-square-alt > .wp-block-navigation-link__content:before{content:"\f360"}.fa-eye > .wp-block-navigation-link__content:before{content:"\f06e"}.fa-eye-dropper > .wp-block-navigation-link__content:before{content:"\f1fb"}.fa-eye-slash > .wp-block-navigation-link__content:before{content:"\f070"}.fa-facebook > .wp-block-navigation-link__content:before{content:"\f09a"}.fa-facebook-f > .wp-block-navigation-link__content:before{content:"\f39e"}.fa-facebook-messenger > .wp-block-navigation-link__content:before{content:"\f39f"}.fa-facebook-square > .wp-block-navigation-link__content:before{content:"\f082"}.fa-fan > .wp-block-navigation-link__content:before{content:"\f863"}.fa-fantasy-flight-games > .wp-block-navigation-link__content:before{content:"\f6dc"}.fa-fast-backward > .wp-block-navigation-link__content:before{content:"\f049"}.fa-fast-forward > .wp-block-navigation-link__content:before{content:"\f050"}.fa-faucet > .wp-block-navigation-link__content:before{content:"\f905"}.fa-fax > .wp-block-navigation-link__content:before{content:"\f1ac"}.fa-feather > .wp-block-navigation-link__content:before{content:"\f52d"}.fa-feather-alt > .wp-block-navigation-link__content:before{content:"\f56b"}.fa-fedex > .wp-block-navigation-link__content:before{content:"\f797"}.fa-fedora > .wp-block-navigation-link__content:before{content:"\f798"}.fa-female > .wp-block-navigation-link__content:before{content:"\f182"}.fa-fighter-jet > .wp-block-navigation-link__content:before{content:"\f0fb"}.fa-figma > .wp-block-navigation-link__content:before{content:"\f799"}.fa-file > .wp-block-navigation-link__content:before{content:"\f15b"}.fa-file-alt > .wp-block-navigation-link__content:before{content:"\f15c"}.fa-file-archive > .wp-block-navigation-link__content:before{content:"\f1c6"}.fa-file-audio > .wp-block-navigation-link__content:before{content:"\f1c7"}.fa-file-code > .wp-block-navigation-link__content:before{content:"\f1c9"}.fa-file-contract > .wp-block-navigation-link__content:before{content:"\f56c"}.fa-file-csv > .wp-block-navigation-link__content:before{content:"\f6dd"}.fa-file-download > .wp-block-navigation-link__content:before{content:"\f56d"}.fa-file-excel > .wp-block-navigation-link__content:before{content:"\f1c3"}.fa-file-export > .wp-block-navigation-link__content:before{content:"\f56e"}.fa-file-image > .wp-block-navigation-link__content:before{content:"\f1c5"}.fa-file-import > .wp-block-navigation-link__content:before{content:"\f56f"}.fa-file-invoice > .wp-block-navigation-link__content:before{content:"\f570"}.fa-file-invoice-dollar > .wp-block-navigation-link__content:before{content:"\f571"}.fa-file-medical > .wp-block-navigation-link__content:before{content:"\f477"}.fa-file-medical-alt > .wp-block-navigation-link__content:before{content:"\f478"}.fa-file-pdf > .wp-block-navigation-link__content:before{content:"\f1c1"}.fa-file-powerpoint > .wp-block-navigation-link__content:before{content:"\f1c4"}.fa-file-prescription > .wp-block-navigation-link__content:before{content:"\f572"}.fa-file-signature > .wp-block-navigation-link__content:before{content:"\f573"}.fa-file-upload > .wp-block-navigation-link__content:before{content:"\f574"}.fa-file-video > .wp-block-navigation-link__content:before{content:"\f1c8"}.fa-file-word > .wp-block-navigation-link__content:before{content:"\f1c2"}.fa-fill > .wp-block-navigation-link__content:before{content:"\f575"}.fa-fill-drip > .wp-block-navigation-link__content:before{content:"\f576"}.fa-film > .wp-block-navigation-link__content:before{content:"\f008"}.fa-filter > .wp-block-navigation-link__content:before{content:"\f0b0"}.fa-fingerprint > .wp-block-navigation-link__content:before{content:"\f577"}.fa-fire > .wp-block-navigation-link__content:before{content:"\f06d"}.fa-fire-alt > .wp-block-navigation-link__content:before{content:"\f7e4"}.fa-fire-extinguisher > .wp-block-navigation-link__content:before{content:"\f134"}.fa-firefox > .wp-block-navigation-link__content:before{content:"\f269"}.fa-firefox-browser > .wp-block-navigation-link__content:before{content:"\f907"}.fa-first-aid > .wp-block-navigation-link__content:before{content:"\f479"}.fa-first-order > .wp-block-navigation-link__content:before{content:"\f2b0"}.fa-first-order-alt > .wp-block-navigation-link__content:before{content:"\f50a"}.fa-firstdraft > .wp-block-navigation-link__content:before{content:"\f3a1"}.fa-fish > .wp-block-navigation-link__content:before{content:"\f578"}.fa-fist-raised > .wp-block-navigation-link__content:before{content:"\f6de"}.fa-flag > .wp-block-navigation-link__content:before{content:"\f024"}.fa-flag-checkered > .wp-block-navigation-link__content:before{content:"\f11e"}.fa-flag-usa > .wp-block-navigation-link__content:before{content:"\f74d"}.fa-flask > .wp-block-navigation-link__content:before{content:"\f0c3"}.fa-flickr > .wp-block-navigation-link__content:before{content:"\f16e"}.fa-flipboard > .wp-block-navigation-link__content:before{content:"\f44d"}.fa-flushed > .wp-block-navigation-link__content:before{content:"\f579"}.fa-fly > .wp-block-navigation-link__content:before{content:"\f417"}.fa-folder > .wp-block-navigation-link__content:before{content:"\f07b"}.fa-folder-minus > .wp-block-navigation-link__content:before{content:"\f65d"}.fa-folder-open > .wp-block-navigation-link__content:before{content:"\f07c"}.fa-folder-plus > .wp-block-navigation-link__content:before{content:"\f65e"}.fa-font > .wp-block-navigation-link__content:before{content:"\f031"}.fa-font-awesome > .wp-block-navigation-link__content:before{content:"\f2b4"}.fa-font-awesome-alt > .wp-block-navigation-link__content:before{content:"\f35c"}.fa-font-awesome-flag > .wp-block-navigation-link__content:before{content:"\f425"}.fa-font-awesome-logo-full > .wp-block-navigation-link__content:before{content:"\f4e6"}.fa-fonticons > .wp-block-navigation-link__content:before{content:"\f280"}.fa-fonticons-fi > .wp-block-navigation-link__content:before{content:"\f3a2"}.fa-football-ball > .wp-block-navigation-link__content:before{content:"\f44e"}.fa-fort-awesome > .wp-block-navigation-link__content:before{content:"\f286"}.fa-fort-awesome-alt > .wp-block-navigation-link__content:before{content:"\f3a3"}.fa-forumbee > .wp-block-navigation-link__content:before{content:"\f211"}.fa-forward > .wp-block-navigation-link__content:before{content:"\f04e"}.fa-foursquare > .wp-block-navigation-link__content:before{content:"\f180"}.fa-free-code-camp > .wp-block-navigation-link__content:before{content:"\f2c5"}.fa-freebsd > .wp-block-navigation-link__content:before{content:"\f3a4"}.fa-frog > .wp-block-navigation-link__content:before{content:"\f52e"}.fa-frown > .wp-block-navigation-link__content:before{content:"\f119"}.fa-frown-open > .wp-block-navigation-link__content:before{content:"\f57a"}.fa-fulcrum > .wp-block-navigation-link__content:before{content:"\f50b"}.fa-funnel-dollar > .wp-block-navigation-link__content:before{content:"\f662"}.fa-futbol > .wp-block-navigation-link__content:before{content:"\f1e3"}.fa-galactic-republic > .wp-block-navigation-link__content:before{content:"\f50c"}.fa-galactic-senate > .wp-block-navigation-link__content:before{content:"\f50d"}.fa-gamepad > .wp-block-navigation-link__content:before{content:"\f11b"}.fa-gas-pump > .wp-block-navigation-link__content:before{content:"\f52f"}.fa-gavel > .wp-block-navigation-link__content:before{content:"\f0e3"}.fa-gem > .wp-block-navigation-link__content:before{content:"\f3a5"}.fa-genderless > .wp-block-navigation-link__content:before{content:"\f22d"}.fa-get-pocket > .wp-block-navigation-link__content:before{content:"\f265"}.fa-gg > .wp-block-navigation-link__content:before{content:"\f260"}.fa-gg-circle > .wp-block-navigation-link__content:before{content:"\f261"}.fa-ghost > .wp-block-navigation-link__content:before{content:"\f6e2"}.fa-gift > .wp-block-navigation-link__content:before{content:"\f06b"}.fa-gifts > .wp-block-navigation-link__content:before{content:"\f79c"}.fa-git > .wp-block-navigation-link__content:before{content:"\f1d3"}.fa-git-alt > .wp-block-navigation-link__content:before{content:"\f841"}.fa-git-square > .wp-block-navigation-link__content:before{content:"\f1d2"}.fa-github > .wp-block-navigation-link__content:before{content:"\f09b"}.fa-github-alt > .wp-block-navigation-link__content:before{content:"\f113"}.fa-github-square > .wp-block-navigation-link__content:before{content:"\f092"}.fa-gitkraken > .wp-block-navigation-link__content:before{content:"\f3a6"}.fa-gitlab > .wp-block-navigation-link__content:before{content:"\f296"}.fa-gitter > .wp-block-navigation-link__content:before{content:"\f426"}.fa-glass-cheers > .wp-block-navigation-link__content:before{content:"\f79f"}.fa-glass-martini > .wp-block-navigation-link__content:before{content:"\f000"}.fa-glass-martini-alt > .wp-block-navigation-link__content:before{content:"\f57b"}.fa-glass-whiskey > .wp-block-navigation-link__content:before{content:"\f7a0"}.fa-glasses > .wp-block-navigation-link__content:before{content:"\f530"}.fa-glide > .wp-block-navigation-link__content:before{content:"\f2a5"}.fa-glide-g > .wp-block-navigation-link__content:before{content:"\f2a6"}.fa-globe > .wp-block-navigation-link__content:before{content:"\f0ac"}.fa-globe-africa > .wp-block-navigation-link__content:before{content:"\f57c"}.fa-globe-americas > .wp-block-navigation-link__content:before{content:"\f57d"}.fa-globe-asia > .wp-block-navigation-link__content:before{content:"\f57e"}.fa-globe-europe > .wp-block-navigation-link__content:before{content:"\f7a2"}.fa-gofore > .wp-block-navigation-link__content:before{content:"\f3a7"}.fa-golf-ball > .wp-block-navigation-link__content:before{content:"\f450"}.fa-goodreads > .wp-block-navigation-link__content:before{content:"\f3a8"}.fa-goodreads-g > .wp-block-navigation-link__content:before{content:"\f3a9"}.fa-google > .wp-block-navigation-link__content:before{content:"\f1a0"}.fa-google-drive > .wp-block-navigation-link__content:before{content:"\f3aa"}.fa-google-play > .wp-block-navigation-link__content:before{content:"\f3ab"}.fa-google-plus > .wp-block-navigation-link__content:before{content:"\f2b3"}.fa-google-plus-g > .wp-block-navigation-link__content:before{content:"\f0d5"}.fa-google-plus-square > .wp-block-navigation-link__content:before{content:"\f0d4"}.fa-google-wallet > .wp-block-navigation-link__content:before{content:"\f1ee"}.fa-gopuram > .wp-block-navigation-link__content:before{content:"\f664"}.fa-graduation-cap > .wp-block-navigation-link__content:before{content:"\f19d"}.fa-gratipay > .wp-block-navigation-link__content:before{content:"\f184"}.fa-grav > .wp-block-navigation-link__content:before{content:"\f2d6"}.fa-greater-than > .wp-block-navigation-link__content:before{content:"\f531"}.fa-greater-than-equal > .wp-block-navigation-link__content:before{content:"\f532"}.fa-grimace > .wp-block-navigation-link__content:before{content:"\f57f"}.fa-grin > .wp-block-navigation-link__content:before{content:"\f580"}.fa-grin-alt > .wp-block-navigation-link__content:before{content:"\f581"}.fa-grin-beam > .wp-block-navigation-link__content:before{content:"\f582"}.fa-grin-beam-sweat > .wp-block-navigation-link__content:before{content:"\f583"}.fa-grin-hearts > .wp-block-navigation-link__content:before{content:"\f584"}.fa-grin-squint > .wp-block-navigation-link__content:before{content:"\f585"}.fa-grin-squint-tears > .wp-block-navigation-link__content:before{content:"\f586"}.fa-grin-stars > .wp-block-navigation-link__content:before{content:"\f587"}.fa-grin-tears > .wp-block-navigation-link__content:before{content:"\f588"}.fa-grin-tongue > .wp-block-navigation-link__content:before{content:"\f589"}.fa-grin-tongue-squint > .wp-block-navigation-link__content:before{content:"\f58a"}.fa-grin-tongue-wink > .wp-block-navigation-link__content:before{content:"\f58b"}.fa-grin-wink > .wp-block-navigation-link__content:before{content:"\f58c"}.fa-grip-horizontal > .wp-block-navigation-link__content:before{content:"\f58d"}.fa-grip-lines > .wp-block-navigation-link__content:before{content:"\f7a4"}.fa-grip-lines-vertical > .wp-block-navigation-link__content:before{content:"\f7a5"}.fa-grip-vertical > .wp-block-navigation-link__content:before{content:"\f58e"}.fa-gripfire > .wp-block-navigation-link__content:before{content:"\f3ac"}.fa-grunt > .wp-block-navigation-link__content:before{content:"\f3ad"}.fa-guitar > .wp-block-navigation-link__content:before{content:"\f7a6"}.fa-gulp > .wp-block-navigation-link__content:before{content:"\f3ae"}.fa-h-square > .wp-block-navigation-link__content:before{content:"\f0fd"}.fa-hacker-news > .wp-block-navigation-link__content:before{content:"\f1d4"}.fa-hacker-news-square > .wp-block-navigation-link__content:before{content:"\f3af"}.fa-hackerrank > .wp-block-navigation-link__content:before{content:"\f5f7"}.fa-hamburger > .wp-block-navigation-link__content:before{content:"\f805"}.fa-hammer > .wp-block-navigation-link__content:before{content:"\f6e3"}.fa-hamsa > .wp-block-navigation-link__content:before{content:"\f665"}.fa-hand-holding > .wp-block-navigation-link__content:before{content:"\f4bd"}.fa-hand-holding-heart > .wp-block-navigation-link__content:before{content:"\f4be"}.fa-hand-holding-medical > .wp-block-navigation-link__content:before{content:"\f95c"}.fa-hand-holding-usd > .wp-block-navigation-link__content:before{content:"\f4c0"}.fa-hand-holding-water > .wp-block-navigation-link__content:before{content:"\f4c1"}.fa-hand-lizard > .wp-block-navigation-link__content:before{content:"\f258"}.fa-hand-middle-finger > .wp-block-navigation-link__content:before{content:"\f806"}.fa-hand-paper > .wp-block-navigation-link__content:before{content:"\f256"}.fa-hand-peace > .wp-block-navigation-link__content:before{content:"\f25b"}.fa-hand-point-down > .wp-block-navigation-link__content:before{content:"\f0a7"}.fa-hand-point-left > .wp-block-navigation-link__content:before{content:"\f0a5"}.fa-hand-point-right > .wp-block-navigation-link__content:before{content:"\f0a4"}.fa-hand-point-up > .wp-block-navigation-link__content:before{content:"\f0a6"}.fa-hand-pointer > .wp-block-navigation-link__content:before{content:"\f25a"}.fa-hand-rock > .wp-block-navigation-link__content:before{content:"\f255"}.fa-hand-scissors > .wp-block-navigation-link__content:before{content:"\f257"}.fa-hand-sparkles > .wp-block-navigation-link__content:before{content:"\f95d"}.fa-hand-spock > .wp-block-navigation-link__content:before{content:"\f259"}.fa-hands > .wp-block-navigation-link__content:before{content:"\f4c2"}.fa-hands-helping > .wp-block-navigation-link__content:before{content:"\f4c4"}.fa-hands-wash > .wp-block-navigation-link__content:before{content:"\f95e"}.fa-handshake > .wp-block-navigation-link__content:before{content:"\f2b5"}.fa-handshake-alt-slash > .wp-block-navigation-link__content:before{content:"\f95f"}.fa-handshake-slash > .wp-block-navigation-link__content:before{content:"\f960"}.fa-hanukiah > .wp-block-navigation-link__content:before{content:"\f6e6"}.fa-hard-hat > .wp-block-navigation-link__content:before{content:"\f807"}.fa-hashtag > .wp-block-navigation-link__content:before{content:"\f292"}.fa-hat-cowboy > .wp-block-navigation-link__content:before{content:"\f8c0"}.fa-hat-cowboy-side > .wp-block-navigation-link__content:before{content:"\f8c1"}.fa-hat-wizard > .wp-block-navigation-link__content:before{content:"\f6e8"}.fa-hdd > .wp-block-navigation-link__content:before{content:"\f0a0"}.fa-head-side-cough > .wp-block-navigation-link__content:before{content:"\f961"}.fa-head-side-cough-slash > .wp-block-navigation-link__content:before{content:"\f962"}.fa-head-side-mask > .wp-block-navigation-link__content:before{content:"\f963"}.fa-head-side-virus > .wp-block-navigation-link__content:before{content:"\f964"}.fa-heading > .wp-block-navigation-link__content:before{content:"\f1dc"}.fa-headphones > .wp-block-navigation-link__content:before{content:"\f025"}.fa-headphones-alt > .wp-block-navigation-link__content:before{content:"\f58f"}.fa-headset > .wp-block-navigation-link__content:before{content:"\f590"}.fa-heart > .wp-block-navigation-link__content:before{content:"\f004"}.fa-heart-broken > .wp-block-navigation-link__content:before{content:"\f7a9"}.fa-heartbeat > .wp-block-navigation-link__content:before{content:"\f21e"}.fa-helicopter > .wp-block-navigation-link__content:before{content:"\f533"}.fa-highlighter > .wp-block-navigation-link__content:before{content:"\f591"}.fa-hiking > .wp-block-navigation-link__content:before{content:"\f6ec"}.fa-hippo > .wp-block-navigation-link__content:before{content:"\f6ed"}.fa-hips > .wp-block-navigation-link__content:before{content:"\f452"}.fa-hire-a-helper > .wp-block-navigation-link__content:before{content:"\f3b0"}.fa-history > .wp-block-navigation-link__content:before{content:"\f1da"}.fa-hockey-puck > .wp-block-navigation-link__content:before{content:"\f453"}.fa-holly-berry > .wp-block-navigation-link__content:before{content:"\f7aa"}.fa-home > .wp-block-navigation-link__content:before{content:"\f015"}.fa-hooli > .wp-block-navigation-link__content:before{content:"\f427"}.fa-hornbill > .wp-block-navigation-link__content:before{content:"\f592"}.fa-horse > .wp-block-navigation-link__content:before{content:"\f6f0"}.fa-horse-head > .wp-block-navigation-link__content:before{content:"\f7ab"}.fa-hospital > .wp-block-navigation-link__content:before{content:"\f0f8"}.fa-hospital-alt > .wp-block-navigation-link__content:before{content:"\f47d"}.fa-hospital-symbol > .wp-block-navigation-link__content:before{content:"\f47e"}.fa-hospital-user > .wp-block-navigation-link__content:before{content:"\f80d"}.fa-hot-tub > .wp-block-navigation-link__content:before{content:"\f593"}.fa-hotdog > .wp-block-navigation-link__content:before{content:"\f80f"}.fa-hotel > .wp-block-navigation-link__content:before{content:"\f594"}.fa-hotjar > .wp-block-navigation-link__content:before{content:"\f3b1"}.fa-hourglass > .wp-block-navigation-link__content:before{content:"\f254"}.fa-hourglass-end > .wp-block-navigation-link__content:before{content:"\f253"}.fa-hourglass-half > .wp-block-navigation-link__content:before{content:"\f252"}.fa-hourglass-start > .wp-block-navigation-link__content:before{content:"\f251"}.fa-house-damage > .wp-block-navigation-link__content:before{content:"\f6f1"}.fa-house-user > .wp-block-navigation-link__content:before{content:"\f965"}.fa-houzz > .wp-block-navigation-link__content:before{content:"\f27c"}.fa-hryvnia > .wp-block-navigation-link__content:before{content:"\f6f2"}.fa-html5 > .wp-block-navigation-link__content:before{content:"\f13b"}.fa-hubspot > .wp-block-navigation-link__content:before{content:"\f3b2"}.fa-i-cursor > .wp-block-navigation-link__content:before{content:"\f246"}.fa-ice-cream > .wp-block-navigation-link__content:before{content:"\f810"}.fa-icicles > .wp-block-navigation-link__content:before{content:"\f7ad"}.fa-icons > .wp-block-navigation-link__content:before{content:"\f86d"}.fa-id-badge > .wp-block-navigation-link__content:before{content:"\f2c1"}.fa-id-card > .wp-block-navigation-link__content:before{content:"\f2c2"}.fa-id-card-alt > .wp-block-navigation-link__content:before{content:"\f47f"}.fa-ideal > .wp-block-navigation-link__content:before{content:"\f913"}.fa-igloo > .wp-block-navigation-link__content:before{content:"\f7ae"}.fa-image > .wp-block-navigation-link__content:before{content:"\f03e"}.fa-images > .wp-block-navigation-link__content:before{content:"\f302"}.fa-imdb > .wp-block-navigation-link__content:before{content:"\f2d8"}.fa-inbox > .wp-block-navigation-link__content:before{content:"\f01c"}.fa-indent > .wp-block-navigation-link__content:before{content:"\f03c"}.fa-industry > .wp-block-navigation-link__content:before{content:"\f275"}.fa-infinity > .wp-block-navigation-link__content:before{content:"\f534"}.fa-info > .wp-block-navigation-link__content:before{content:"\f129"}.fa-info-circle > .wp-block-navigation-link__content:before{content:"\f05a"}.fa-instagram > .wp-block-navigation-link__content:before{content:"\f16d"}.fa-instagram-square > .wp-block-navigation-link__content:before{content:"\f955"}.fa-intercom > .wp-block-navigation-link__content:before{content:"\f7af"}.fa-internet-explorer > .wp-block-navigation-link__content:before{content:"\f26b"}.fa-invision > .wp-block-navigation-link__content:before{content:"\f7b0"}.fa-ioxhost > .wp-block-navigation-link__content:before{content:"\f208"}.fa-italic > .wp-block-navigation-link__content:before{content:"\f033"}.fa-itch-io > .wp-block-navigation-link__content:before{content:"\f83a"}.fa-itunes > .wp-block-navigation-link__content:before{content:"\f3b4"}.fa-itunes-note > .wp-block-navigation-link__content:before{content:"\f3b5"}.fa-java > .wp-block-navigation-link__content:before{content:"\f4e4"}.fa-jedi > .wp-block-navigation-link__content:before{content:"\f669"}.fa-jedi-order > .wp-block-navigation-link__content:before{content:"\f50e"}.fa-jenkins > .wp-block-navigation-link__content:before{content:"\f3b6"}.fa-jira > .wp-block-navigation-link__content:before{content:"\f7b1"}.fa-joget > .wp-block-navigation-link__content:before{content:"\f3b7"}.fa-joint > .wp-block-navigation-link__content:before{content:"\f595"}.fa-joomla > .wp-block-navigation-link__content:before{content:"\f1aa"}.fa-journal-whills > .wp-block-navigation-link__content:before{content:"\f66a"}.fa-js > .wp-block-navigation-link__content:before{content:"\f3b8"}.fa-js-square > .wp-block-navigation-link__content:before{content:"\f3b9"}.fa-jsfiddle > .wp-block-navigation-link__content:before{content:"\f1cc"}.fa-kaaba > .wp-block-navigation-link__content:before{content:"\f66b"}.fa-kaggle > .wp-block-navigation-link__content:before{content:"\f5fa"}.fa-key > .wp-block-navigation-link__content:before{content:"\f084"}.fa-keybase > .wp-block-navigation-link__content:before{content:"\f4f5"}.fa-keyboard > .wp-block-navigation-link__content:before{content:"\f11c"}.fa-keycdn > .wp-block-navigation-link__content:before{content:"\f3ba"}.fa-khanda > .wp-block-navigation-link__content:before{content:"\f66d"}.fa-kickstarter > .wp-block-navigation-link__content:before{content:"\f3bb"}.fa-kickstarter-k > .wp-block-navigation-link__content:before{content:"\f3bc"}.fa-kiss > .wp-block-navigation-link__content:before{content:"\f596"}.fa-kiss-beam > .wp-block-navigation-link__content:before{content:"\f597"}.fa-kiss-wink-heart > .wp-block-navigation-link__content:before{content:"\f598"}.fa-kiwi-bird > .wp-block-navigation-link__content:before{content:"\f535"}.fa-korvue > .wp-block-navigation-link__content:before{content:"\f42f"}.fa-landmark > .wp-block-navigation-link__content:before{content:"\f66f"}.fa-language > .wp-block-navigation-link__content:before{content:"\f1ab"}.fa-laptop > .wp-block-navigation-link__content:before{content:"\f109"}.fa-laptop-code > .wp-block-navigation-link__content:before{content:"\f5fc"}.fa-laptop-house > .wp-block-navigation-link__content:before{content:"\f966"}.fa-laptop-medical > .wp-block-navigation-link__content:before{content:"\f812"}.fa-laravel > .wp-block-navigation-link__content:before{content:"\f3bd"}.fa-lastfm > .wp-block-navigation-link__content:before{content:"\f202"}.fa-lastfm-square > .wp-block-navigation-link__content:before{content:"\f203"}.fa-laugh > .wp-block-navigation-link__content:before{content:"\f599"}.fa-laugh-beam > .wp-block-navigation-link__content:before{content:"\f59a"}.fa-laugh-squint > .wp-block-navigation-link__content:before{content:"\f59b"}.fa-laugh-wink > .wp-block-navigation-link__content:before{content:"\f59c"}.fa-layer-group > .wp-block-navigation-link__content:before{content:"\f5fd"}.fa-leaf > .wp-block-navigation-link__content:before{content:"\f06c"}.fa-leanpub > .wp-block-navigation-link__content:before{content:"\f212"}.fa-lemon > .wp-block-navigation-link__content:before{content:"\f094"}.fa-less > .wp-block-navigation-link__content:before{content:"\f41d"}.fa-less-than > .wp-block-navigation-link__content:before{content:"\f536"}.fa-less-than-equal > .wp-block-navigation-link__content:before{content:"\f537"}.fa-level-down-alt > .wp-block-navigation-link__content:before{content:"\f3be"}.fa-level-up-alt > .wp-block-navigation-link__content:before{content:"\f3bf"}.fa-life-ring > .wp-block-navigation-link__content:before{content:"\f1cd"}.fa-lightbulb > .wp-block-navigation-link__content:before{content:"\f0eb"}.fa-line > .wp-block-navigation-link__content:before{content:"\f3c0"}.fa-link > .wp-block-navigation-link__content:before{content:"\f0c1"}.fa-linkedin > .wp-block-navigation-link__content:before{content:"\f08c"}.fa-linkedin-in > .wp-block-navigation-link__content:before{content:"\f0e1"}.fa-linode > .wp-block-navigation-link__content:before{content:"\f2b8"}.fa-linux > .wp-block-navigation-link__content:before{content:"\f17c"}.fa-lira-sign > .wp-block-navigation-link__content:before{content:"\f195"}.fa-list > .wp-block-navigation-link__content:before{content:"\f03a"}.fa-list-alt > .wp-block-navigation-link__content:before{content:"\f022"}.fa-list-ol > .wp-block-navigation-link__content:before{content:"\f0cb"}.fa-list-ul > .wp-block-navigation-link__content:before{content:"\f0ca"}.fa-location-arrow > .wp-block-navigation-link__content:before{content:"\f124"}.fa-lock > .wp-block-navigation-link__content:before{content:"\f023"}.fa-lock-open > .wp-block-navigation-link__content:before{content:"\f3c1"}.fa-long-arrow-alt-down > .wp-block-navigation-link__content:before{content:"\f309"}.fa-long-arrow-alt-left > .wp-block-navigation-link__content:before{content:"\f30a"}.fa-long-arrow-alt-right > .wp-block-navigation-link__content:before{content:"\f30b"}.fa-long-arrow-alt-up > .wp-block-navigation-link__content:before{content:"\f30c"}.fa-low-vision > .wp-block-navigation-link__content:before{content:"\f2a8"}.fa-luggage-cart > .wp-block-navigation-link__content:before{content:"\f59d"}.fa-lungs > .wp-block-navigation-link__content:before{content:"\f604"}.fa-lungs-virus > .wp-block-navigation-link__content:before{content:"\f967"}.fa-lyft > .wp-block-navigation-link__content:before{content:"\f3c3"}.fa-magento > .wp-block-navigation-link__content:before{content:"\f3c4"}.fa-magic > .wp-block-navigation-link__content:before{content:"\f0d0"}.fa-magnet > .wp-block-navigation-link__content:before{content:"\f076"}.fa-mail-bulk > .wp-block-navigation-link__content:before{content:"\f674"}.fa-mailchimp > .wp-block-navigation-link__content:before{content:"\f59e"}.fa-male > .wp-block-navigation-link__content:before{content:"\f183"}.fa-mandalorian > .wp-block-navigation-link__content:before{content:"\f50f"}.fa-map > .wp-block-navigation-link__content:before{content:"\f279"}.fa-map-marked > .wp-block-navigation-link__content:before{content:"\f59f"}.fa-map-marked-alt > .wp-block-navigation-link__content:before{content:"\f5a0"}.fa-map-marker > .wp-block-navigation-link__content:before{content:"\f041"}.fa-map-marker-alt > .wp-block-navigation-link__content:before{content:"\f3c5"}.fa-map-pin > .wp-block-navigation-link__content:before{content:"\f276"}.fa-map-signs > .wp-block-navigation-link__content:before{content:"\f277"}.fa-markdown > .wp-block-navigation-link__content:before{content:"\f60f"}.fa-marker > .wp-block-navigation-link__content:before{content:"\f5a1"}.fa-mars > .wp-block-navigation-link__content:before{content:"\f222"}.fa-mars-double > .wp-block-navigation-link__content:before{content:"\f227"}.fa-mars-stroke > .wp-block-navigation-link__content:before{content:"\f229"}.fa-mars-stroke-h > .wp-block-navigation-link__content:before{content:"\f22b"}.fa-mars-stroke-v > .wp-block-navigation-link__content:before{content:"\f22a"}.fa-mask > .wp-block-navigation-link__content:before{content:"\f6fa"}.fa-mastodon > .wp-block-navigation-link__content:before{content:"\f4f6"}.fa-maxcdn > .wp-block-navigation-link__content:before{content:"\f136"}.fa-mdb > .wp-block-navigation-link__content:before{content:"\f8ca"}.fa-medal > .wp-block-navigation-link__content:before{content:"\f5a2"}.fa-medapps > .wp-block-navigation-link__content:before{content:"\f3c6"}.fa-medium > .wp-block-navigation-link__content:before{content:"\f23a"}.fa-medium-m > .wp-block-navigation-link__content:before{content:"\f3c7"}.fa-medkit > .wp-block-navigation-link__content:before{content:"\f0fa"}.fa-medrt > .wp-block-navigation-link__content:before{content:"\f3c8"}.fa-meetup > .wp-block-navigation-link__content:before{content:"\f2e0"}.fa-megaport > .wp-block-navigation-link__content:before{content:"\f5a3"}.fa-meh > .wp-block-navigation-link__content:before{content:"\f11a"}.fa-meh-blank > .wp-block-navigation-link__content:before{content:"\f5a4"}.fa-meh-rolling-eyes > .wp-block-navigation-link__content:before{content:"\f5a5"}.fa-memory > .wp-block-navigation-link__content:before{content:"\f538"}.fa-mendeley > .wp-block-navigation-link__content:before{content:"\f7b3"}.fa-menorah > .wp-block-navigation-link__content:before{content:"\f676"}.fa-mercury > .wp-block-navigation-link__content:before{content:"\f223"}.fa-meteor > .wp-block-navigation-link__content:before{content:"\f753"}.fa-microblog > .wp-block-navigation-link__content:before{content:"\f91a"}.fa-microchip > .wp-block-navigation-link__content:before{content:"\f2db"}.fa-microphone > .wp-block-navigation-link__content:before{content:"\f130"}.fa-microphone-alt > .wp-block-navigation-link__content:before{content:"\f3c9"}.fa-microphone-alt-slash > .wp-block-navigation-link__content:before{content:"\f539"}.fa-microphone-slash > .wp-block-navigation-link__content:before{content:"\f131"}.fa-microscope > .wp-block-navigation-link__content:before{content:"\f610"}.fa-microsoft > .wp-block-navigation-link__content:before{content:"\f3ca"}.fa-minus > .wp-block-navigation-link__content:before{content:"\f068"}.fa-minus-circle > .wp-block-navigation-link__content:before{content:"\f056"}.fa-minus-square > .wp-block-navigation-link__content:before{content:"\f146"}.fa-mitten > .wp-block-navigation-link__content:before{content:"\f7b5"}.fa-mix > .wp-block-navigation-link__content:before{content:"\f3cb"}.fa-mixcloud > .wp-block-navigation-link__content:before{content:"\f289"}.fa-mixer > .wp-block-navigation-link__content:before{content:"\f956"}.fa-mizuni > .wp-block-navigation-link__content:before{content:"\f3cc"}.fa-mobile > .wp-block-navigation-link__content:before{content:"\f10b"}.fa-mobile-alt > .wp-block-navigation-link__content:before{content:"\f3cd"}.fa-modx > .wp-block-navigation-link__content:before{content:"\f285"}.fa-monero > .wp-block-navigation-link__content:before{content:"\f3d0"}.fa-money-bill > .wp-block-navigation-link__content:before{content:"\f0d6"}.fa-money-bill-alt > .wp-block-navigation-link__content:before{content:"\f3d1"}.fa-money-bill-wave > .wp-block-navigation-link__content:before{content:"\f53a"}.fa-money-bill-wave-alt > .wp-block-navigation-link__content:before{content:"\f53b"}.fa-money-check > .wp-block-navigation-link__content:before{content:"\f53c"}.fa-money-check-alt > .wp-block-navigation-link__content:before{content:"\f53d"}.fa-monument > .wp-block-navigation-link__content:before{content:"\f5a6"}.fa-moon > .wp-block-navigation-link__content:before{content:"\f186"}.fa-mortar-pestle > .wp-block-navigation-link__content:before{content:"\f5a7"}.fa-mosque > .wp-block-navigation-link__content:before{content:"\f678"}.fa-motorcycle > .wp-block-navigation-link__content:before{content:"\f21c"}.fa-mountain > .wp-block-navigation-link__content:before{content:"\f6fc"}.fa-mouse > .wp-block-navigation-link__content:before{content:"\f8cc"}.fa-mouse-pointer > .wp-block-navigation-link__content:before{content:"\f245"}.fa-mug-hot > .wp-block-navigation-link__content:before{content:"\f7b6"}.fa-music > .wp-block-navigation-link__content:before{content:"\f001"}.fa-napster > .wp-block-navigation-link__content:before{content:"\f3d2"}.fa-neos > .wp-block-navigation-link__content:before{content:"\f612"}.fa-network-wired > .wp-block-navigation-link__content:before{content:"\f6ff"}.fa-neuter > .wp-block-navigation-link__content:before{content:"\f22c"}.fa-newspaper > .wp-block-navigation-link__content:before{content:"\f1ea"}.fa-nimblr > .wp-block-navigation-link__content:before{content:"\f5a8"}.fa-node > .wp-block-navigation-link__content:before{content:"\f419"}.fa-node-js > .wp-block-navigation-link__content:before{content:"\f3d3"}.fa-not-equal > .wp-block-navigation-link__content:before{content:"\f53e"}.fa-notes-medical > .wp-block-navigation-link__content:before{content:"\f481"}.fa-npm > .wp-block-navigation-link__content:before{content:"\f3d4"}.fa-ns8 > .wp-block-navigation-link__content:before{content:"\f3d5"}.fa-nutritionix > .wp-block-navigation-link__content:before{content:"\f3d6"}.fa-object-group > .wp-block-navigation-link__content:before{content:"\f247"}.fa-object-ungroup > .wp-block-navigation-link__content:before{content:"\f248"}.fa-odnoklassniki > .wp-block-navigation-link__content:before{content:"\f263"}.fa-odnoklassniki-square > .wp-block-navigation-link__content:before{content:"\f264"}.fa-oil-can > .wp-block-navigation-link__content:before{content:"\f613"}.fa-old-republic > .wp-block-navigation-link__content:before{content:"\f510"}.fa-om > .wp-block-navigation-link__content:before{content:"\f679"}.fa-opencart > .wp-block-navigation-link__content:before{content:"\f23d"}.fa-openid > .wp-block-navigation-link__content:before{content:"\f19b"}.fa-opera > .wp-block-navigation-link__content:before{content:"\f26a"}.fa-optin-monster > .wp-block-navigation-link__content:before{content:"\f23c"}.fa-orcid > .wp-block-navigation-link__content:before{content:"\f8d2"}.fa-osi > .wp-block-navigation-link__content:before{content:"\f41a"}.fa-otter > .wp-block-navigation-link__content:before{content:"\f700"}.fa-outdent > .wp-block-navigation-link__content:before{content:"\f03b"}.fa-page4 > .wp-block-navigation-link__content:before{content:"\f3d7"}.fa-pagelines > .wp-block-navigation-link__content:before{content:"\f18c"}.fa-pager > .wp-block-navigation-link__content:before{content:"\f815"}.fa-paint-brush > .wp-block-navigation-link__content:before{content:"\f1fc"}.fa-paint-roller > .wp-block-navigation-link__content:before{content:"\f5aa"}.fa-palette > .wp-block-navigation-link__content:before{content:"\f53f"}.fa-palfed > .wp-block-navigation-link__content:before{content:"\f3d8"}.fa-pallet > .wp-block-navigation-link__content:before{content:"\f482"}.fa-paper-plane > .wp-block-navigation-link__content:before{content:"\f1d8"}.fa-paperclip > .wp-block-navigation-link__content:before{content:"\f0c6"}.fa-parachute-box > .wp-block-navigation-link__content:before{content:"\f4cd"}.fa-paragraph > .wp-block-navigation-link__content:before{content:"\f1dd"}.fa-parking > .wp-block-navigation-link__content:before{content:"\f540"}.fa-passport > .wp-block-navigation-link__content:before{content:"\f5ab"}.fa-pastafarianism > .wp-block-navigation-link__content:before{content:"\f67b"}.fa-paste > .wp-block-navigation-link__content:before{content:"\f0ea"}.fa-patreon > .wp-block-navigation-link__content:before{content:"\f3d9"}.fa-pause > .wp-block-navigation-link__content:before{content:"\f04c"}.fa-pause-circle > .wp-block-navigation-link__content:before{content:"\f28b"}.fa-paw > .wp-block-navigation-link__content:before{content:"\f1b0"}.fa-paypal > .wp-block-navigation-link__content:before{content:"\f1ed"}.fa-peace > .wp-block-navigation-link__content:before{content:"\f67c"}.fa-pen > .wp-block-navigation-link__content:before{content:"\f304"}.fa-pen-alt > .wp-block-navigation-link__content:before{content:"\f305"}.fa-pen-fancy > .wp-block-navigation-link__content:before{content:"\f5ac"}.fa-pen-nib > .wp-block-navigation-link__content:before{content:"\f5ad"}.fa-pen-square > .wp-block-navigation-link__content:before{content:"\f14b"}.fa-pencil-alt > .wp-block-navigation-link__content:before{content:"\f303"}.fa-pencil-ruler > .wp-block-navigation-link__content:before{content:"\f5ae"}.fa-penny-arcade > .wp-block-navigation-link__content:before{content:"\f704"}.fa-people-arrows > .wp-block-navigation-link__content:before{content:"\f968"}.fa-people-carry > .wp-block-navigation-link__content:before{content:"\f4ce"}.fa-pepper-hot > .wp-block-navigation-link__content:before{content:"\f816"}.fa-percent > .wp-block-navigation-link__content:before{content:"\f295"}.fa-percentage > .wp-block-navigation-link__content:before{content:"\f541"}.fa-periscope > .wp-block-navigation-link__content:before{content:"\f3da"}.fa-person-booth > .wp-block-navigation-link__content:before{content:"\f756"}.fa-phabricator > .wp-block-navigation-link__content:before{content:"\f3db"}.fa-phoenix-framework > .wp-block-navigation-link__content:before{content:"\f3dc"}.fa-phoenix-squadron > .wp-block-navigation-link__content:before{content:"\f511"}.fa-phone > .wp-block-navigation-link__content:before{content:"\f095"}.fa-phone-alt > .wp-block-navigation-link__content:before{content:"\f879"}.fa-phone-slash > .wp-block-navigation-link__content:before{content:"\f3dd"}.fa-phone-square > .wp-block-navigation-link__content:before{content:"\f098"}.fa-phone-square-alt > .wp-block-navigation-link__content:before{content:"\f87b"}.fa-phone-volume > .wp-block-navigation-link__content:before{content:"\f2a0"}.fa-photo-video > .wp-block-navigation-link__content:before{content:"\f87c"}.fa-php > .wp-block-navigation-link__content:before{content:"\f457"}.fa-pied-piper > .wp-block-navigation-link__content:before{content:"\f2ae"}.fa-pied-piper-alt > .wp-block-navigation-link__content:before{content:"\f1a8"}.fa-pied-piper-hat > .wp-block-navigation-link__content:before{content:"\f4e5"}.fa-pied-piper-pp > .wp-block-navigation-link__content:before{content:"\f1a7"}.fa-pied-piper-square > .wp-block-navigation-link__content:before{content:"\f91e"}.fa-piggy-bank > .wp-block-navigation-link__content:before{content:"\f4d3"}.fa-pills > .wp-block-navigation-link__content:before{content:"\f484"}.fa-pinterest > .wp-block-navigation-link__content:before{content:"\f0d2"}.fa-pinterest-p > .wp-block-navigation-link__content:before{content:"\f231"}.fa-pinterest-square > .wp-block-navigation-link__content:before{content:"\f0d3"}.fa-pizza-slice > .wp-block-navigation-link__content:before{content:"\f818"}.fa-place-of-worship > .wp-block-navigation-link__content:before{content:"\f67f"}.fa-plane > .wp-block-navigation-link__content:before{content:"\f072"}.fa-plane-arrival > .wp-block-navigation-link__content:before{content:"\f5af"}.fa-plane-departure > .wp-block-navigation-link__content:before{content:"\f5b0"}.fa-plane-slash > .wp-block-navigation-link__content:before{content:"\f969"}.fa-play > .wp-block-navigation-link__content:before{content:"\f04b"}.fa-play-circle > .wp-block-navigation-link__content:before{content:"\f144"}.fa-playstation > .wp-block-navigation-link__content:before{content:"\f3df"}.fa-plug > .wp-block-navigation-link__content:before{content:"\f1e6"}.fa-plus > .wp-block-navigation-link__content:before{content:"\f067"}.fa-plus-circle > .wp-block-navigation-link__content:before{content:"\f055"}.fa-plus-square > .wp-block-navigation-link__content:before{content:"\f0fe"}.fa-podcast > .wp-block-navigation-link__content:before{content:"\f2ce"}.fa-poll > .wp-block-navigation-link__content:before{content:"\f681"}.fa-poll-h > .wp-block-navigation-link__content:before{content:"\f682"}.fa-poo > .wp-block-navigation-link__content:before{content:"\f2fe"}.fa-poo-storm > .wp-block-navigation-link__content:before{content:"\f75a"}.fa-poop > .wp-block-navigation-link__content:before{content:"\f619"}.fa-portrait > .wp-block-navigation-link__content:before{content:"\f3e0"}.fa-pound-sign > .wp-block-navigation-link__content:before{content:"\f154"}.fa-power-off > .wp-block-navigation-link__content:before{content:"\f011"}.fa-pray > .wp-block-navigation-link__content:before{content:"\f683"}.fa-praying-hands > .wp-block-navigation-link__content:before{content:"\f684"}.fa-prescription > .wp-block-navigation-link__content:before{content:"\f5b1"}.fa-prescription-bottle > .wp-block-navigation-link__content:before{content:"\f485"}.fa-prescription-bottle-alt > .wp-block-navigation-link__content:before{content:"\f486"}.fa-print > .wp-block-navigation-link__content:before{content:"\f02f"}.fa-procedures > .wp-block-navigation-link__content:before{content:"\f487"}.fa-product-hunt > .wp-block-navigation-link__content:before{content:"\f288"}.fa-project-diagram > .wp-block-navigation-link__content:before{content:"\f542"}.fa-pump-medical > .wp-block-navigation-link__content:before{content:"\f96a"}.fa-pump-soap > .wp-block-navigation-link__content:before{content:"\f96b"}.fa-pushed > .wp-block-navigation-link__content:before{content:"\f3e1"}.fa-puzzle-piece > .wp-block-navigation-link__content:before{content:"\f12e"}.fa-python > .wp-block-navigation-link__content:before{content:"\f3e2"}.fa-qq > .wp-block-navigation-link__content:before{content:"\f1d6"}.fa-qrcode > .wp-block-navigation-link__content:before{content:"\f029"}.fa-question > .wp-block-navigation-link__content:before{content:"\f128"}.fa-question-circle > .wp-block-navigation-link__content:before{content:"\f059"}.fa-quidditch > .wp-block-navigation-link__content:before{content:"\f458"}.fa-quinscape > .wp-block-navigation-link__content:before{content:"\f459"}.fa-quora > .wp-block-navigation-link__content:before{content:"\f2c4"}.fa-quote-left > .wp-block-navigation-link__content:before{content:"\f10d"}.fa-quote-right > .wp-block-navigation-link__content:before{content:"\f10e"}.fa-quran > .wp-block-navigation-link__content:before{content:"\f687"}.fa-r-project > .wp-block-navigation-link__content:before{content:"\f4f7"}.fa-radiation > .wp-block-navigation-link__content:before{content:"\f7b9"}.fa-radiation-alt > .wp-block-navigation-link__content:before{content:"\f7ba"}.fa-rainbow > .wp-block-navigation-link__content:before{content:"\f75b"}.fa-random > .wp-block-navigation-link__content:before{content:"\f074"}.fa-raspberry-pi > .wp-block-navigation-link__content:before{content:"\f7bb"}.fa-ravelry > .wp-block-navigation-link__content:before{content:"\f2d9"}.fa-react > .wp-block-navigation-link__content:before{content:"\f41b"}.fa-reacteurope > .wp-block-navigation-link__content:before{content:"\f75d"}.fa-readme > .wp-block-navigation-link__content:before{content:"\f4d5"}.fa-rebel > .wp-block-navigation-link__content:before{content:"\f1d0"}.fa-receipt > .wp-block-navigation-link__content:before{content:"\f543"}.fa-record-vinyl > .wp-block-navigation-link__content:before{content:"\f8d9"}.fa-recycle > .wp-block-navigation-link__content:before{content:"\f1b8"}.fa-red-river > .wp-block-navigation-link__content:before{content:"\f3e3"}.fa-reddit > .wp-block-navigation-link__content:before{content:"\f1a1"}.fa-reddit-alien > .wp-block-navigation-link__content:before{content:"\f281"}.fa-reddit-square > .wp-block-navigation-link__content:before{content:"\f1a2"}.fa-redhat > .wp-block-navigation-link__content:before{content:"\f7bc"}.fa-redo > .wp-block-navigation-link__content:before{content:"\f01e"}.fa-redo-alt > .wp-block-navigation-link__content:before{content:"\f2f9"}.fa-registered > .wp-block-navigation-link__content:before{content:"\f25d"}.fa-remove-format > .wp-block-navigation-link__content:before{content:"\f87d"}.fa-renren > .wp-block-navigation-link__content:before{content:"\f18b"}.fa-reply > .wp-block-navigation-link__content:before{content:"\f3e5"}.fa-reply-all > .wp-block-navigation-link__content:before{content:"\f122"}.fa-replyd > .wp-block-navigation-link__content:before{content:"\f3e6"}.fa-republican > .wp-block-navigation-link__content:before{content:"\f75e"}.fa-researchgate > .wp-block-navigation-link__content:before{content:"\f4f8"}.fa-resolving > .wp-block-navigation-link__content:before{content:"\f3e7"}.fa-restroom > .wp-block-navigation-link__content:before{content:"\f7bd"}.fa-retweet > .wp-block-navigation-link__content:before{content:"\f079"}.fa-rev > .wp-block-navigation-link__content:before{content:"\f5b2"}.fa-ribbon > .wp-block-navigation-link__content:before{content:"\f4d6"}.fa-ring > .wp-block-navigation-link__content:before{content:"\f70b"}.fa-road > .wp-block-navigation-link__content:before{content:"\f018"}.fa-robot > .wp-block-navigation-link__content:before{content:"\f544"}.fa-rocket > .wp-block-navigation-link__content:before{content:"\f135"}.fa-rocketchat > .wp-block-navigation-link__content:before{content:"\f3e8"}.fa-rockrms > .wp-block-navigation-link__content:before{content:"\f3e9"}.fa-route > .wp-block-navigation-link__content:before{content:"\f4d7"}.fa-rss > .wp-block-navigation-link__content:before{content:"\f09e"}.fa-rss-square > .wp-block-navigation-link__content:before{content:"\f143"}.fa-ruble-sign > .wp-block-navigation-link__content:before{content:"\f158"}.fa-ruler > .wp-block-navigation-link__content:before{content:"\f545"}.fa-ruler-combined > .wp-block-navigation-link__content:before{content:"\f546"}.fa-ruler-horizontal > .wp-block-navigation-link__content:before{content:"\f547"}.fa-ruler-vertical > .wp-block-navigation-link__content:before{content:"\f548"}.fa-running > .wp-block-navigation-link__content:before{content:"\f70c"}.fa-rupee-sign > .wp-block-navigation-link__content:before{content:"\f156"}.fa-sad-cry > .wp-block-navigation-link__content:before{content:"\f5b3"}.fa-sad-tear > .wp-block-navigation-link__content:before{content:"\f5b4"}.fa-safari > .wp-block-navigation-link__content:before{content:"\f267"}.fa-salesforce > .wp-block-navigation-link__content:before{content:"\f83b"}.fa-sass > .wp-block-navigation-link__content:before{content:"\f41e"}.fa-satellite > .wp-block-navigation-link__content:before{content:"\f7bf"}.fa-satellite-dish > .wp-block-navigation-link__content:before{content:"\f7c0"}.fa-save > .wp-block-navigation-link__content:before{content:"\f0c7"}.fa-schlix > .wp-block-navigation-link__content:before{content:"\f3ea"}.fa-school > .wp-block-navigation-link__content:before{content:"\f549"}.fa-screwdriver > .wp-block-navigation-link__content:before{content:"\f54a"}.fa-scribd > .wp-block-navigation-link__content:before{content:"\f28a"}.fa-scroll > .wp-block-navigation-link__content:before{content:"\f70e"}.fa-sd-card > .wp-block-navigation-link__content:before{content:"\f7c2"}.fa-search > .wp-block-navigation-link__content:before{content:"\f002"}.fa-search-dollar > .wp-block-navigation-link__content:before{content:"\f688"}.fa-search-location > .wp-block-navigation-link__content:before{content:"\f689"}.fa-search-minus > .wp-block-navigation-link__content:before{content:"\f010"}.fa-search-plus > .wp-block-navigation-link__content:before{content:"\f00e"}.fa-searchengin > .wp-block-navigation-link__content:before{content:"\f3eb"}.fa-seedling > .wp-block-navigation-link__content:before{content:"\f4d8"}.fa-sellcast > .wp-block-navigation-link__content:before{content:"\f2da"}.fa-sellsy > .wp-block-navigation-link__content:before{content:"\f213"}.fa-server > .wp-block-navigation-link__content:before{content:"\f233"}.fa-servicestack > .wp-block-navigation-link__content:before{content:"\f3ec"}.fa-shapes > .wp-block-navigation-link__content:before{content:"\f61f"}.fa-share > .wp-block-navigation-link__content:before{content:"\f064"}.fa-share-alt > .wp-block-navigation-link__content:before{content:"\f1e0"}.fa-share-alt-square > .wp-block-navigation-link__content:before{content:"\f1e1"}.fa-share-square > .wp-block-navigation-link__content:before{content:"\f14d"}.fa-shekel-sign > .wp-block-navigation-link__content:before{content:"\f20b"}.fa-shield-alt > .wp-block-navigation-link__content:before{content:"\f3ed"}.fa-shield-virus > .wp-block-navigation-link__content:before{content:"\f96c"}.fa-ship > .wp-block-navigation-link__content:before{content:"\f21a"}.fa-shipping-fast > .wp-block-navigation-link__content:before{content:"\f48b"}.fa-shirtsinbulk > .wp-block-navigation-link__content:before{content:"\f214"}.fa-shoe-prints > .wp-block-navigation-link__content:before{content:"\f54b"}.fa-shopify > .wp-block-navigation-link__content:before{content:"\f957"}.fa-shopping-bag > .wp-block-navigation-link__content:before{content:"\f290"}.fa-shopping-basket > .wp-block-navigation-link__content:before{content:"\f291"}.fa-shopping-cart > .wp-block-navigation-link__content:before{content:"\f07a"}.fa-shopware > .wp-block-navigation-link__content:before{content:"\f5b5"}.fa-shower > .wp-block-navigation-link__content:before{content:"\f2cc"}.fa-shuttle-van > .wp-block-navigation-link__content:before{content:"\f5b6"}.fa-sign > .wp-block-navigation-link__content:before{content:"\f4d9"}.fa-sign-in-alt > .wp-block-navigation-link__content:before{content:"\f2f6"}.fa-sign-language > .wp-block-navigation-link__content:before{content:"\f2a7"}.fa-sign-out-alt > .wp-block-navigation-link__content:before{content:"\f2f5"}.fa-signal > .wp-block-navigation-link__content:before{content:"\f012"}.fa-signature > .wp-block-navigation-link__content:before{content:"\f5b7"}.fa-sim-card > .wp-block-navigation-link__content:before{content:"\f7c4"}.fa-simplybuilt > .wp-block-navigation-link__content:before{content:"\f215"}.fa-sistrix > .wp-block-navigation-link__content:before{content:"\f3ee"}.fa-sitemap > .wp-block-navigation-link__content:before{content:"\f0e8"}.fa-sith > .wp-block-navigation-link__content:before{content:"\f512"}.fa-skating > .wp-block-navigation-link__content:before{content:"\f7c5"}.fa-sketch > .wp-block-navigation-link__content:before{content:"\f7c6"}.fa-skiing > .wp-block-navigation-link__content:before{content:"\f7c9"}.fa-skiing-nordic > .wp-block-navigation-link__content:before{content:"\f7ca"}.fa-skull > .wp-block-navigation-link__content:before{content:"\f54c"}.fa-skull-crossbones > .wp-block-navigation-link__content:before{content:"\f714"}.fa-skyatlas > .wp-block-navigation-link__content:before{content:"\f216"}.fa-skype > .wp-block-navigation-link__content:before{content:"\f17e"}.fa-slack > .wp-block-navigation-link__content:before{content:"\f198"}.fa-slack-hash > .wp-block-navigation-link__content:before{content:"\f3ef"}.fa-slash > .wp-block-navigation-link__content:before{content:"\f715"}.fa-sleigh > .wp-block-navigation-link__content:before{content:"\f7cc"}.fa-sliders-h > .wp-block-navigation-link__content:before{content:"\f1de"}.fa-slideshare > .wp-block-navigation-link__content:before{content:"\f1e7"}.fa-smile > .wp-block-navigation-link__content:before{content:"\f118"}.fa-smile-beam > .wp-block-navigation-link__content:before{content:"\f5b8"}.fa-smile-wink > .wp-block-navigation-link__content:before{content:"\f4da"}.fa-smog > .wp-block-navigation-link__content:before{content:"\f75f"}.fa-smoking > .wp-block-navigation-link__content:before{content:"\f48d"}.fa-smoking-ban > .wp-block-navigation-link__content:before{content:"\f54d"}.fa-sms > .wp-block-navigation-link__content:before{content:"\f7cd"}.fa-snapchat > .wp-block-navigation-link__content:before{content:"\f2ab"}.fa-snapchat-ghost > .wp-block-navigation-link__content:before{content:"\f2ac"}.fa-snapchat-square > .wp-block-navigation-link__content:before{content:"\f2ad"}.fa-snowboarding > .wp-block-navigation-link__content:before{content:"\f7ce"}.fa-snowflake > .wp-block-navigation-link__content:before{content:"\f2dc"}.fa-snowman > .wp-block-navigation-link__content:before{content:"\f7d0"}.fa-snowplow > .wp-block-navigation-link__content:before{content:"\f7d2"}.fa-soap > .wp-block-navigation-link__content:before{content:"\f96e"}.fa-socks > .wp-block-navigation-link__content:before{content:"\f696"}.fa-solar-panel > .wp-block-navigation-link__content:before{content:"\f5ba"}.fa-sort > .wp-block-navigation-link__content:before{content:"\f0dc"}.fa-sort-alpha-down > .wp-block-navigation-link__content:before{content:"\f15d"}.fa-sort-alpha-down-alt > .wp-block-navigation-link__content:before{content:"\f881"}.fa-sort-alpha-up > .wp-block-navigation-link__content:before{content:"\f15e"}.fa-sort-alpha-up-alt > .wp-block-navigation-link__content:before{content:"\f882"}.fa-sort-amount-down > .wp-block-navigation-link__content:before{content:"\f160"}.fa-sort-amount-down-alt > .wp-block-navigation-link__content:before{content:"\f884"}.fa-sort-amount-up > .wp-block-navigation-link__content:before{content:"\f161"}.fa-sort-amount-up-alt > .wp-block-navigation-link__content:before{content:"\f885"}.fa-sort-down > .wp-block-navigation-link__content:before{content:"\f0dd"}.fa-sort-numeric-down > .wp-block-navigation-link__content:before{content:"\f162"}.fa-sort-numeric-down-alt > .wp-block-navigation-link__content:before{content:"\f886"}.fa-sort-numeric-up > .wp-block-navigation-link__content:before{content:"\f163"}.fa-sort-numeric-up-alt > .wp-block-navigation-link__content:before{content:"\f887"}.fa-sort-up > .wp-block-navigation-link__content:before{content:"\f0de"}.fa-soundcloud > .wp-block-navigation-link__content:before{content:"\f1be"}.fa-sourcetree > .wp-block-navigation-link__content:before{content:"\f7d3"}.fa-spa > .wp-block-navigation-link__content:before{content:"\f5bb"}.fa-space-shuttle > .wp-block-navigation-link__content:before{content:"\f197"}.fa-speakap > .wp-block-navigation-link__content:before{content:"\f3f3"}.fa-speaker-deck > .wp-block-navigation-link__content:before{content:"\f83c"}.fa-spell-check > .wp-block-navigation-link__content:before{content:"\f891"}.fa-spider > .wp-block-navigation-link__content:before{content:"\f717"}.fa-spinner > .wp-block-navigation-link__content:before{content:"\f110"}.fa-splotch > .wp-block-navigation-link__content:before{content:"\f5bc"}.fa-spotify > .wp-block-navigation-link__content:before{content:"\f1bc"}.fa-spray-can > .wp-block-navigation-link__content:before{content:"\f5bd"}.fa-square > .wp-block-navigation-link__content:before{content:"\f0c8"}.fa-square-full > .wp-block-navigation-link__content:before{content:"\f45c"}.fa-square-root-alt > .wp-block-navigation-link__content:before{content:"\f698"}.fa-squarespace > .wp-block-navigation-link__content:before{content:"\f5be"}.fa-stack-exchange > .wp-block-navigation-link__content:before{content:"\f18d"}.fa-stack-overflow > .wp-block-navigation-link__content:before{content:"\f16c"}.fa-stackpath > .wp-block-navigation-link__content:before{content:"\f842"}.fa-stamp > .wp-block-navigation-link__content:before{content:"\f5bf"}.fa-star > .wp-block-navigation-link__content:before{content:"\f005"}.fa-star-and-crescent > .wp-block-navigation-link__content:before{content:"\f699"}.fa-star-half > .wp-block-navigation-link__content:before{content:"\f089"}.fa-star-half-alt > .wp-block-navigation-link__content:before{content:"\f5c0"}.fa-star-of-david > .wp-block-navigation-link__content:before{content:"\f69a"}.fa-star-of-life > .wp-block-navigation-link__content:before{content:"\f621"}.fa-staylinked > .wp-block-navigation-link__content:before{content:"\f3f5"}.fa-steam > .wp-block-navigation-link__content:before{content:"\f1b6"}.fa-steam-square > .wp-block-navigation-link__content:before{content:"\f1b7"}.fa-steam-symbol > .wp-block-navigation-link__content:before{content:"\f3f6"}.fa-step-backward > .wp-block-navigation-link__content:before{content:"\f048"}.fa-step-forward > .wp-block-navigation-link__content:before{content:"\f051"}.fa-stethoscope > .wp-block-navigation-link__content:before{content:"\f0f1"}.fa-sticker-mule > .wp-block-navigation-link__content:before{content:"\f3f7"}.fa-sticky-note > .wp-block-navigation-link__content:before{content:"\f249"}.fa-stop > .wp-block-navigation-link__content:before{content:"\f04d"}.fa-stop-circle > .wp-block-navigation-link__content:before{content:"\f28d"}.fa-stopwatch > .wp-block-navigation-link__content:before{content:"\f2f2"}.fa-stopwatch-20 > .wp-block-navigation-link__content:before{content:"\f96f"}.fa-store > .wp-block-navigation-link__content:before{content:"\f54e"}.fa-store-alt > .wp-block-navigation-link__content:before{content:"\f54f"}.fa-store-alt-slash > .wp-block-navigation-link__content:before{content:"\f970"}.fa-store-slash > .wp-block-navigation-link__content:before{content:"\f971"}.fa-strava > .wp-block-navigation-link__content:before{content:"\f428"}.fa-stream > .wp-block-navigation-link__content:before{content:"\f550"}.fa-street-view > .wp-block-navigation-link__content:before{content:"\f21d"}.fa-strikethrough > .wp-block-navigation-link__content:before{content:"\f0cc"}.fa-stripe > .wp-block-navigation-link__content:before{content:"\f429"}.fa-stripe-s > .wp-block-navigation-link__content:before{content:"\f42a"}.fa-stroopwafel > .wp-block-navigation-link__content:before{content:"\f551"}.fa-studiovinari > .wp-block-navigation-link__content:before{content:"\f3f8"}.fa-stumbleupon > .wp-block-navigation-link__content:before{content:"\f1a4"}.fa-stumbleupon-circle > .wp-block-navigation-link__content:before{content:"\f1a3"}.fa-subscript > .wp-block-navigation-link__content:before{content:"\f12c"}.fa-subway > .wp-block-navigation-link__content:before{content:"\f239"}.fa-suitcase > .wp-block-navigation-link__content:before{content:"\f0f2"}.fa-suitcase-rolling > .wp-block-navigation-link__content:before{content:"\f5c1"}.fa-sun > .wp-block-navigation-link__content:before{content:"\f185"}.fa-superpowers > .wp-block-navigation-link__content:before{content:"\f2dd"}.fa-superscript > .wp-block-navigation-link__content:before{content:"\f12b"}.fa-supple > .wp-block-navigation-link__content:before{content:"\f3f9"}.fa-surprise > .wp-block-navigation-link__content:before{content:"\f5c2"}.fa-suse > .wp-block-navigation-link__content:before{content:"\f7d6"}.fa-swatchbook > .wp-block-navigation-link__content:before{content:"\f5c3"}.fa-swift > .wp-block-navigation-link__content:before{content:"\f8e1"}.fa-swimmer > .wp-block-navigation-link__content:before{content:"\f5c4"}.fa-swimming-pool > .wp-block-navigation-link__content:before{content:"\f5c5"}.fa-symfony > .wp-block-navigation-link__content:before{content:"\f83d"}.fa-synagogue > .wp-block-navigation-link__content:before{content:"\f69b"}.fa-sync > .wp-block-navigation-link__content:before{content:"\f021"}.fa-sync-alt > .wp-block-navigation-link__content:before{content:"\f2f1"}.fa-syringe > .wp-block-navigation-link__content:before{content:"\f48e"}.fa-table > .wp-block-navigation-link__content:before{content:"\f0ce"}.fa-table-tennis > .wp-block-navigation-link__content:before{content:"\f45d"}.fa-tablet > .wp-block-navigation-link__content:before{content:"\f10a"}.fa-tablet-alt > .wp-block-navigation-link__content:before{content:"\f3fa"}.fa-tablets > .wp-block-navigation-link__content:before{content:"\f490"}.fa-tachometer-alt > .wp-block-navigation-link__content:before{content:"\f3fd"}.fa-tag > .wp-block-navigation-link__content:before{content:"\f02b"}.fa-tags > .wp-block-navigation-link__content:before{content:"\f02c"}.fa-tape > .wp-block-navigation-link__content:before{content:"\f4db"}.fa-tasks > .wp-block-navigation-link__content:before{content:"\f0ae"}.fa-taxi > .wp-block-navigation-link__content:before{content:"\f1ba"}.fa-teamspeak > .wp-block-navigation-link__content:before{content:"\f4f9"}.fa-teeth > .wp-block-navigation-link__content:before{content:"\f62e"}.fa-teeth-open > .wp-block-navigation-link__content:before{content:"\f62f"}.fa-telegram > .wp-block-navigation-link__content:before{content:"\f2c6"}.fa-telegram-plane > .wp-block-navigation-link__content:before{content:"\f3fe"}.fa-temperature-high > .wp-block-navigation-link__content:before{content:"\f769"}.fa-temperature-low > .wp-block-navigation-link__content:before{content:"\f76b"}.fa-tencent-weibo > .wp-block-navigation-link__content:before{content:"\f1d5"}.fa-tenge > .wp-block-navigation-link__content:before{content:"\f7d7"}.fa-terminal > .wp-block-navigation-link__content:before{content:"\f120"}.fa-text-height > .wp-block-navigation-link__content:before{content:"\f034"}.fa-text-width > .wp-block-navigation-link__content:before{content:"\f035"}.fa-th > .wp-block-navigation-link__content:before{content:"\f00a"}.fa-th-large > .wp-block-navigation-link__content:before{content:"\f009"}.fa-th-list > .wp-block-navigation-link__content:before{content:"\f00b"}.fa-the-red-yeti > .wp-block-navigation-link__content:before{content:"\f69d"}.fa-theater-masks > .wp-block-navigation-link__content:before{content:"\f630"}.fa-themeco > .wp-block-navigation-link__content:before{content:"\f5c6"}.fa-themeisle > .wp-block-navigation-link__content:before{content:"\f2b2"}.fa-thermometer > .wp-block-navigation-link__content:before{content:"\f491"}.fa-thermometer-empty > .wp-block-navigation-link__content:before{content:"\f2cb"}.fa-thermometer-full > .wp-block-navigation-link__content:before{content:"\f2c7"}.fa-thermometer-half > .wp-block-navigation-link__content:before{content:"\f2c9"}.fa-thermometer-quarter > .wp-block-navigation-link__content:before{content:"\f2ca"}.fa-thermometer-three-quarters > .wp-block-navigation-link__content:before{content:"\f2c8"}.fa-think-peaks > .wp-block-navigation-link__content:before{content:"\f731"}.fa-thumbs-down > .wp-block-navigation-link__content:before{content:"\f165"}.fa-thumbs-up > .wp-block-navigation-link__content:before{content:"\f164"}.fa-thumbtack > .wp-block-navigation-link__content:before{content:"\f08d"}.fa-ticket-alt > .wp-block-navigation-link__content:before{content:"\f3ff"}.fa-times > .wp-block-navigation-link__content:before{content:"\f00d"}.fa-times-circle > .wp-block-navigation-link__content:before{content:"\f057"}.fa-tint > .wp-block-navigation-link__content:before{content:"\f043"}.fa-tint-slash > .wp-block-navigation-link__content:before{content:"\f5c7"}.fa-tired > .wp-block-navigation-link__content:before{content:"\f5c8"}.fa-toggle-off > .wp-block-navigation-link__content:before{content:"\f204"}.fa-toggle-on > .wp-block-navigation-link__content:before{content:"\f205"}.fa-toilet > .wp-block-navigation-link__content:before{content:"\f7d8"}.fa-toilet-paper > .wp-block-navigation-link__content:before{content:"\f71e"}.fa-toilet-paper-slash > .wp-block-navigation-link__content:before{content:"\f972"}.fa-toolbox > .wp-block-navigation-link__content:before{content:"\f552"}.fa-tools > .wp-block-navigation-link__content:before{content:"\f7d9"}.fa-tooth > .wp-block-navigation-link__content:before{content:"\f5c9"}.fa-torah > .wp-block-navigation-link__content:before{content:"\f6a0"}.fa-torii-gate > .wp-block-navigation-link__content:before{content:"\f6a1"}.fa-tractor > .wp-block-navigation-link__content:before{content:"\f722"}.fa-trade-federation > .wp-block-navigation-link__content:before{content:"\f513"}.fa-trademark > .wp-block-navigation-link__content:before{content:"\f25c"}.fa-traffic-light > .wp-block-navigation-link__content:before{content:"\f637"}.fa-trailer > .wp-block-navigation-link__content:before{content:"\f941"}.fa-train > .wp-block-navigation-link__content:before{content:"\f238"}.fa-tram > .wp-block-navigation-link__content:before{content:"\f7da"}.fa-transgender > .wp-block-navigation-link__content:before{content:"\f224"}.fa-transgender-alt > .wp-block-navigation-link__content:before{content:"\f225"}.fa-trash > .wp-block-navigation-link__content:before{content:"\f1f8"}.fa-trash-alt > .wp-block-navigation-link__content:before{content:"\f2ed"}.fa-trash-restore > .wp-block-navigation-link__content:before{content:"\f829"}.fa-trash-restore-alt > .wp-block-navigation-link__content:before{content:"\f82a"}.fa-tree > .wp-block-navigation-link__content:before{content:"\f1bb"}.fa-trello > .wp-block-navigation-link__content:before{content:"\f181"}.fa-tripadvisor > .wp-block-navigation-link__content:before{content:"\f262"}.fa-trophy > .wp-block-navigation-link__content:before{content:"\f091"}.fa-truck > .wp-block-navigation-link__content:before{content:"\f0d1"}.fa-truck-loading > .wp-block-navigation-link__content:before{content:"\f4de"}.fa-truck-monster > .wp-block-navigation-link__content:before{content:"\f63b"}.fa-truck-moving > .wp-block-navigation-link__content:before{content:"\f4df"}.fa-truck-pickup > .wp-block-navigation-link__content:before{content:"\f63c"}.fa-tshirt > .wp-block-navigation-link__content:before{content:"\f553"}.fa-tty > .wp-block-navigation-link__content:before{content:"\f1e4"}.fa-tumblr > .wp-block-navigation-link__content:before{content:"\f173"}.fa-tumblr-square > .wp-block-navigation-link__content:before{content:"\f174"}.fa-tv > .wp-block-navigation-link__content:before{content:"\f26c"}.fa-twitch > .wp-block-navigation-link__content:before{content:"\f1e8"}.fa-twitter > .wp-block-navigation-link__content:before{content:"\f099"}.fa-twitter-square > .wp-block-navigation-link__content:before{content:"\f081"}.fa-typo3 > .wp-block-navigation-link__content:before{content:"\f42b"}.fa-uber > .wp-block-navigation-link__content:before{content:"\f402"}.fa-ubuntu > .wp-block-navigation-link__content:before{content:"\f7df"}.fa-uikit > .wp-block-navigation-link__content:before{content:"\f403"}.fa-umbraco > .wp-block-navigation-link__content:before{content:"\f8e8"}.fa-umbrella > .wp-block-navigation-link__content:before{content:"\f0e9"}.fa-umbrella-beach > .wp-block-navigation-link__content:before{content:"\f5ca"}.fa-underline > .wp-block-navigation-link__content:before{content:"\f0cd"}.fa-undo > .wp-block-navigation-link__content:before{content:"\f0e2"}.fa-undo-alt > .wp-block-navigation-link__content:before{content:"\f2ea"}.fa-uniregistry > .wp-block-navigation-link__content:before{content:"\f404"}.fa-unity > .wp-block-navigation-link__content:before{content:"\f949"}.fa-universal-access > .wp-block-navigation-link__content:before{content:"\f29a"}.fa-university > .wp-block-navigation-link__content:before{content:"\f19c"}.fa-unlink > .wp-block-navigation-link__content:before{content:"\f127"}.fa-unlock > .wp-block-navigation-link__content:before{content:"\f09c"}.fa-unlock-alt > .wp-block-navigation-link__content:before{content:"\f13e"}.fa-untappd > .wp-block-navigation-link__content:before{content:"\f405"}.fa-upload > .wp-block-navigation-link__content:before{content:"\f093"}.fa-ups > .wp-block-navigation-link__content:before{content:"\f7e0"}.fa-usb > .wp-block-navigation-link__content:before{content:"\f287"}.fa-user > .wp-block-navigation-link__content:before{content:"\f007"}.fa-user-alt > .wp-block-navigation-link__content:before{content:"\f406"}.fa-user-alt-slash > .wp-block-navigation-link__content:before{content:"\f4fa"}.fa-user-astronaut > .wp-block-navigation-link__content:before{content:"\f4fb"}.fa-user-check > .wp-block-navigation-link__content:before{content:"\f4fc"}.fa-user-circle > .wp-block-navigation-link__content:before{content:"\f2bd"}.fa-user-clock > .wp-block-navigation-link__content:before{content:"\f4fd"}.fa-user-cog > .wp-block-navigation-link__content:before{content:"\f4fe"}.fa-user-edit > .wp-block-navigation-link__content:before{content:"\f4ff"}.fa-user-friends > .wp-block-navigation-link__content:before{content:"\f500"}.fa-user-graduate > .wp-block-navigation-link__content:before{content:"\f501"}.fa-user-injured > .wp-block-navigation-link__content:before{content:"\f728"}.fa-user-lock > .wp-block-navigation-link__content:before{content:"\f502"}.fa-user-md > .wp-block-navigation-link__content:before{content:"\f0f0"}.fa-user-minus > .wp-block-navigation-link__content:before{content:"\f503"}.fa-user-ninja > .wp-block-navigation-link__content:before{content:"\f504"}.fa-user-nurse > .wp-block-navigation-link__content:before{content:"\f82f"}.fa-user-plus > .wp-block-navigation-link__content:before{content:"\f234"}.fa-user-secret > .wp-block-navigation-link__content:before{content:"\f21b"}.fa-user-shield > .wp-block-navigation-link__content:before{content:"\f505"}.fa-user-slash > .wp-block-navigation-link__content:before{content:"\f506"}.fa-user-tag > .wp-block-navigation-link__content:before{content:"\f507"}.fa-user-tie > .wp-block-navigation-link__content:before{content:"\f508"}.fa-user-times > .wp-block-navigation-link__content:before{content:"\f235"}.fa-users > .wp-block-navigation-link__content:before{content:"\f0c0"}.fa-users-cog > .wp-block-navigation-link__content:before{content:"\f509"}.fa-usps > .wp-block-navigation-link__content:before{content:"\f7e1"}.fa-ussunnah > .wp-block-navigation-link__content:before{content:"\f407"}.fa-utensil-spoon > .wp-block-navigation-link__content:before{content:"\f2e5"}.fa-utensils > .wp-block-navigation-link__content:before{content:"\f2e7"}.fa-vaadin > .wp-block-navigation-link__content:before{content:"\f408"}.fa-vector-square > .wp-block-navigation-link__content:before{content:"\f5cb"}.fa-venus > .wp-block-navigation-link__content:before{content:"\f221"}.fa-venus-double > .wp-block-navigation-link__content:before{content:"\f226"}.fa-venus-mars > .wp-block-navigation-link__content:before{content:"\f228"}.fa-viacoin > .wp-block-navigation-link__content:before{content:"\f237"}.fa-viadeo > .wp-block-navigation-link__content:before{content:"\f2a9"}.fa-viadeo-square > .wp-block-navigation-link__content:before{content:"\f2aa"}.fa-vial > .wp-block-navigation-link__content:before{content:"\f492"}.fa-vials > .wp-block-navigation-link__content:before{content:"\f493"}.fa-viber > .wp-block-navigation-link__content:before{content:"\f409"}.fa-video > .wp-block-navigation-link__content:before{content:"\f03d"}.fa-video-slash > .wp-block-navigation-link__content:before{content:"\f4e2"}.fa-vihara > .wp-block-navigation-link__content:before{content:"\f6a7"}.fa-vimeo > .wp-block-navigation-link__content:before{content:"\f40a"}.fa-vimeo-square > .wp-block-navigation-link__content:before{content:"\f194"}.fa-vimeo-v > .wp-block-navigation-link__content:before{content:"\f27d"}.fa-vine > .wp-block-navigation-link__content:before{content:"\f1ca"}.fa-virus > .wp-block-navigation-link__content:before{content:"\f974"}.fa-virus-slash > .wp-block-navigation-link__content:before{content:"\f975"}.fa-viruses > .wp-block-navigation-link__content:before{content:"\f976"}.fa-vk > .wp-block-navigation-link__content:before{content:"\f189"}.fa-vnv > .wp-block-navigation-link__content:before{content:"\f40b"}.fa-voicemail > .wp-block-navigation-link__content:before{content:"\f897"}.fa-volleyball-ball > .wp-block-navigation-link__content:before{content:"\f45f"}.fa-volume-down > .wp-block-navigation-link__content:before{content:"\f027"}.fa-volume-mute > .wp-block-navigation-link__content:before{content:"\f6a9"}.fa-volume-off > .wp-block-navigation-link__content:before{content:"\f026"}.fa-volume-up > .wp-block-navigation-link__content:before{content:"\f028"}.fa-vote-yea > .wp-block-navigation-link__content:before{content:"\f772"}.fa-vr-cardboard > .wp-block-navigation-link__content:before{content:"\f729"}.fa-vuejs > .wp-block-navigation-link__content:before{content:"\f41f"}.fa-walking > .wp-block-navigation-link__content:before{content:"\f554"}.fa-wallet > .wp-block-navigation-link__content:before{content:"\f555"}.fa-warehouse > .wp-block-navigation-link__content:before{content:"\f494"}.fa-water > .wp-block-navigation-link__content:before{content:"\f773"}.fa-wave-square > .wp-block-navigation-link__content:before{content:"\f83e"}.fa-waze > .wp-block-navigation-link__content:before{content:"\f83f"}.fa-weebly > .wp-block-navigation-link__content:before{content:"\f5cc"}.fa-weibo > .wp-block-navigation-link__content:before{content:"\f18a"}.fa-weight > .wp-block-navigation-link__content:before{content:"\f496"}.fa-weight-hanging > .wp-block-navigation-link__content:before{content:"\f5cd"}.fa-weixin > .wp-block-navigation-link__content:before{content:"\f1d7"}.fa-whatsapp > .wp-block-navigation-link__content:before{content:"\f232"}.fa-whatsapp-square > .wp-block-navigation-link__content:before{content:"\f40c"}.fa-wheelchair > .wp-block-navigation-link__content:before{content:"\f193"}.fa-whmcs > .wp-block-navigation-link__content:before{content:"\f40d"}.fa-wifi > .wp-block-navigation-link__content:before{content:"\f1eb"}.fa-wikipedia-w > .wp-block-navigation-link__content:before{content:"\f266"}.fa-wind > .wp-block-navigation-link__content:before{content:"\f72e"}.fa-window-close > .wp-block-navigation-link__content:before{content:"\f410"}.fa-window-maximize > .wp-block-navigation-link__content:before{content:"\f2d0"}.fa-window-minimize > .wp-block-navigation-link__content:before{content:"\f2d1"}.fa-window-restore > .wp-block-navigation-link__content:before{content:"\f2d2"}.fa-windows > .wp-block-navigation-link__content:before{content:"\f17a"}.fa-wine-bottle > .wp-block-navigation-link__content:before{content:"\f72f"}.fa-wine-glass > .wp-block-navigation-link__content:before{content:"\f4e3"}.fa-wine-glass-alt > .wp-block-navigation-link__content:before{content:"\f5ce"}.fa-wix > .wp-block-navigation-link__content:before{content:"\f5cf"}.fa-wizards-of-the-coast > .wp-block-navigation-link__content:before{content:"\f730"}.fa-wolf-pack-battalion > .wp-block-navigation-link__content:before{content:"\f514"}.fa-won-sign > .wp-block-navigation-link__content:before{content:"\f159"}.fa-wordpress > .wp-block-navigation-link__content:before{content:"\f19a"}.fa-wordpress-simple > .wp-block-navigation-link__content:before{content:"\f411"}.fa-wpbeginner > .wp-block-navigation-link__content:before{content:"\f297"}.fa-wpexplorer > .wp-block-navigation-link__content:before{content:"\f2de"}.fa-wpforms > .wp-block-navigation-link__content:before{content:"\f298"}.fa-wpressr > .wp-block-navigation-link__content:before{content:"\f3e4"}.fa-wrench > .wp-block-navigation-link__content:before{content:"\f0ad"}.fa-x-ray > .wp-block-navigation-link__content:before{content:"\f497"}.fa-xbox > .wp-block-navigation-link__content:before{content:"\f412"}.fa-xing > .wp-block-navigation-link__content:before{content:"\f168"}.fa-xing-square > .wp-block-navigation-link__content:before{content:"\f169"}.fa-y-combinator > .wp-block-navigation-link__content:before{content:"\f23b"}.fa-yahoo > .wp-block-navigation-link__content:before{content:"\f19e"}.fa-yammer > .wp-block-navigation-link__content:before{content:"\f840"}.fa-yandex > .wp-block-navigation-link__content:before{content:"\f413"}.fa-yandex-international > .wp-block-navigation-link__content:before{content:"\f414"}.fa-yarn > .wp-block-navigation-link__content:before{content:"\f7e3"}.fa-yelp > .wp-block-navigation-link__content:before{content:"\f1e9"}.fa-yen-sign > .wp-block-navigation-link__content:before{content:"\f157"}.fa-yin-yang > .wp-block-navigation-link__content:before{content:"\f6ad"}.fa-yoast > .wp-block-navigation-link__content:before{content:"\f2b1"}.fa-youtube > .wp-block-navigation-link__content:before{content:"\f167"}.fa-youtube-square > .wp-block-navigation-link__content:before{content:"\f431"}.fa-zhihu > .wp-block-navigation-link__content:before{content:"\f63f"}.sr-only .wp-block-navigation-link__content{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active .wp-block-navigation-link__content,.sr-only-focusable:focus .wp-block-navigation-link__content{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.fab .wp-block-navigation-link__content{font-family:'Font Awesome 5 Brands';font-weight:400}.far > .wp-block-navigation-link__content:before{font-family:'Font Awesome 5 Free';font-weight:400}.fa .wp-block-navigation-link__content:before,.fas > .wp-block-navigation-link__content:before{font-family:'Font Awesome 5 Free';font-weight:900}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.asset.php
new file mode 100644
index 00000000..c1fdad06
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.asset.php
@@ -0,0 +1 @@
+ array('wp-polyfill'), 'version' => '0168e17510d72c2dc5a2d893e33e5086');
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.js
new file mode 100644
index 00000000..730f4bf3
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/frontend.js
@@ -0,0 +1 @@
+(window.webpackJsonp_themeisle_gutenberg_menu_icons=window.webpackJsonp_themeisle_gutenberg_menu_icons||[]).push([[2],{9:function(e,n,t){}}]),function(e){function n(n){for(var r,u,c=n[0],l=n[1],s=n[2],f=0,p=[];f{const n=e.querySelector(".wp-block-navigation-link__content");let t=Array.from(e.classList);const r=t.find(e=>e.includes("fab")||e.includes("far")||e.includes("fas"))||"fas",o=t.find(e=>e.includes("fa-"));o&&(e.classList.remove(r,o),n.classList.add(r,o))})}});
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.asset.php
new file mode 100644
index 00000000..5fe59333
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.asset.php
@@ -0,0 +1 @@
+ array('wp-block-editor', 'wp-components', 'wp-compose', 'wp-element', 'wp-hooks', 'wp-i18n', 'wp-polyfill'), 'version' => '2c1513ca91e5dc3cbe8c5cbdd71ea894');
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.css
new file mode 100644
index 00000000..9b8452c5
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.css
@@ -0,0 +1 @@
+.wp-block-themeisle-blocks-menu-icon-picker-popover:not(.is-mobile).is-bottom{z-index:9999999}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content{overflow-y:hidden}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-menu-group{padding:7px}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items{max-height:300px;overflow-y:auto;display:-ms-grid;display:grid;-ms-grid-columns:auto auto auto auto;grid-template-columns:auto auto auto auto;grid-column-gap:10px;grid-row-gap:10px}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items .components-button{display:flex;justify-content:center}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items .components-button:hover{box-shadow:inset 0 0 0 1px #007cba}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items .components-button.is-selected{background:#f8f9f9}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items .components-button.is-selected i{color:#007cba}.wp-block-themeisle-blocks-menu-icon-picker-popover .components-popover__content .components-popover__items .components-button i.remove-icon{color:#d92222}.fas.wp-block-navigation-link,.fab.wp-block-navigation-link,.far.wp-block-navigation-link{display:flex;align-items:center;font-weight:inherit;-moz-osx-font-smoothing:inherit;-webkit-font-smoothing:inherit;line-height:inherit}.fas.wp-block-navigation-link:before,.fab.wp-block-navigation-link:before,.far.wp-block-navigation-link:before{margin-right:5px}.fas.wp-block-navigation-link .wp-block-navigation-link__content,.fab.wp-block-navigation-link .wp-block-navigation-link__content,.far.wp-block-navigation-link .wp-block-navigation-link__content{display:flex;font-weight:inherit;-moz-osx-font-smoothing:inherit;-webkit-font-smoothing:inherit}.fas.wp-block-navigation-link .wp-block-navigation-link__content:before,.fab.wp-block-navigation-link .wp-block-navigation-link__content:before,.far.wp-block-navigation-link .wp-block-navigation-link__content:before{margin-right:5px}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.js
new file mode 100644
index 00000000..2a65fe24
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/index.js
@@ -0,0 +1 @@
+!function(e){var s={};function a(l){if(s[l])return s[l].exports;var r=s[l]={i:l,l:!1,exports:{}};return e[l].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=s,a.d=function(e,s,l){a.o(e,s)||Object.defineProperty(e,s,{enumerable:!0,get:l})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,s){if(1&s&&(e=a(e)),8&s)return e;if(4&s&&"object"==typeof e&&e&&e.__esModule)return e;var l=Object.create(null);if(a.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:e}),2&s&&"string"!=typeof e)for(var r in e)a.d(l,r,function(s){return e[s]}.bind(null,r));return l},a.n=function(e){var s=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(s,"a",s),s},a.o=function(e,s){return Object.prototype.hasOwnProperty.call(e,s)},a.p="",a(a.s=10)}([function(e,s){e.exports=window.wp.element},function(e,s){e.exports=window.wp.components},function(e){e.exports=JSON.parse('{"500px":{"search":{"terms":[]},"styles":["brands"],"unicode":"f26e","label":"500px"},"accessible-icon":{"search":{"terms":["accessibility","handicap","person","wheelchair","wheelchair-alt"]},"styles":["brands"],"unicode":"f368","label":"Accessible Icon"},"accusoft":{"search":{"terms":[]},"styles":["brands"],"unicode":"f369","label":"Accusoft"},"acquisitions-incorporated":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},"styles":["brands"],"unicode":"f6af","label":"Acquisitions Incorporated"},"ad":{"search":{"terms":["advertisement","media","newspaper","promotion","publicity"]},"styles":["solid"],"unicode":"f641","label":"Ad"},"address-book":{"search":{"terms":["contact","directory","index","little black book","rolodex"]},"styles":["solid","regular"],"unicode":"f2b9","label":"Address Book"},"address-card":{"search":{"terms":["about","contact","id","identification","postcard","profile"]},"styles":["solid","regular"],"unicode":"f2bb","label":"Address Card"},"adjust":{"search":{"terms":["contrast","dark","light","saturation"]},"styles":["solid"],"unicode":"f042","label":"adjust"},"adn":{"search":{"terms":[]},"styles":["brands"],"unicode":"f170","label":"App.net"},"adobe":{"search":{"terms":["acrobat","app","design","illustrator","indesign","photoshop"]},"styles":["brands"],"unicode":"f778","label":"Adobe"},"adversal":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36a","label":"Adversal"},"affiliatetheme":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36b","label":"affiliatetheme"},"air-freshener":{"search":{"terms":["car","deodorize","fresh","pine","scent"]},"styles":["solid"],"unicode":"f5d0","label":"Air Freshener"},"airbnb":{"search":{"terms":[]},"styles":["brands"],"unicode":"f834","label":"Airbnb"},"algolia":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36c","label":"Algolia"},"align-center":{"search":{"terms":["format","middle","paragraph","text"]},"styles":["solid"],"unicode":"f037","label":"align-center"},"align-justify":{"search":{"terms":["format","paragraph","text"]},"styles":["solid"],"unicode":"f039","label":"align-justify"},"align-left":{"search":{"terms":["format","paragraph","text"]},"styles":["solid"],"unicode":"f036","label":"align-left"},"align-right":{"search":{"terms":["format","paragraph","text"]},"styles":["solid"],"unicode":"f038","label":"align-right"},"alipay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f642","label":"Alipay"},"allergies":{"search":{"terms":["allergy","freckles","hand","hives","pox","skin","spots"]},"styles":["solid"],"unicode":"f461","label":"Allergies"},"amazon":{"search":{"terms":[]},"styles":["brands"],"unicode":"f270","label":"Amazon"},"amazon-pay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42c","label":"Amazon Pay"},"ambulance":{"search":{"terms":["covid-19","emergency","emt","er","help","hospital","support","vehicle"]},"styles":["solid"],"unicode":"f0f9","label":"ambulance"},"american-sign-language-interpreting":{"search":{"terms":["asl","deaf","finger","hand","interpret","speak"]},"styles":["solid"],"unicode":"f2a3","label":"American Sign Language Interpreting"},"amilia":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36d","label":"Amilia"},"anchor":{"search":{"terms":["berth","boat","dock","embed","link","maritime","moor","secure"]},"styles":["solid"],"unicode":"f13d","label":"Anchor"},"android":{"search":{"terms":["robot"]},"styles":["brands"],"unicode":"f17b","label":"Android"},"angellist":{"search":{"terms":[]},"styles":["brands"],"unicode":"f209","label":"AngelList"},"angle-double-down":{"search":{"terms":["arrows","caret","download","expand"]},"styles":["solid"],"unicode":"f103","label":"Angle Double Down"},"angle-double-left":{"search":{"terms":["arrows","back","caret","laquo","previous","quote"]},"styles":["solid"],"unicode":"f100","label":"Angle Double Left"},"angle-double-right":{"search":{"terms":["arrows","caret","forward","more","next","quote","raquo"]},"styles":["solid"],"unicode":"f101","label":"Angle Double Right"},"angle-double-up":{"search":{"terms":["arrows","caret","collapse","upload"]},"styles":["solid"],"unicode":"f102","label":"Angle Double Up"},"angle-down":{"search":{"terms":["arrow","caret","download","expand"]},"styles":["solid"],"unicode":"f107","label":"angle-down"},"angle-left":{"search":{"terms":["arrow","back","caret","less","previous"]},"styles":["solid"],"unicode":"f104","label":"angle-left"},"angle-right":{"search":{"terms":["arrow","care","forward","more","next"]},"styles":["solid"],"unicode":"f105","label":"angle-right"},"angle-up":{"search":{"terms":["arrow","caret","collapse","upload"]},"styles":["solid"],"unicode":"f106","label":"angle-up"},"angry":{"search":{"terms":["disapprove","emoticon","face","mad","upset"]},"styles":["solid","regular"],"unicode":"f556","label":"Angry Face"},"angrycreative":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36e","label":"Angry Creative"},"angular":{"search":{"terms":[]},"styles":["brands"],"unicode":"f420","label":"Angular"},"ankh":{"search":{"terms":["amulet","copper","coptic christianity","copts","crux ansata","egypt","venus"]},"styles":["solid"],"unicode":"f644","label":"Ankh"},"app-store":{"search":{"terms":[]},"styles":["brands"],"unicode":"f36f","label":"App Store"},"app-store-ios":{"search":{"terms":[]},"styles":["brands"],"unicode":"f370","label":"iOS App Store"},"apper":{"search":{"terms":[]},"styles":["brands"],"unicode":"f371","label":"Apper Systems AB"},"apple":{"search":{"terms":["fruit","ios","mac","operating system","os","osx"]},"styles":["brands"],"unicode":"f179","label":"Apple"},"apple-alt":{"search":{"terms":["fall","fruit","fuji","macintosh","orchard","seasonal","vegan"]},"styles":["solid"],"unicode":"f5d1","label":"Fruit Apple"},"apple-pay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f415","label":"Apple Pay"},"archive":{"search":{"terms":["box","package","save","storage"]},"styles":["solid"],"unicode":"f187","label":"Archive"},"archway":{"search":{"terms":["arc","monument","road","street","tunnel"]},"styles":["solid"],"unicode":"f557","label":"Archway"},"arrow-alt-circle-down":{"search":{"terms":["arrow-circle-o-down","download"]},"styles":["solid","regular"],"unicode":"f358","label":"Alternate Arrow Circle Down"},"arrow-alt-circle-left":{"search":{"terms":["arrow-circle-o-left","back","previous"]},"styles":["solid","regular"],"unicode":"f359","label":"Alternate Arrow Circle Left"},"arrow-alt-circle-right":{"search":{"terms":["arrow-circle-o-right","forward","next"]},"styles":["solid","regular"],"unicode":"f35a","label":"Alternate Arrow Circle Right"},"arrow-alt-circle-up":{"search":{"terms":["arrow-circle-o-up"]},"styles":["solid","regular"],"unicode":"f35b","label":"Alternate Arrow Circle Up"},"arrow-circle-down":{"search":{"terms":["download"]},"styles":["solid"],"unicode":"f0ab","label":"Arrow Circle Down"},"arrow-circle-left":{"search":{"terms":["back","previous"]},"styles":["solid"],"unicode":"f0a8","label":"Arrow Circle Left"},"arrow-circle-right":{"search":{"terms":["forward","next"]},"styles":["solid"],"unicode":"f0a9","label":"Arrow Circle Right"},"arrow-circle-up":{"search":{"terms":["upload"]},"styles":["solid"],"unicode":"f0aa","label":"Arrow Circle Up"},"arrow-down":{"search":{"terms":["download"]},"styles":["solid"],"unicode":"f063","label":"arrow-down"},"arrow-left":{"search":{"terms":["back","previous"]},"styles":["solid"],"unicode":"f060","label":"arrow-left"},"arrow-right":{"search":{"terms":["forward","next"]},"styles":["solid"],"unicode":"f061","label":"arrow-right"},"arrow-up":{"search":{"terms":["forward","upload"]},"styles":["solid"],"unicode":"f062","label":"arrow-up"},"arrows-alt":{"search":{"terms":["arrow","arrows","bigger","enlarge","expand","fullscreen","move","position","reorder","resize"]},"styles":["solid"],"unicode":"f0b2","label":"Alternate Arrows"},"arrows-alt-h":{"search":{"terms":["arrows-h","expand","horizontal","landscape","resize","wide"]},"styles":["solid"],"unicode":"f337","label":"Alternate Arrows Horizontal"},"arrows-alt-v":{"search":{"terms":["arrows-v","expand","portrait","resize","tall","vertical"]},"styles":["solid"],"unicode":"f338","label":"Alternate Arrows Vertical"},"artstation":{"search":{"terms":[]},"styles":["brands"],"unicode":"f77a","label":"Artstation"},"assistive-listening-systems":{"search":{"terms":["amplify","audio","deaf","ear","headset","hearing","sound"]},"styles":["solid"],"unicode":"f2a2","label":"Assistive Listening Systems"},"asterisk":{"search":{"terms":["annotation","details","reference","star"]},"styles":["solid"],"unicode":"f069","label":"asterisk"},"asymmetrik":{"search":{"terms":[]},"styles":["brands"],"unicode":"f372","label":"Asymmetrik, Ltd."},"at":{"search":{"terms":["address","author","e-mail","email","handle"]},"styles":["solid"],"unicode":"f1fa","label":"At"},"atlas":{"search":{"terms":["book","directions","geography","globe","map","travel","wayfinding"]},"styles":["solid"],"unicode":"f558","label":"Atlas"},"atlassian":{"search":{"terms":[]},"styles":["brands"],"unicode":"f77b","label":"Atlassian"},"atom":{"search":{"terms":["atheism","chemistry","electron","ion","isotope","neutron","nuclear","proton","science"]},"styles":["solid"],"unicode":"f5d2","label":"Atom"},"audible":{"search":{"terms":[]},"styles":["brands"],"unicode":"f373","label":"Audible"},"audio-description":{"search":{"terms":["blind","narration","video","visual"]},"styles":["solid"],"unicode":"f29e","label":"Audio Description"},"autoprefixer":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41c","label":"Autoprefixer"},"avianex":{"search":{"terms":[]},"styles":["brands"],"unicode":"f374","label":"avianex"},"aviato":{"search":{"terms":[]},"styles":["brands"],"unicode":"f421","label":"Aviato"},"award":{"search":{"terms":["honor","praise","prize","recognition","ribbon","trophy"]},"styles":["solid"],"unicode":"f559","label":"Award"},"aws":{"search":{"terms":[]},"styles":["brands"],"unicode":"f375","label":"Amazon Web Services (AWS)"},"baby":{"search":{"terms":["child","diaper","doll","human","infant","kid","offspring","person","sprout"]},"styles":["solid"],"unicode":"f77c","label":"Baby"},"baby-carriage":{"search":{"terms":["buggy","carrier","infant","push","stroller","transportation","walk","wheels"]},"styles":["solid"],"unicode":"f77d","label":"Baby Carriage"},"backspace":{"search":{"terms":["command","delete","erase","keyboard","undo"]},"styles":["solid"],"unicode":"f55a","label":"Backspace"},"backward":{"search":{"terms":["previous","rewind"]},"styles":["solid"],"unicode":"f04a","label":"backward"},"bacon":{"search":{"terms":["blt","breakfast","ham","lard","meat","pancetta","pork","rasher"]},"styles":["solid"],"unicode":"f7e5","label":"Bacon"},"bahai":{"search":{"terms":["bahai","bahá\'í","star"]},"styles":["solid"],"unicode":"f666","label":"Bahá\'í"},"balance-scale":{"search":{"terms":["balanced","justice","legal","measure","weight"]},"styles":["solid"],"unicode":"f24e","label":"Balance Scale"},"balance-scale-left":{"search":{"terms":["justice","legal","measure","unbalanced","weight"]},"styles":["solid"],"unicode":"f515","label":"Balance Scale (Left-Weighted)"},"balance-scale-right":{"search":{"terms":["justice","legal","measure","unbalanced","weight"]},"styles":["solid"],"unicode":"f516","label":"Balance Scale (Right-Weighted)"},"ban":{"search":{"terms":["abort","ban","block","cancel","delete","hide","prohibit","remove","stop","trash"]},"styles":["solid"],"unicode":"f05e","label":"ban"},"band-aid":{"search":{"terms":["bandage","boo boo","first aid","ouch"]},"styles":["solid"],"unicode":"f462","label":"Band-Aid"},"bandcamp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2d5","label":"Bandcamp"},"barcode":{"search":{"terms":["info","laser","price","scan","upc"]},"styles":["solid"],"unicode":"f02a","label":"barcode"},"bars":{"search":{"terms":["checklist","drag","hamburger","list","menu","nav","navigation","ol","reorder","settings","todo","ul"]},"styles":["solid"],"unicode":"f0c9","label":"Bars"},"baseball-ball":{"search":{"terms":["foul","hardball","league","leather","mlb","softball","sport"]},"styles":["solid"],"unicode":"f433","label":"Baseball Ball"},"basketball-ball":{"search":{"terms":["dribble","dunk","hoop","nba"]},"styles":["solid"],"unicode":"f434","label":"Basketball Ball"},"bath":{"search":{"terms":["clean","shower","tub","wash"]},"styles":["solid"],"unicode":"f2cd","label":"Bath"},"battery-empty":{"search":{"terms":["charge","dead","power","status"]},"styles":["solid"],"unicode":"f244","label":"Battery Empty"},"battery-full":{"search":{"terms":["charge","power","status"]},"styles":["solid"],"unicode":"f240","label":"Battery Full"},"battery-half":{"search":{"terms":["charge","power","status"]},"styles":["solid"],"unicode":"f242","label":"Battery 1/2 Full"},"battery-quarter":{"search":{"terms":["charge","low","power","status"]},"styles":["solid"],"unicode":"f243","label":"Battery 1/4 Full"},"battery-three-quarters":{"search":{"terms":["charge","power","status"]},"styles":["solid"],"unicode":"f241","label":"Battery 3/4 Full"},"battle-net":{"search":{"terms":[]},"styles":["brands"],"unicode":"f835","label":"Battle.net"},"bed":{"search":{"terms":["lodging","mattress","rest","sleep","travel"]},"styles":["solid"],"unicode":"f236","label":"Bed"},"beer":{"search":{"terms":["alcohol","ale","bar","beverage","brewery","drink","lager","liquor","mug","stein"]},"styles":["solid"],"unicode":"f0fc","label":"beer"},"behance":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1b4","label":"Behance"},"behance-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1b5","label":"Behance Square"},"bell":{"search":{"terms":["alarm","alert","chime","notification","reminder"]},"styles":["solid","regular"],"unicode":"f0f3","label":"bell"},"bell-slash":{"search":{"terms":["alert","cancel","disabled","notification","off","reminder"]},"styles":["solid","regular"],"unicode":"f1f6","label":"Bell Slash"},"bezier-curve":{"search":{"terms":["curves","illustrator","lines","path","vector"]},"styles":["solid"],"unicode":"f55b","label":"Bezier Curve"},"bible":{"search":{"terms":["book","catholicism","christianity","god","holy"]},"styles":["solid"],"unicode":"f647","label":"Bible"},"bicycle":{"search":{"terms":["bike","gears","pedal","transportation","vehicle"]},"styles":["solid"],"unicode":"f206","label":"Bicycle"},"biking":{"search":{"terms":["bicycle","bike","cycle","cycling","ride","wheel"]},"styles":["solid"],"unicode":"f84a","label":"Biking"},"bimobject":{"search":{"terms":[]},"styles":["brands"],"unicode":"f378","label":"BIMobject"},"binoculars":{"search":{"terms":["glasses","magnify","scenic","spyglass","view"]},"styles":["solid"],"unicode":"f1e5","label":"Binoculars"},"biohazard":{"search":{"terms":["covid-19","danger","dangerous","hazmat","medical","radioactive","toxic","waste","zombie"]},"styles":["solid"],"unicode":"f780","label":"Biohazard"},"birthday-cake":{"search":{"terms":["anniversary","bakery","candles","celebration","dessert","frosting","holiday","party","pastry"]},"styles":["solid"],"unicode":"f1fd","label":"Birthday Cake"},"bitbucket":{"search":{"terms":["atlassian","bitbucket-square","git"]},"styles":["brands"],"unicode":"f171","label":"Bitbucket"},"bitcoin":{"search":{"terms":[]},"styles":["brands"],"unicode":"f379","label":"Bitcoin"},"bity":{"search":{"terms":[]},"styles":["brands"],"unicode":"f37a","label":"Bity"},"black-tie":{"search":{"terms":[]},"styles":["brands"],"unicode":"f27e","label":"Font Awesome Black Tie"},"blackberry":{"search":{"terms":[]},"styles":["brands"],"unicode":"f37b","label":"BlackBerry"},"blender":{"search":{"terms":["cocktail","milkshake","mixer","puree","smoothie"]},"styles":["solid"],"unicode":"f517","label":"Blender"},"blender-phone":{"search":{"terms":["appliance","cocktail","communication","fantasy","milkshake","mixer","puree","silly","smoothie"]},"styles":["solid"],"unicode":"f6b6","label":"Blender Phone"},"blind":{"search":{"terms":["cane","disability","person","sight"]},"styles":["solid"],"unicode":"f29d","label":"Blind"},"blog":{"search":{"terms":["journal","log","online","personal","post","web 2.0","wordpress","writing"]},"styles":["solid"],"unicode":"f781","label":"Blog"},"blogger":{"search":{"terms":[]},"styles":["brands"],"unicode":"f37c","label":"Blogger"},"blogger-b":{"search":{"terms":[]},"styles":["brands"],"unicode":"f37d","label":"Blogger B"},"bluetooth":{"search":{"terms":[]},"styles":["brands"],"unicode":"f293","label":"Bluetooth"},"bluetooth-b":{"search":{"terms":[]},"styles":["brands"],"unicode":"f294","label":"Bluetooth"},"bold":{"search":{"terms":["emphasis","format","text"]},"styles":["solid"],"unicode":"f032","label":"bold"},"bolt":{"search":{"terms":["electricity","lightning","weather","zap"]},"styles":["solid"],"unicode":"f0e7","label":"Lightning Bolt"},"bomb":{"search":{"terms":["error","explode","fuse","grenade","warning"]},"styles":["solid"],"unicode":"f1e2","label":"Bomb"},"bone":{"search":{"terms":["calcium","dog","skeletal","skeleton","tibia"]},"styles":["solid"],"unicode":"f5d7","label":"Bone"},"bong":{"search":{"terms":["aparatus","cannabis","marijuana","pipe","smoke","smoking"]},"styles":["solid"],"unicode":"f55c","label":"Bong"},"book":{"search":{"terms":["diary","documentation","journal","library","read"]},"styles":["solid"],"unicode":"f02d","label":"book"},"book-dead":{"search":{"terms":["Dungeons & Dragons","crossbones","d&d","dark arts","death","dnd","documentation","evil","fantasy","halloween","holiday","necronomicon","read","skull","spell"]},"styles":["solid"],"unicode":"f6b7","label":"Book of the Dead"},"book-medical":{"search":{"terms":["diary","documentation","health","history","journal","library","read","record"]},"styles":["solid"],"unicode":"f7e6","label":"Medical Book"},"book-open":{"search":{"terms":["flyer","library","notebook","open book","pamphlet","reading"]},"styles":["solid"],"unicode":"f518","label":"Book Open"},"book-reader":{"search":{"terms":["flyer","library","notebook","open book","pamphlet","reading"]},"styles":["solid"],"unicode":"f5da","label":"Book Reader"},"bookmark":{"search":{"terms":["favorite","marker","read","remember","save"]},"styles":["solid","regular"],"unicode":"f02e","label":"bookmark"},"bootstrap":{"search":{"terms":[]},"styles":["brands"],"unicode":"f836","label":"Bootstrap"},"border-all":{"search":{"terms":["cell","grid","outline","stroke","table"]},"styles":["solid"],"unicode":"f84c","label":"Border All"},"border-none":{"search":{"terms":["cell","grid","outline","stroke","table"]},"styles":["solid"],"unicode":"f850","label":"Border None"},"border-style":{"search":{"terms":[]},"styles":["solid"],"unicode":"f853","label":"Border Style"},"bowling-ball":{"search":{"terms":["alley","candlepin","gutter","lane","strike","tenpin"]},"styles":["solid"],"unicode":"f436","label":"Bowling Ball"},"box":{"search":{"terms":["archive","container","package","storage"]},"styles":["solid"],"unicode":"f466","label":"Box"},"box-open":{"search":{"terms":["archive","container","package","storage","unpack"]},"styles":["solid"],"unicode":"f49e","label":"Box Open"},"box-tissue":{"search":{"terms":["cough","covid-19","kleenex","mucus","nose","sneeze","snot"]},"styles":["solid"],"unicode":"f95b","label":"Tissue Box"},"boxes":{"search":{"terms":["archives","inventory","storage","warehouse"]},"styles":["solid"],"unicode":"f468","label":"Boxes"},"braille":{"search":{"terms":["alphabet","blind","dots","raised","vision"]},"styles":["solid"],"unicode":"f2a1","label":"Braille"},"brain":{"search":{"terms":["cerebellum","gray matter","intellect","medulla oblongata","mind","noodle","wit"]},"styles":["solid"],"unicode":"f5dc","label":"Brain"},"bread-slice":{"search":{"terms":["bake","bakery","baking","dough","flour","gluten","grain","sandwich","sourdough","toast","wheat","yeast"]},"styles":["solid"],"unicode":"f7ec","label":"Bread Slice"},"briefcase":{"search":{"terms":["bag","business","luggage","office","work"]},"styles":["solid"],"unicode":"f0b1","label":"Briefcase"},"briefcase-medical":{"search":{"terms":["doctor","emt","first aid","health"]},"styles":["solid"],"unicode":"f469","label":"Medical Briefcase"},"broadcast-tower":{"search":{"terms":["airwaves","antenna","radio","reception","waves"]},"styles":["solid"],"unicode":"f519","label":"Broadcast Tower"},"broom":{"search":{"terms":["clean","firebolt","fly","halloween","nimbus 2000","quidditch","sweep","witch"]},"styles":["solid"],"unicode":"f51a","label":"Broom"},"brush":{"search":{"terms":["art","bristles","color","handle","paint"]},"styles":["solid"],"unicode":"f55d","label":"Brush"},"btc":{"search":{"terms":[]},"styles":["brands"],"unicode":"f15a","label":"BTC"},"buffer":{"search":{"terms":[]},"styles":["brands"],"unicode":"f837","label":"Buffer"},"bug":{"search":{"terms":["beetle","error","insect","report"]},"styles":["solid"],"unicode":"f188","label":"Bug"},"building":{"search":{"terms":["apartment","business","city","company","office","work"]},"styles":["solid","regular"],"unicode":"f1ad","label":"Building"},"bullhorn":{"search":{"terms":["announcement","broadcast","louder","megaphone","share"]},"styles":["solid"],"unicode":"f0a1","label":"bullhorn"},"bullseye":{"search":{"terms":["archery","goal","objective","target"]},"styles":["solid"],"unicode":"f140","label":"Bullseye"},"burn":{"search":{"terms":["caliente","energy","fire","flame","gas","heat","hot"]},"styles":["solid"],"unicode":"f46a","label":"Burn"},"buromobelexperte":{"search":{"terms":[]},"styles":["brands"],"unicode":"f37f","label":"Büromöbel-Experte GmbH & Co. KG."},"bus":{"search":{"terms":["public transportation","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f207","label":"Bus"},"bus-alt":{"search":{"terms":["mta","public transportation","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f55e","label":"Bus Alt"},"business-time":{"search":{"terms":["alarm","briefcase","business socks","clock","flight of the conchords","reminder","wednesday"]},"styles":["solid"],"unicode":"f64a","label":"Business Time"},"buy-n-large":{"search":{"terms":[]},"styles":["brands"],"unicode":"f8a6","label":"Buy n Large"},"buysellads":{"search":{"terms":[]},"styles":["brands"],"unicode":"f20d","label":"BuySellAds"},"calculator":{"search":{"terms":["abacus","addition","arithmetic","counting","math","multiplication","subtraction"]},"styles":["solid"],"unicode":"f1ec","label":"Calculator"},"calendar":{"search":{"terms":["calendar-o","date","event","schedule","time","when"]},"styles":["solid","regular"],"unicode":"f133","label":"Calendar"},"calendar-alt":{"search":{"terms":["calendar","date","event","schedule","time","when"]},"styles":["solid","regular"],"unicode":"f073","label":"Alternate Calendar"},"calendar-check":{"search":{"terms":["accept","agree","appointment","confirm","correct","date","done","event","ok","schedule","select","success","tick","time","todo","when"]},"styles":["solid","regular"],"unicode":"f274","label":"Calendar Check"},"calendar-day":{"search":{"terms":["date","detail","event","focus","schedule","single day","time","today","when"]},"styles":["solid"],"unicode":"f783","label":"Calendar with Day Focus"},"calendar-minus":{"search":{"terms":["calendar","date","delete","event","negative","remove","schedule","time","when"]},"styles":["solid","regular"],"unicode":"f272","label":"Calendar Minus"},"calendar-plus":{"search":{"terms":["add","calendar","create","date","event","new","positive","schedule","time","when"]},"styles":["solid","regular"],"unicode":"f271","label":"Calendar Plus"},"calendar-times":{"search":{"terms":["archive","calendar","date","delete","event","remove","schedule","time","when","x"]},"styles":["solid","regular"],"unicode":"f273","label":"Calendar Times"},"calendar-week":{"search":{"terms":["date","detail","event","focus","schedule","single week","time","today","when"]},"styles":["solid"],"unicode":"f784","label":"Calendar with Week Focus"},"camera":{"search":{"terms":["image","lens","photo","picture","record","shutter","video"]},"styles":["solid"],"unicode":"f030","label":"camera"},"camera-retro":{"search":{"terms":["image","lens","photo","picture","record","shutter","video"]},"styles":["solid"],"unicode":"f083","label":"Retro Camera"},"campground":{"search":{"terms":["camping","fall","outdoors","teepee","tent","tipi"]},"styles":["solid"],"unicode":"f6bb","label":"Campground"},"canadian-maple-leaf":{"search":{"terms":["canada","flag","flora","nature","plant"]},"styles":["brands"],"unicode":"f785","label":"Canadian Maple Leaf"},"candy-cane":{"search":{"terms":["candy","christmas","holiday","mint","peppermint","striped","xmas"]},"styles":["solid"],"unicode":"f786","label":"Candy Cane"},"cannabis":{"search":{"terms":["bud","chronic","drugs","endica","endo","ganja","marijuana","mary jane","pot","reefer","sativa","spliff","weed","whacky-tabacky"]},"styles":["solid"],"unicode":"f55f","label":"Cannabis"},"capsules":{"search":{"terms":["drugs","medicine","pills","prescription"]},"styles":["solid"],"unicode":"f46b","label":"Capsules"},"car":{"search":{"terms":["auto","automobile","sedan","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f1b9","label":"Car"},"car-alt":{"search":{"terms":["auto","automobile","sedan","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f5de","label":"Alternate Car"},"car-battery":{"search":{"terms":["auto","electric","mechanic","power"]},"styles":["solid"],"unicode":"f5df","label":"Car Battery"},"car-crash":{"search":{"terms":["accident","auto","automobile","insurance","sedan","transportation","vehicle","wreck"]},"styles":["solid"],"unicode":"f5e1","label":"Car Crash"},"car-side":{"search":{"terms":["auto","automobile","sedan","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f5e4","label":"Car Side"},"caravan":{"search":{"terms":["camper","motor home","rv","trailer","travel"]},"styles":["solid"],"unicode":"f8ff","label":"Caravan"},"caret-down":{"search":{"terms":["arrow","dropdown","expand","menu","more","triangle"]},"styles":["solid"],"unicode":"f0d7","label":"Caret Down"},"caret-left":{"search":{"terms":["arrow","back","previous","triangle"]},"styles":["solid"],"unicode":"f0d9","label":"Caret Left"},"caret-right":{"search":{"terms":["arrow","forward","next","triangle"]},"styles":["solid"],"unicode":"f0da","label":"Caret Right"},"caret-square-down":{"search":{"terms":["arrow","caret-square-o-down","dropdown","expand","menu","more","triangle"]},"styles":["solid","regular"],"unicode":"f150","label":"Caret Square Down"},"caret-square-left":{"search":{"terms":["arrow","back","caret-square-o-left","previous","triangle"]},"styles":["solid","regular"],"unicode":"f191","label":"Caret Square Left"},"caret-square-right":{"search":{"terms":["arrow","caret-square-o-right","forward","next","triangle"]},"styles":["solid","regular"],"unicode":"f152","label":"Caret Square Right"},"caret-square-up":{"search":{"terms":["arrow","caret-square-o-up","collapse","triangle","upload"]},"styles":["solid","regular"],"unicode":"f151","label":"Caret Square Up"},"caret-up":{"search":{"terms":["arrow","collapse","triangle"]},"styles":["solid"],"unicode":"f0d8","label":"Caret Up"},"carrot":{"search":{"terms":["bugs bunny","orange","vegan","vegetable"]},"styles":["solid"],"unicode":"f787","label":"Carrot"},"cart-arrow-down":{"search":{"terms":["download","save","shopping"]},"styles":["solid"],"unicode":"f218","label":"Shopping Cart Arrow Down"},"cart-plus":{"search":{"terms":["add","create","new","positive","shopping"]},"styles":["solid"],"unicode":"f217","label":"Add to Shopping Cart"},"cash-register":{"search":{"terms":["buy","cha-ching","change","checkout","commerce","leaerboard","machine","pay","payment","purchase","store"]},"styles":["solid"],"unicode":"f788","label":"Cash Register"},"cat":{"search":{"terms":["feline","halloween","holiday","kitten","kitty","meow","pet"]},"styles":["solid"],"unicode":"f6be","label":"Cat"},"cc-amazon-pay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42d","label":"Amazon Pay Credit Card"},"cc-amex":{"search":{"terms":["amex"]},"styles":["brands"],"unicode":"f1f3","label":"American Express Credit Card"},"cc-apple-pay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f416","label":"Apple Pay Credit Card"},"cc-diners-club":{"search":{"terms":[]},"styles":["brands"],"unicode":"f24c","label":"Diner\'s Club Credit Card"},"cc-discover":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1f2","label":"Discover Credit Card"},"cc-jcb":{"search":{"terms":[]},"styles":["brands"],"unicode":"f24b","label":"JCB Credit Card"},"cc-mastercard":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1f1","label":"MasterCard Credit Card"},"cc-paypal":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1f4","label":"Paypal Credit Card"},"cc-stripe":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1f5","label":"Stripe Credit Card"},"cc-visa":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1f0","label":"Visa Credit Card"},"centercode":{"search":{"terms":[]},"styles":["brands"],"unicode":"f380","label":"Centercode"},"centos":{"search":{"terms":["linux","operating system","os"]},"styles":["brands"],"unicode":"f789","label":"Centos"},"certificate":{"search":{"terms":["badge","star","verified"]},"styles":["solid"],"unicode":"f0a3","label":"certificate"},"chair":{"search":{"terms":["furniture","seat","sit"]},"styles":["solid"],"unicode":"f6c0","label":"Chair"},"chalkboard":{"search":{"terms":["blackboard","learning","school","teaching","whiteboard","writing"]},"styles":["solid"],"unicode":"f51b","label":"Chalkboard"},"chalkboard-teacher":{"search":{"terms":["blackboard","instructor","learning","professor","school","whiteboard","writing"]},"styles":["solid"],"unicode":"f51c","label":"Chalkboard Teacher"},"charging-station":{"search":{"terms":["electric","ev","tesla","vehicle"]},"styles":["solid"],"unicode":"f5e7","label":"Charging Station"},"chart-area":{"search":{"terms":["analytics","area","chart","graph"]},"styles":["solid"],"unicode":"f1fe","label":"Area Chart"},"chart-bar":{"search":{"terms":["analytics","bar","chart","graph"]},"styles":["solid","regular"],"unicode":"f080","label":"Bar Chart"},"chart-line":{"search":{"terms":["activity","analytics","chart","dashboard","gain","graph","increase","line"]},"styles":["solid"],"unicode":"f201","label":"Line Chart"},"chart-pie":{"search":{"terms":["analytics","chart","diagram","graph","pie"]},"styles":["solid"],"unicode":"f200","label":"Pie Chart"},"check":{"search":{"terms":["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo","yes"]},"styles":["solid"],"unicode":"f00c","label":"Check"},"check-circle":{"search":{"terms":["accept","agree","confirm","correct","done","ok","select","success","tick","todo","yes"]},"styles":["solid","regular"],"unicode":"f058","label":"Check Circle"},"check-double":{"search":{"terms":["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo"]},"styles":["solid"],"unicode":"f560","label":"Double Check"},"check-square":{"search":{"terms":["accept","agree","checkmark","confirm","correct","done","ok","select","success","tick","todo","yes"]},"styles":["solid","regular"],"unicode":"f14a","label":"Check Square"},"cheese":{"search":{"terms":["cheddar","curd","gouda","melt","parmesan","sandwich","swiss","wedge"]},"styles":["solid"],"unicode":"f7ef","label":"Cheese"},"chess":{"search":{"terms":["board","castle","checkmate","game","king","rook","strategy","tournament"]},"styles":["solid"],"unicode":"f439","label":"Chess"},"chess-bishop":{"search":{"terms":["board","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f43a","label":"Chess Bishop"},"chess-board":{"search":{"terms":["board","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f43c","label":"Chess Board"},"chess-king":{"search":{"terms":["board","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f43f","label":"Chess King"},"chess-knight":{"search":{"terms":["board","checkmate","game","horse","strategy"]},"styles":["solid"],"unicode":"f441","label":"Chess Knight"},"chess-pawn":{"search":{"terms":["board","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f443","label":"Chess Pawn"},"chess-queen":{"search":{"terms":["board","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f445","label":"Chess Queen"},"chess-rook":{"search":{"terms":["board","castle","checkmate","game","strategy"]},"styles":["solid"],"unicode":"f447","label":"Chess Rook"},"chevron-circle-down":{"search":{"terms":["arrow","download","dropdown","menu","more"]},"styles":["solid"],"unicode":"f13a","label":"Chevron Circle Down"},"chevron-circle-left":{"search":{"terms":["arrow","back","previous"]},"styles":["solid"],"unicode":"f137","label":"Chevron Circle Left"},"chevron-circle-right":{"search":{"terms":["arrow","forward","next"]},"styles":["solid"],"unicode":"f138","label":"Chevron Circle Right"},"chevron-circle-up":{"search":{"terms":["arrow","collapse","upload"]},"styles":["solid"],"unicode":"f139","label":"Chevron Circle Up"},"chevron-down":{"search":{"terms":["arrow","download","expand"]},"styles":["solid"],"unicode":"f078","label":"chevron-down"},"chevron-left":{"search":{"terms":["arrow","back","bracket","previous"]},"styles":["solid"],"unicode":"f053","label":"chevron-left"},"chevron-right":{"search":{"terms":["arrow","bracket","forward","next"]},"styles":["solid"],"unicode":"f054","label":"chevron-right"},"chevron-up":{"search":{"terms":["arrow","collapse","upload"]},"styles":["solid"],"unicode":"f077","label":"chevron-up"},"child":{"search":{"terms":["boy","girl","kid","toddler","young"]},"styles":["solid"],"unicode":"f1ae","label":"Child"},"chrome":{"search":{"terms":["browser"]},"styles":["brands"],"unicode":"f268","label":"Chrome"},"chromecast":{"search":{"terms":[]},"styles":["brands"],"unicode":"f838","label":"Chromecast"},"church":{"search":{"terms":["building","cathedral","chapel","community","religion"]},"styles":["solid"],"unicode":"f51d","label":"Church"},"circle":{"search":{"terms":["circle-thin","diameter","dot","ellipse","notification","round"]},"styles":["solid","regular"],"unicode":"f111","label":"Circle"},"circle-notch":{"search":{"terms":["circle-o-notch","diameter","dot","ellipse","round","spinner"]},"styles":["solid"],"unicode":"f1ce","label":"Circle Notched"},"city":{"search":{"terms":["buildings","busy","skyscrapers","urban","windows"]},"styles":["solid"],"unicode":"f64f","label":"City"},"clinic-medical":{"search":{"terms":["covid-19","doctor","general practitioner","hospital","infirmary","medicine","office","outpatient"]},"styles":["solid"],"unicode":"f7f2","label":"Medical Clinic"},"clipboard":{"search":{"terms":["copy","notes","paste","record"]},"styles":["solid","regular"],"unicode":"f328","label":"Clipboard"},"clipboard-check":{"search":{"terms":["accept","agree","confirm","done","ok","select","success","tick","todo","yes"]},"styles":["solid"],"unicode":"f46c","label":"Clipboard with Check"},"clipboard-list":{"search":{"terms":["checklist","completed","done","finished","intinerary","ol","schedule","tick","todo","ul"]},"styles":["solid"],"unicode":"f46d","label":"Clipboard List"},"clock":{"search":{"terms":["date","late","schedule","time","timer","timestamp","watch"]},"styles":["solid","regular"],"unicode":"f017","label":"Clock"},"clone":{"search":{"terms":["arrange","copy","duplicate","paste"]},"styles":["solid","regular"],"unicode":"f24d","label":"Clone"},"closed-captioning":{"search":{"terms":["cc","deaf","hearing","subtitle","subtitling","text","video"]},"styles":["solid","regular"],"unicode":"f20a","label":"Closed Captioning"},"cloud":{"search":{"terms":["atmosphere","fog","overcast","save","upload","weather"]},"styles":["solid"],"unicode":"f0c2","label":"Cloud"},"cloud-download-alt":{"search":{"terms":["download","export","save"]},"styles":["solid"],"unicode":"f381","label":"Alternate Cloud Download"},"cloud-meatball":{"search":{"terms":["FLDSMDFR","food","spaghetti","storm"]},"styles":["solid"],"unicode":"f73b","label":"Cloud with (a chance of) Meatball"},"cloud-moon":{"search":{"terms":["crescent","evening","lunar","night","partly cloudy","sky"]},"styles":["solid"],"unicode":"f6c3","label":"Cloud with Moon"},"cloud-moon-rain":{"search":{"terms":["crescent","evening","lunar","night","partly cloudy","precipitation","rain","sky","storm"]},"styles":["solid"],"unicode":"f73c","label":"Cloud with Moon and Rain"},"cloud-rain":{"search":{"terms":["precipitation","rain","sky","storm"]},"styles":["solid"],"unicode":"f73d","label":"Cloud with Rain"},"cloud-showers-heavy":{"search":{"terms":["precipitation","rain","sky","storm"]},"styles":["solid"],"unicode":"f740","label":"Cloud with Heavy Showers"},"cloud-sun":{"search":{"terms":["clear","day","daytime","fall","outdoors","overcast","partly cloudy"]},"styles":["solid"],"unicode":"f6c4","label":"Cloud with Sun"},"cloud-sun-rain":{"search":{"terms":["day","overcast","precipitation","storm","summer","sunshower"]},"styles":["solid"],"unicode":"f743","label":"Cloud with Sun and Rain"},"cloud-upload-alt":{"search":{"terms":["cloud-upload","import","save","upload"]},"styles":["solid"],"unicode":"f382","label":"Alternate Cloud Upload"},"cloudscale":{"search":{"terms":[]},"styles":["brands"],"unicode":"f383","label":"cloudscale.ch"},"cloudsmith":{"search":{"terms":[]},"styles":["brands"],"unicode":"f384","label":"Cloudsmith"},"cloudversify":{"search":{"terms":[]},"styles":["brands"],"unicode":"f385","label":"cloudversify"},"cocktail":{"search":{"terms":["alcohol","beverage","drink","gin","glass","margarita","martini","vodka"]},"styles":["solid"],"unicode":"f561","label":"Cocktail"},"code":{"search":{"terms":["brackets","code","development","html"]},"styles":["solid"],"unicode":"f121","label":"Code"},"code-branch":{"search":{"terms":["branch","code-fork","fork","git","github","rebase","svn","vcs","version"]},"styles":["solid"],"unicode":"f126","label":"Code Branch"},"codepen":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1cb","label":"Codepen"},"codiepie":{"search":{"terms":[]},"styles":["brands"],"unicode":"f284","label":"Codie Pie"},"coffee":{"search":{"terms":["beverage","breakfast","cafe","drink","fall","morning","mug","seasonal","tea"]},"styles":["solid"],"unicode":"f0f4","label":"Coffee"},"cog":{"search":{"terms":["gear","mechanical","settings","sprocket","wheel"]},"styles":["solid"],"unicode":"f013","label":"cog"},"cogs":{"search":{"terms":["gears","mechanical","settings","sprocket","wheel"]},"styles":["solid"],"unicode":"f085","label":"cogs"},"coins":{"search":{"terms":["currency","dime","financial","gold","money","penny"]},"styles":["solid"],"unicode":"f51e","label":"Coins"},"columns":{"search":{"terms":["browser","dashboard","organize","panes","split"]},"styles":["solid"],"unicode":"f0db","label":"Columns"},"comment":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},"styles":["solid","regular"],"unicode":"f075","label":"comment"},"comment-alt":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},"styles":["solid","regular"],"unicode":"f27a","label":"Alternate Comment"},"comment-dollar":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","money","note","notification","pay","sms","speech","spend","texting","transfer"]},"styles":["solid"],"unicode":"f651","label":"Comment Dollar"},"comment-dots":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","more","note","notification","reply","sms","speech","texting"]},"styles":["solid","regular"],"unicode":"f4ad","label":"Comment Dots"},"comment-medical":{"search":{"terms":["advice","bubble","chat","commenting","conversation","diagnose","feedback","message","note","notification","prescription","sms","speech","texting"]},"styles":["solid"],"unicode":"f7f5","label":"Alternate Medical Chat"},"comment-slash":{"search":{"terms":["bubble","cancel","chat","commenting","conversation","feedback","message","mute","note","notification","quiet","sms","speech","texting"]},"styles":["solid"],"unicode":"f4b3","label":"Comment Slash"},"comments":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},"styles":["solid","regular"],"unicode":"f086","label":"comments"},"comments-dollar":{"search":{"terms":["bubble","chat","commenting","conversation","feedback","message","money","note","notification","pay","sms","speech","spend","texting","transfer"]},"styles":["solid"],"unicode":"f653","label":"Comments Dollar"},"compact-disc":{"search":{"terms":["album","bluray","cd","disc","dvd","media","movie","music","record","video","vinyl"]},"styles":["solid"],"unicode":"f51f","label":"Compact Disc"},"compass":{"search":{"terms":["directions","directory","location","menu","navigation","safari","travel"]},"styles":["solid","regular"],"unicode":"f14e","label":"Compass"},"compress":{"search":{"terms":["collapse","fullscreen","minimize","move","resize","shrink","smaller"]},"styles":["solid"],"unicode":"f066","label":"Compress"},"compress-alt":{"search":{"terms":["collapse","fullscreen","minimize","move","resize","shrink","smaller"]},"styles":["solid"],"unicode":"f422","label":"Alternate Compress"},"compress-arrows-alt":{"search":{"terms":["collapse","fullscreen","minimize","move","resize","shrink","smaller"]},"styles":["solid"],"unicode":"f78c","label":"Alternate Compress Arrows"},"concierge-bell":{"search":{"terms":["attention","hotel","receptionist","service","support"]},"styles":["solid"],"unicode":"f562","label":"Concierge Bell"},"confluence":{"search":{"terms":["atlassian"]},"styles":["brands"],"unicode":"f78d","label":"Confluence"},"connectdevelop":{"search":{"terms":[]},"styles":["brands"],"unicode":"f20e","label":"Connect Develop"},"contao":{"search":{"terms":[]},"styles":["brands"],"unicode":"f26d","label":"Contao"},"cookie":{"search":{"terms":["baked good","chips","chocolate","eat","snack","sweet","treat"]},"styles":["solid"],"unicode":"f563","label":"Cookie"},"cookie-bite":{"search":{"terms":["baked good","bitten","chips","chocolate","eat","snack","sweet","treat"]},"styles":["solid"],"unicode":"f564","label":"Cookie Bite"},"copy":{"search":{"terms":["clone","duplicate","file","files-o","paper","paste"]},"styles":["solid","regular"],"unicode":"f0c5","label":"Copy"},"copyright":{"search":{"terms":["brand","mark","register","trademark"]},"styles":["solid","regular"],"unicode":"f1f9","label":"Copyright"},"cotton-bureau":{"search":{"terms":["clothing","t-shirts","tshirts"]},"styles":["brands"],"unicode":"f89e","label":"Cotton Bureau"},"couch":{"search":{"terms":["chair","cushion","furniture","relax","sofa"]},"styles":["solid"],"unicode":"f4b8","label":"Couch"},"cpanel":{"search":{"terms":[]},"styles":["brands"],"unicode":"f388","label":"cPanel"},"creative-commons":{"search":{"terms":[]},"styles":["brands"],"unicode":"f25e","label":"Creative Commons"},"creative-commons-by":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4e7","label":"Creative Commons Attribution"},"creative-commons-nc":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4e8","label":"Creative Commons Noncommercial"},"creative-commons-nc-eu":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4e9","label":"Creative Commons Noncommercial (Euro Sign)"},"creative-commons-nc-jp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4ea","label":"Creative Commons Noncommercial (Yen Sign)"},"creative-commons-nd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4eb","label":"Creative Commons No Derivative Works"},"creative-commons-pd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4ec","label":"Creative Commons Public Domain"},"creative-commons-pd-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4ed","label":"Alternate Creative Commons Public Domain"},"creative-commons-remix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4ee","label":"Creative Commons Remix"},"creative-commons-sa":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4ef","label":"Creative Commons Share Alike"},"creative-commons-sampling":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f0","label":"Creative Commons Sampling"},"creative-commons-sampling-plus":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f1","label":"Creative Commons Sampling +"},"creative-commons-share":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f2","label":"Creative Commons Share"},"creative-commons-zero":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f3","label":"Creative Commons CC0"},"credit-card":{"search":{"terms":["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},"styles":["solid","regular"],"unicode":"f09d","label":"Credit Card"},"critical-role":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},"styles":["brands"],"unicode":"f6c9","label":"Critical Role"},"crop":{"search":{"terms":["design","frame","mask","resize","shrink"]},"styles":["solid"],"unicode":"f125","label":"crop"},"crop-alt":{"search":{"terms":["design","frame","mask","resize","shrink"]},"styles":["solid"],"unicode":"f565","label":"Alternate Crop"},"cross":{"search":{"terms":["catholicism","christianity","church","jesus"]},"styles":["solid"],"unicode":"f654","label":"Cross"},"crosshairs":{"search":{"terms":["aim","bullseye","gpd","picker","position"]},"styles":["solid"],"unicode":"f05b","label":"Crosshairs"},"crow":{"search":{"terms":["bird","bullfrog","fauna","halloween","holiday","toad"]},"styles":["solid"],"unicode":"f520","label":"Crow"},"crown":{"search":{"terms":["award","favorite","king","queen","royal","tiara"]},"styles":["solid"],"unicode":"f521","label":"Crown"},"crutch":{"search":{"terms":["cane","injury","mobility","wheelchair"]},"styles":["solid"],"unicode":"f7f7","label":"Crutch"},"css3":{"search":{"terms":["code"]},"styles":["brands"],"unicode":"f13c","label":"CSS 3 Logo"},"css3-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f38b","label":"Alternate CSS3 Logo"},"cube":{"search":{"terms":["3d","block","dice","package","square","tesseract"]},"styles":["solid"],"unicode":"f1b2","label":"Cube"},"cubes":{"search":{"terms":["3d","block","dice","package","pyramid","square","stack","tesseract"]},"styles":["solid"],"unicode":"f1b3","label":"Cubes"},"cut":{"search":{"terms":["clip","scissors","snip"]},"styles":["solid"],"unicode":"f0c4","label":"Cut"},"cuttlefish":{"search":{"terms":[]},"styles":["brands"],"unicode":"f38c","label":"Cuttlefish"},"d-and-d":{"search":{"terms":[]},"styles":["brands"],"unicode":"f38d","label":"Dungeons & Dragons"},"d-and-d-beyond":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","gaming","tabletop"]},"styles":["brands"],"unicode":"f6ca","label":"D&D Beyond"},"dailymotion":{"search":{"terms":[]},"styles":["brands"],"unicode":"f952","label":"dailymotion"},"dashcube":{"search":{"terms":[]},"styles":["brands"],"unicode":"f210","label":"DashCube"},"database":{"search":{"terms":["computer","development","directory","memory","storage"]},"styles":["solid"],"unicode":"f1c0","label":"Database"},"deaf":{"search":{"terms":["ear","hearing","sign language"]},"styles":["solid"],"unicode":"f2a4","label":"Deaf"},"delicious":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a5","label":"Delicious"},"democrat":{"search":{"terms":["american","democratic party","donkey","election","left","left-wing","liberal","politics","usa"]},"styles":["solid"],"unicode":"f747","label":"Democrat"},"deploydog":{"search":{"terms":[]},"styles":["brands"],"unicode":"f38e","label":"deploy.dog"},"deskpro":{"search":{"terms":[]},"styles":["brands"],"unicode":"f38f","label":"Deskpro"},"desktop":{"search":{"terms":["computer","cpu","demo","desktop","device","imac","machine","monitor","pc","screen"]},"styles":["solid"],"unicode":"f108","label":"Desktop"},"dev":{"search":{"terms":[]},"styles":["brands"],"unicode":"f6cc","label":"DEV"},"deviantart":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1bd","label":"deviantART"},"dharmachakra":{"search":{"terms":["buddhism","buddhist","wheel of dharma"]},"styles":["solid"],"unicode":"f655","label":"Dharmachakra"},"dhl":{"search":{"terms":["Dalsey","Hillblom and Lynn","german","package","shipping"]},"styles":["brands"],"unicode":"f790","label":"DHL"},"diagnoses":{"search":{"terms":["analyze","detect","diagnosis","examine","medicine"]},"styles":["solid"],"unicode":"f470","label":"Diagnoses"},"diaspora":{"search":{"terms":[]},"styles":["brands"],"unicode":"f791","label":"Diaspora"},"dice":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f522","label":"Dice"},"dice-d20":{"search":{"terms":["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},"styles":["solid"],"unicode":"f6cf","label":"Dice D20"},"dice-d6":{"search":{"terms":["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},"styles":["solid"],"unicode":"f6d1","label":"Dice D6"},"dice-five":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f523","label":"Dice Five"},"dice-four":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f524","label":"Dice Four"},"dice-one":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f525","label":"Dice One"},"dice-six":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f526","label":"Dice Six"},"dice-three":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f527","label":"Dice Three"},"dice-two":{"search":{"terms":["chance","gambling","game","roll"]},"styles":["solid"],"unicode":"f528","label":"Dice Two"},"digg":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a6","label":"Digg Logo"},"digital-ocean":{"search":{"terms":[]},"styles":["brands"],"unicode":"f391","label":"Digital Ocean"},"digital-tachograph":{"search":{"terms":["data","distance","speed","tachometer"]},"styles":["solid"],"unicode":"f566","label":"Digital Tachograph"},"directions":{"search":{"terms":["map","navigation","sign","turn"]},"styles":["solid"],"unicode":"f5eb","label":"Directions"},"discord":{"search":{"terms":[]},"styles":["brands"],"unicode":"f392","label":"Discord"},"discourse":{"search":{"terms":[]},"styles":["brands"],"unicode":"f393","label":"Discourse"},"disease":{"search":{"terms":["bacteria","cancer","covid-19","illness","infection","sickness","virus"]},"styles":["solid"],"unicode":"f7fa","label":"Disease"},"divide":{"search":{"terms":["arithmetic","calculus","division","math"]},"styles":["solid"],"unicode":"f529","label":"Divide"},"dizzy":{"search":{"terms":["dazed","dead","disapprove","emoticon","face"]},"styles":["solid","regular"],"unicode":"f567","label":"Dizzy Face"},"dna":{"search":{"terms":["double helix","genetic","helix","molecule","protein"]},"styles":["solid"],"unicode":"f471","label":"DNA"},"dochub":{"search":{"terms":[]},"styles":["brands"],"unicode":"f394","label":"DocHub"},"docker":{"search":{"terms":[]},"styles":["brands"],"unicode":"f395","label":"Docker"},"dog":{"search":{"terms":["animal","canine","fauna","mammal","pet","pooch","puppy","woof"]},"styles":["solid"],"unicode":"f6d3","label":"Dog"},"dollar-sign":{"search":{"terms":["$","cost","dollar-sign","money","price","usd"]},"styles":["solid"],"unicode":"f155","label":"Dollar Sign"},"dolly":{"search":{"terms":["carry","shipping","transport"]},"styles":["solid"],"unicode":"f472","label":"Dolly"},"dolly-flatbed":{"search":{"terms":["carry","inventory","shipping","transport"]},"styles":["solid"],"unicode":"f474","label":"Dolly Flatbed"},"donate":{"search":{"terms":["contribute","generosity","gift","give"]},"styles":["solid"],"unicode":"f4b9","label":"Donate"},"door-closed":{"search":{"terms":["enter","exit","locked"]},"styles":["solid"],"unicode":"f52a","label":"Door Closed"},"door-open":{"search":{"terms":["enter","exit","welcome"]},"styles":["solid"],"unicode":"f52b","label":"Door Open"},"dot-circle":{"search":{"terms":["bullseye","notification","target"]},"styles":["solid","regular"],"unicode":"f192","label":"Dot Circle"},"dove":{"search":{"terms":["bird","fauna","flying","peace","war"]},"styles":["solid"],"unicode":"f4ba","label":"Dove"},"download":{"search":{"terms":["export","hard drive","save","transfer"]},"styles":["solid"],"unicode":"f019","label":"Download"},"draft2digital":{"search":{"terms":[]},"styles":["brands"],"unicode":"f396","label":"Draft2digital"},"drafting-compass":{"search":{"terms":["design","map","mechanical drawing","plot","plotting"]},"styles":["solid"],"unicode":"f568","label":"Drafting Compass"},"dragon":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","fire","lizard","serpent"]},"styles":["solid"],"unicode":"f6d5","label":"Dragon"},"draw-polygon":{"search":{"terms":["anchors","lines","object","render","shape"]},"styles":["solid"],"unicode":"f5ee","label":"Draw Polygon"},"dribbble":{"search":{"terms":[]},"styles":["brands"],"unicode":"f17d","label":"Dribbble"},"dribbble-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f397","label":"Dribbble Square"},"dropbox":{"search":{"terms":[]},"styles":["brands"],"unicode":"f16b","label":"Dropbox"},"drum":{"search":{"terms":["instrument","music","percussion","snare","sound"]},"styles":["solid"],"unicode":"f569","label":"Drum"},"drum-steelpan":{"search":{"terms":["calypso","instrument","music","percussion","reggae","snare","sound","steel","tropical"]},"styles":["solid"],"unicode":"f56a","label":"Drum Steelpan"},"drumstick-bite":{"search":{"terms":["bone","chicken","leg","meat","poultry","turkey"]},"styles":["solid"],"unicode":"f6d7","label":"Drumstick with Bite Taken Out"},"drupal":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a9","label":"Drupal Logo"},"dumbbell":{"search":{"terms":["exercise","gym","strength","weight","weight-lifting"]},"styles":["solid"],"unicode":"f44b","label":"Dumbbell"},"dumpster":{"search":{"terms":["alley","bin","commercial","trash","waste"]},"styles":["solid"],"unicode":"f793","label":"Dumpster"},"dumpster-fire":{"search":{"terms":["alley","bin","commercial","danger","dangerous","euphemism","flame","heat","hot","trash","waste"]},"styles":["solid"],"unicode":"f794","label":"Dumpster Fire"},"dungeon":{"search":{"terms":["Dungeons & Dragons","building","d&d","dnd","door","entrance","fantasy","gate"]},"styles":["solid"],"unicode":"f6d9","label":"Dungeon"},"dyalog":{"search":{"terms":[]},"styles":["brands"],"unicode":"f399","label":"Dyalog"},"earlybirds":{"search":{"terms":[]},"styles":["brands"],"unicode":"f39a","label":"Earlybirds"},"ebay":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f4","label":"eBay"},"edge":{"search":{"terms":["browser","ie"]},"styles":["brands"],"unicode":"f282","label":"Edge Browser"},"edit":{"search":{"terms":["edit","pen","pencil","update","write"]},"styles":["solid","regular"],"unicode":"f044","label":"Edit"},"egg":{"search":{"terms":["breakfast","chicken","easter","shell","yolk"]},"styles":["solid"],"unicode":"f7fb","label":"Egg"},"eject":{"search":{"terms":["abort","cancel","cd","discharge"]},"styles":["solid"],"unicode":"f052","label":"eject"},"elementor":{"search":{"terms":[]},"styles":["brands"],"unicode":"f430","label":"Elementor"},"ellipsis-h":{"search":{"terms":["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},"styles":["solid"],"unicode":"f141","label":"Horizontal Ellipsis"},"ellipsis-v":{"search":{"terms":["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},"styles":["solid"],"unicode":"f142","label":"Vertical Ellipsis"},"ello":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5f1","label":"Ello"},"ember":{"search":{"terms":[]},"styles":["brands"],"unicode":"f423","label":"Ember"},"empire":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d1","label":"Galactic Empire"},"envelope":{"search":{"terms":["e-mail","email","letter","mail","message","notification","support"]},"styles":["solid","regular"],"unicode":"f0e0","label":"Envelope"},"envelope-open":{"search":{"terms":["e-mail","email","letter","mail","message","notification","support"]},"styles":["solid","regular"],"unicode":"f2b6","label":"Envelope Open"},"envelope-open-text":{"search":{"terms":["e-mail","email","letter","mail","message","notification","support"]},"styles":["solid"],"unicode":"f658","label":"Envelope Open-text"},"envelope-square":{"search":{"terms":["e-mail","email","letter","mail","message","notification","support"]},"styles":["solid"],"unicode":"f199","label":"Envelope Square"},"envira":{"search":{"terms":["leaf"]},"styles":["brands"],"unicode":"f299","label":"Envira Gallery"},"equals":{"search":{"terms":["arithmetic","even","match","math"]},"styles":["solid"],"unicode":"f52c","label":"Equals"},"eraser":{"search":{"terms":["art","delete","remove","rubber"]},"styles":["solid"],"unicode":"f12d","label":"eraser"},"erlang":{"search":{"terms":[]},"styles":["brands"],"unicode":"f39d","label":"Erlang"},"ethereum":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42e","label":"Ethereum"},"ethernet":{"search":{"terms":["cable","cat 5","cat 6","connection","hardware","internet","network","wired"]},"styles":["solid"],"unicode":"f796","label":"Ethernet"},"etsy":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2d7","label":"Etsy"},"euro-sign":{"search":{"terms":["currency","dollar","exchange","money"]},"styles":["solid"],"unicode":"f153","label":"Euro Sign"},"evernote":{"search":{"terms":[]},"styles":["brands"],"unicode":"f839","label":"Evernote"},"exchange-alt":{"search":{"terms":["arrow","arrows","exchange","reciprocate","return","swap","transfer"]},"styles":["solid"],"unicode":"f362","label":"Alternate Exchange"},"exclamation":{"search":{"terms":["alert","danger","error","important","notice","notification","notify","problem","warning"]},"styles":["solid"],"unicode":"f12a","label":"exclamation"},"exclamation-circle":{"search":{"terms":["alert","danger","error","important","notice","notification","notify","problem","warning"]},"styles":["solid"],"unicode":"f06a","label":"Exclamation Circle"},"exclamation-triangle":{"search":{"terms":["alert","danger","error","important","notice","notification","notify","problem","warning"]},"styles":["solid"],"unicode":"f071","label":"Exclamation Triangle"},"expand":{"search":{"terms":["arrow","bigger","enlarge","resize"]},"styles":["solid"],"unicode":"f065","label":"Expand"},"expand-alt":{"search":{"terms":["arrow","bigger","enlarge","resize"]},"styles":["solid"],"unicode":"f424","label":"Alternate Expand"},"expand-arrows-alt":{"search":{"terms":["arrows-alt","bigger","enlarge","move","resize"]},"styles":["solid"],"unicode":"f31e","label":"Alternate Expand Arrows"},"expeditedssl":{"search":{"terms":[]},"styles":["brands"],"unicode":"f23e","label":"ExpeditedSSL"},"external-link-alt":{"search":{"terms":["external-link","new","open","share"]},"styles":["solid"],"unicode":"f35d","label":"Alternate External Link"},"external-link-square-alt":{"search":{"terms":["external-link-square","new","open","share"]},"styles":["solid"],"unicode":"f360","label":"Alternate External Link Square"},"eye":{"search":{"terms":["look","optic","see","seen","show","sight","views","visible"]},"styles":["solid","regular"],"unicode":"f06e","label":"Eye"},"eye-dropper":{"search":{"terms":["beaker","clone","color","copy","eyedropper","pipette"]},"styles":["solid"],"unicode":"f1fb","label":"Eye Dropper"},"eye-slash":{"search":{"terms":["blind","hide","show","toggle","unseen","views","visible","visiblity"]},"styles":["solid","regular"],"unicode":"f070","label":"Eye Slash"},"facebook":{"search":{"terms":["facebook-official","social network"]},"styles":["brands"],"unicode":"f09a","label":"Facebook"},"facebook-f":{"search":{"terms":["facebook"]},"styles":["brands"],"unicode":"f39e","label":"Facebook F"},"facebook-messenger":{"search":{"terms":[]},"styles":["brands"],"unicode":"f39f","label":"Facebook Messenger"},"facebook-square":{"search":{"terms":["social network"]},"styles":["brands"],"unicode":"f082","label":"Facebook Square"},"fan":{"search":{"terms":["ac","air conditioning","blade","blower","cool","hot"]},"styles":["solid"],"unicode":"f863","label":"Fan"},"fantasy-flight-games":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},"styles":["brands"],"unicode":"f6dc","label":"Fantasy Flight-games"},"fast-backward":{"search":{"terms":["beginning","first","previous","rewind","start"]},"styles":["solid"],"unicode":"f049","label":"fast-backward"},"fast-forward":{"search":{"terms":["end","last","next"]},"styles":["solid"],"unicode":"f050","label":"fast-forward"},"faucet":{"search":{"terms":["covid-19","drip","house","hygiene","kitchen","sink","water"]},"styles":["solid"],"unicode":"f905","label":"Faucet"},"fax":{"search":{"terms":["business","communicate","copy","facsimile","send"]},"styles":["solid"],"unicode":"f1ac","label":"Fax"},"feather":{"search":{"terms":["bird","light","plucked","quill","write"]},"styles":["solid"],"unicode":"f52d","label":"Feather"},"feather-alt":{"search":{"terms":["bird","light","plucked","quill","write"]},"styles":["solid"],"unicode":"f56b","label":"Alternate Feather"},"fedex":{"search":{"terms":["Federal Express","package","shipping"]},"styles":["brands"],"unicode":"f797","label":"FedEx"},"fedora":{"search":{"terms":["linux","operating system","os"]},"styles":["brands"],"unicode":"f798","label":"Fedora"},"female":{"search":{"terms":["human","person","profile","user","woman"]},"styles":["solid"],"unicode":"f182","label":"Female"},"fighter-jet":{"search":{"terms":["airplane","fast","fly","goose","maverick","plane","quick","top gun","transportation","travel"]},"styles":["solid"],"unicode":"f0fb","label":"fighter-jet"},"figma":{"search":{"terms":["app","design","interface"]},"styles":["brands"],"unicode":"f799","label":"Figma"},"file":{"search":{"terms":["document","new","page","pdf","resume"]},"styles":["solid","regular"],"unicode":"f15b","label":"File"},"file-alt":{"search":{"terms":["document","file-text","invoice","new","page","pdf"]},"styles":["solid","regular"],"unicode":"f15c","label":"Alternate File"},"file-archive":{"search":{"terms":[".zip","bundle","compress","compression","download","zip"]},"styles":["solid","regular"],"unicode":"f1c6","label":"Archive File"},"file-audio":{"search":{"terms":["document","mp3","music","page","play","sound"]},"styles":["solid","regular"],"unicode":"f1c7","label":"Audio File"},"file-code":{"search":{"terms":["css","development","document","html"]},"styles":["solid","regular"],"unicode":"f1c9","label":"Code File"},"file-contract":{"search":{"terms":["agreement","binding","document","legal","signature"]},"styles":["solid"],"unicode":"f56c","label":"File Contract"},"file-csv":{"search":{"terms":["document","excel","numbers","spreadsheets","table"]},"styles":["solid"],"unicode":"f6dd","label":"File CSV"},"file-download":{"search":{"terms":["document","export","save"]},"styles":["solid"],"unicode":"f56d","label":"File Download"},"file-excel":{"search":{"terms":["csv","document","numbers","spreadsheets","table"]},"styles":["solid","regular"],"unicode":"f1c3","label":"Excel File"},"file-export":{"search":{"terms":["download","save"]},"styles":["solid"],"unicode":"f56e","label":"File Export"},"file-image":{"search":{"terms":["document","image","jpg","photo","png"]},"styles":["solid","regular"],"unicode":"f1c5","label":"Image File"},"file-import":{"search":{"terms":["copy","document","send","upload"]},"styles":["solid"],"unicode":"f56f","label":"File Import"},"file-invoice":{"search":{"terms":["account","bill","charge","document","payment","receipt"]},"styles":["solid"],"unicode":"f570","label":"File Invoice"},"file-invoice-dollar":{"search":{"terms":["$","account","bill","charge","document","dollar-sign","money","payment","receipt","usd"]},"styles":["solid"],"unicode":"f571","label":"File Invoice with US Dollar"},"file-medical":{"search":{"terms":["document","health","history","prescription","record"]},"styles":["solid"],"unicode":"f477","label":"Medical File"},"file-medical-alt":{"search":{"terms":["document","health","history","prescription","record"]},"styles":["solid"],"unicode":"f478","label":"Alternate Medical File"},"file-pdf":{"search":{"terms":["acrobat","document","preview","save"]},"styles":["solid","regular"],"unicode":"f1c1","label":"PDF File"},"file-powerpoint":{"search":{"terms":["display","document","keynote","presentation"]},"styles":["solid","regular"],"unicode":"f1c4","label":"Powerpoint File"},"file-prescription":{"search":{"terms":["document","drugs","medical","medicine","rx"]},"styles":["solid"],"unicode":"f572","label":"File Prescription"},"file-signature":{"search":{"terms":["John Hancock","contract","document","name"]},"styles":["solid"],"unicode":"f573","label":"File Signature"},"file-upload":{"search":{"terms":["document","import","page","save"]},"styles":["solid"],"unicode":"f574","label":"File Upload"},"file-video":{"search":{"terms":["document","m4v","movie","mp4","play"]},"styles":["solid","regular"],"unicode":"f1c8","label":"Video File"},"file-word":{"search":{"terms":["document","edit","page","text","writing"]},"styles":["solid","regular"],"unicode":"f1c2","label":"Word File"},"fill":{"search":{"terms":["bucket","color","paint","paint bucket"]},"styles":["solid"],"unicode":"f575","label":"Fill"},"fill-drip":{"search":{"terms":["bucket","color","drop","paint","paint bucket","spill"]},"styles":["solid"],"unicode":"f576","label":"Fill Drip"},"film":{"search":{"terms":["cinema","movie","strip","video"]},"styles":["solid"],"unicode":"f008","label":"Film"},"filter":{"search":{"terms":["funnel","options","separate","sort"]},"styles":["solid"],"unicode":"f0b0","label":"Filter"},"fingerprint":{"search":{"terms":["human","id","identification","lock","smudge","touch","unique","unlock"]},"styles":["solid"],"unicode":"f577","label":"Fingerprint"},"fire":{"search":{"terms":["burn","caliente","flame","heat","hot","popular"]},"styles":["solid"],"unicode":"f06d","label":"fire"},"fire-alt":{"search":{"terms":["burn","caliente","flame","heat","hot","popular"]},"styles":["solid"],"unicode":"f7e4","label":"Alternate Fire"},"fire-extinguisher":{"search":{"terms":["burn","caliente","fire fighter","flame","heat","hot","rescue"]},"styles":["solid"],"unicode":"f134","label":"fire-extinguisher"},"firefox":{"search":{"terms":["browser"]},"styles":["brands"],"unicode":"f269","label":"Firefox"},"firefox-browser":{"search":{"terms":["browser"]},"styles":["brands"],"unicode":"f907","label":"Firefox Browser"},"first-aid":{"search":{"terms":["emergency","emt","health","medical","rescue"]},"styles":["solid"],"unicode":"f479","label":"First Aid"},"first-order":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2b0","label":"First Order"},"first-order-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f50a","label":"Alternate First Order"},"firstdraft":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a1","label":"firstdraft"},"fish":{"search":{"terms":["fauna","gold","seafood","swimming"]},"styles":["solid"],"unicode":"f578","label":"Fish"},"fist-raised":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","hand","ki","monk","resist","strength","unarmed combat"]},"styles":["solid"],"unicode":"f6de","label":"Raised Fist"},"flag":{"search":{"terms":["country","notice","notification","notify","pole","report","symbol"]},"styles":["solid","regular"],"unicode":"f024","label":"flag"},"flag-checkered":{"search":{"terms":["notice","notification","notify","pole","racing","report","symbol"]},"styles":["solid"],"unicode":"f11e","label":"flag-checkered"},"flag-usa":{"search":{"terms":["betsy ross","country","old glory","stars","stripes","symbol"]},"styles":["solid"],"unicode":"f74d","label":"United States of America Flag"},"flask":{"search":{"terms":["beaker","experimental","labs","science"]},"styles":["solid"],"unicode":"f0c3","label":"Flask"},"flickr":{"search":{"terms":[]},"styles":["brands"],"unicode":"f16e","label":"Flickr"},"flipboard":{"search":{"terms":[]},"styles":["brands"],"unicode":"f44d","label":"Flipboard"},"flushed":{"search":{"terms":["embarrassed","emoticon","face"]},"styles":["solid","regular"],"unicode":"f579","label":"Flushed Face"},"fly":{"search":{"terms":[]},"styles":["brands"],"unicode":"f417","label":"Fly"},"folder":{"search":{"terms":["archive","directory","document","file"]},"styles":["solid","regular"],"unicode":"f07b","label":"Folder"},"folder-minus":{"search":{"terms":["archive","delete","directory","document","file","negative","remove"]},"styles":["solid"],"unicode":"f65d","label":"Folder Minus"},"folder-open":{"search":{"terms":["archive","directory","document","empty","file","new"]},"styles":["solid","regular"],"unicode":"f07c","label":"Folder Open"},"folder-plus":{"search":{"terms":["add","archive","create","directory","document","file","new","positive"]},"styles":["solid"],"unicode":"f65e","label":"Folder Plus"},"font":{"search":{"terms":["alphabet","glyph","text","type","typeface"]},"styles":["solid"],"unicode":"f031","label":"font"},"font-awesome":{"search":{"terms":["meanpath"]},"styles":["brands"],"unicode":"f2b4","label":"Font Awesome"},"font-awesome-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f35c","label":"Alternate Font Awesome"},"font-awesome-flag":{"search":{"terms":[]},"styles":["brands"],"unicode":"f425","label":"Font Awesome Flag"},"font-awesome-logo-full":{"search":{"terms":[]},"styles":["regular","solid","brands"],"unicode":"f4e6","label":"Font Awesome Full Logo","private":true},"fonticons":{"search":{"terms":[]},"styles":["brands"],"unicode":"f280","label":"Fonticons"},"fonticons-fi":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a2","label":"Fonticons Fi"},"football-ball":{"search":{"terms":["ball","fall","nfl","pigskin","seasonal"]},"styles":["solid"],"unicode":"f44e","label":"Football Ball"},"fort-awesome":{"search":{"terms":["castle"]},"styles":["brands"],"unicode":"f286","label":"Fort Awesome"},"fort-awesome-alt":{"search":{"terms":["castle"]},"styles":["brands"],"unicode":"f3a3","label":"Alternate Fort Awesome"},"forumbee":{"search":{"terms":[]},"styles":["brands"],"unicode":"f211","label":"Forumbee"},"forward":{"search":{"terms":["forward","next","skip"]},"styles":["solid"],"unicode":"f04e","label":"forward"},"foursquare":{"search":{"terms":[]},"styles":["brands"],"unicode":"f180","label":"Foursquare"},"free-code-camp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2c5","label":"freeCodeCamp"},"freebsd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a4","label":"FreeBSD"},"frog":{"search":{"terms":["amphibian","bullfrog","fauna","hop","kermit","kiss","prince","ribbit","toad","wart"]},"styles":["solid"],"unicode":"f52e","label":"Frog"},"frown":{"search":{"terms":["disapprove","emoticon","face","rating","sad"]},"styles":["solid","regular"],"unicode":"f119","label":"Frowning Face"},"frown-open":{"search":{"terms":["disapprove","emoticon","face","rating","sad"]},"styles":["solid","regular"],"unicode":"f57a","label":"Frowning Face With Open Mouth"},"fulcrum":{"search":{"terms":[]},"styles":["brands"],"unicode":"f50b","label":"Fulcrum"},"funnel-dollar":{"search":{"terms":["filter","money","options","separate","sort"]},"styles":["solid"],"unicode":"f662","label":"Funnel Dollar"},"futbol":{"search":{"terms":["ball","football","mls","soccer"]},"styles":["solid","regular"],"unicode":"f1e3","label":"Futbol"},"galactic-republic":{"search":{"terms":["politics","star wars"]},"styles":["brands"],"unicode":"f50c","label":"Galactic Republic"},"galactic-senate":{"search":{"terms":["star wars"]},"styles":["brands"],"unicode":"f50d","label":"Galactic Senate"},"gamepad":{"search":{"terms":["arcade","controller","d-pad","joystick","video","video game"]},"styles":["solid"],"unicode":"f11b","label":"Gamepad"},"gas-pump":{"search":{"terms":["car","fuel","gasoline","petrol"]},"styles":["solid"],"unicode":"f52f","label":"Gas Pump"},"gavel":{"search":{"terms":["hammer","judge","law","lawyer","opinion"]},"styles":["solid"],"unicode":"f0e3","label":"Gavel"},"gem":{"search":{"terms":["diamond","jewelry","sapphire","stone","treasure"]},"styles":["solid","regular"],"unicode":"f3a5","label":"Gem"},"genderless":{"search":{"terms":["androgynous","asexual","sexless"]},"styles":["solid"],"unicode":"f22d","label":"Genderless"},"get-pocket":{"search":{"terms":[]},"styles":["brands"],"unicode":"f265","label":"Get Pocket"},"gg":{"search":{"terms":[]},"styles":["brands"],"unicode":"f260","label":"GG Currency"},"gg-circle":{"search":{"terms":[]},"styles":["brands"],"unicode":"f261","label":"GG Currency Circle"},"ghost":{"search":{"terms":["apparition","blinky","clyde","floating","halloween","holiday","inky","pinky","spirit"]},"styles":["solid"],"unicode":"f6e2","label":"Ghost"},"gift":{"search":{"terms":["christmas","generosity","giving","holiday","party","present","wrapped","xmas"]},"styles":["solid"],"unicode":"f06b","label":"gift"},"gifts":{"search":{"terms":["christmas","generosity","giving","holiday","party","present","wrapped","xmas"]},"styles":["solid"],"unicode":"f79c","label":"Gifts"},"git":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d3","label":"Git"},"git-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f841","label":"Git Alt"},"git-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d2","label":"Git Square"},"github":{"search":{"terms":["octocat"]},"styles":["brands"],"unicode":"f09b","label":"GitHub"},"github-alt":{"search":{"terms":["octocat"]},"styles":["brands"],"unicode":"f113","label":"Alternate GitHub"},"github-square":{"search":{"terms":["octocat"]},"styles":["brands"],"unicode":"f092","label":"GitHub Square"},"gitkraken":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a6","label":"GitKraken"},"gitlab":{"search":{"terms":["Axosoft"]},"styles":["brands"],"unicode":"f296","label":"GitLab"},"gitter":{"search":{"terms":[]},"styles":["brands"],"unicode":"f426","label":"Gitter"},"glass-cheers":{"search":{"terms":["alcohol","bar","beverage","celebration","champagne","clink","drink","holiday","new year\'s eve","party","toast"]},"styles":["solid"],"unicode":"f79f","label":"Glass Cheers"},"glass-martini":{"search":{"terms":["alcohol","bar","beverage","drink","liquor"]},"styles":["solid"],"unicode":"f000","label":"Martini Glass"},"glass-martini-alt":{"search":{"terms":["alcohol","bar","beverage","drink","liquor"]},"styles":["solid"],"unicode":"f57b","label":"Alternate Glass Martini"},"glass-whiskey":{"search":{"terms":["alcohol","bar","beverage","bourbon","drink","liquor","neat","rye","scotch","whisky"]},"styles":["solid"],"unicode":"f7a0","label":"Glass Whiskey"},"glasses":{"search":{"terms":["hipster","nerd","reading","sight","spectacles","vision"]},"styles":["solid"],"unicode":"f530","label":"Glasses"},"glide":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2a5","label":"Glide"},"glide-g":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2a6","label":"Glide G"},"globe":{"search":{"terms":["all","coordinates","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},"styles":["solid"],"unicode":"f0ac","label":"Globe"},"globe-africa":{"search":{"terms":["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},"styles":["solid"],"unicode":"f57c","label":"Globe with Africa shown"},"globe-americas":{"search":{"terms":["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},"styles":["solid"],"unicode":"f57d","label":"Globe with Americas shown"},"globe-asia":{"search":{"terms":["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},"styles":["solid"],"unicode":"f57e","label":"Globe with Asia shown"},"globe-europe":{"search":{"terms":["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},"styles":["solid"],"unicode":"f7a2","label":"Globe with Europe shown"},"gofore":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a7","label":"Gofore"},"golf-ball":{"search":{"terms":["caddy","eagle","putt","tee"]},"styles":["solid"],"unicode":"f450","label":"Golf Ball"},"goodreads":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a8","label":"Goodreads"},"goodreads-g":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3a9","label":"Goodreads G"},"google":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a0","label":"Google Logo"},"google-drive":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3aa","label":"Google Drive"},"google-play":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ab","label":"Google Play"},"google-plus":{"search":{"terms":["google-plus-circle","google-plus-official"]},"styles":["brands"],"unicode":"f2b3","label":"Google Plus"},"google-plus-g":{"search":{"terms":["google-plus","social network"]},"styles":["brands"],"unicode":"f0d5","label":"Google Plus G"},"google-plus-square":{"search":{"terms":["social network"]},"styles":["brands"],"unicode":"f0d4","label":"Google Plus Square"},"google-wallet":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1ee","label":"Google Wallet"},"gopuram":{"search":{"terms":["building","entrance","hinduism","temple","tower"]},"styles":["solid"],"unicode":"f664","label":"Gopuram"},"graduation-cap":{"search":{"terms":["ceremony","college","graduate","learning","school","student"]},"styles":["solid"],"unicode":"f19d","label":"Graduation Cap"},"gratipay":{"search":{"terms":["favorite","heart","like","love"]},"styles":["brands"],"unicode":"f184","label":"Gratipay (Gittip)"},"grav":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2d6","label":"Grav"},"greater-than":{"search":{"terms":["arithmetic","compare","math"]},"styles":["solid"],"unicode":"f531","label":"Greater Than"},"greater-than-equal":{"search":{"terms":["arithmetic","compare","math"]},"styles":["solid"],"unicode":"f532","label":"Greater Than Equal To"},"grimace":{"search":{"terms":["cringe","emoticon","face","teeth"]},"styles":["solid","regular"],"unicode":"f57f","label":"Grimacing Face"},"grin":{"search":{"terms":["emoticon","face","laugh","smile"]},"styles":["solid","regular"],"unicode":"f580","label":"Grinning Face"},"grin-alt":{"search":{"terms":["emoticon","face","laugh","smile"]},"styles":["solid","regular"],"unicode":"f581","label":"Alternate Grinning Face"},"grin-beam":{"search":{"terms":["emoticon","face","laugh","smile"]},"styles":["solid","regular"],"unicode":"f582","label":"Grinning Face With Smiling Eyes"},"grin-beam-sweat":{"search":{"terms":["embarass","emoticon","face","smile"]},"styles":["solid","regular"],"unicode":"f583","label":"Grinning Face With Sweat"},"grin-hearts":{"search":{"terms":["emoticon","face","love","smile"]},"styles":["solid","regular"],"unicode":"f584","label":"Smiling Face With Heart-Eyes"},"grin-squint":{"search":{"terms":["emoticon","face","laugh","smile"]},"styles":["solid","regular"],"unicode":"f585","label":"Grinning Squinting Face"},"grin-squint-tears":{"search":{"terms":["emoticon","face","happy","smile"]},"styles":["solid","regular"],"unicode":"f586","label":"Rolling on the Floor Laughing"},"grin-stars":{"search":{"terms":["emoticon","face","star-struck"]},"styles":["solid","regular"],"unicode":"f587","label":"Star-Struck"},"grin-tears":{"search":{"terms":["LOL","emoticon","face"]},"styles":["solid","regular"],"unicode":"f588","label":"Face With Tears of Joy"},"grin-tongue":{"search":{"terms":["LOL","emoticon","face"]},"styles":["solid","regular"],"unicode":"f589","label":"Face With Tongue"},"grin-tongue-squint":{"search":{"terms":["LOL","emoticon","face"]},"styles":["solid","regular"],"unicode":"f58a","label":"Squinting Face With Tongue"},"grin-tongue-wink":{"search":{"terms":["LOL","emoticon","face"]},"styles":["solid","regular"],"unicode":"f58b","label":"Winking Face With Tongue"},"grin-wink":{"search":{"terms":["emoticon","face","flirt","laugh","smile"]},"styles":["solid","regular"],"unicode":"f58c","label":"Grinning Winking Face"},"grip-horizontal":{"search":{"terms":["affordance","drag","drop","grab","handle"]},"styles":["solid"],"unicode":"f58d","label":"Grip Horizontal"},"grip-lines":{"search":{"terms":["affordance","drag","drop","grab","handle"]},"styles":["solid"],"unicode":"f7a4","label":"Grip Lines"},"grip-lines-vertical":{"search":{"terms":["affordance","drag","drop","grab","handle"]},"styles":["solid"],"unicode":"f7a5","label":"Grip Lines Vertical"},"grip-vertical":{"search":{"terms":["affordance","drag","drop","grab","handle"]},"styles":["solid"],"unicode":"f58e","label":"Grip Vertical"},"gripfire":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ac","label":"Gripfire, Inc."},"grunt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ad","label":"Grunt"},"guitar":{"search":{"terms":["acoustic","instrument","music","rock","rock and roll","song","strings"]},"styles":["solid"],"unicode":"f7a6","label":"Guitar"},"gulp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ae","label":"Gulp"},"h-square":{"search":{"terms":["directions","emergency","hospital","hotel","map"]},"styles":["solid"],"unicode":"f0fd","label":"H Square"},"hacker-news":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d4","label":"Hacker News"},"hacker-news-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3af","label":"Hacker News Square"},"hackerrank":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5f7","label":"Hackerrank"},"hamburger":{"search":{"terms":["bacon","beef","burger","burger king","cheeseburger","fast food","grill","ground beef","mcdonalds","sandwich"]},"styles":["solid"],"unicode":"f805","label":"Hamburger"},"hammer":{"search":{"terms":["admin","fix","repair","settings","tool"]},"styles":["solid"],"unicode":"f6e3","label":"Hammer"},"hamsa":{"search":{"terms":["amulet","christianity","islam","jewish","judaism","muslim","protection"]},"styles":["solid"],"unicode":"f665","label":"Hamsa"},"hand-holding":{"search":{"terms":["carry","lift"]},"styles":["solid"],"unicode":"f4bd","label":"Hand Holding"},"hand-holding-heart":{"search":{"terms":["carry","charity","gift","lift","package"]},"styles":["solid"],"unicode":"f4be","label":"Hand Holding Heart"},"hand-holding-medical":{"search":{"terms":["care","covid-19","donate","help"]},"styles":["solid"],"unicode":"f95c","label":"Hand Holding Medical Cross"},"hand-holding-usd":{"search":{"terms":["$","carry","dollar sign","donation","giving","lift","money","price"]},"styles":["solid"],"unicode":"f4c0","label":"Hand Holding US Dollar"},"hand-holding-water":{"search":{"terms":["carry","covid-19","drought","grow","lift"]},"styles":["solid"],"unicode":"f4c1","label":"Hand Holding Water"},"hand-lizard":{"search":{"terms":["game","roshambo"]},"styles":["solid","regular"],"unicode":"f258","label":"Lizard (Hand)"},"hand-middle-finger":{"search":{"terms":["flip the bird","gesture","hate","rude"]},"styles":["solid"],"unicode":"f806","label":"Hand with Middle Finger Raised"},"hand-paper":{"search":{"terms":["game","halt","roshambo","stop"]},"styles":["solid","regular"],"unicode":"f256","label":"Paper (Hand)"},"hand-peace":{"search":{"terms":["rest","truce"]},"styles":["solid","regular"],"unicode":"f25b","label":"Peace (Hand)"},"hand-point-down":{"search":{"terms":["finger","hand-o-down","point"]},"styles":["solid","regular"],"unicode":"f0a7","label":"Hand Pointing Down"},"hand-point-left":{"search":{"terms":["back","finger","hand-o-left","left","point","previous"]},"styles":["solid","regular"],"unicode":"f0a5","label":"Hand Pointing Left"},"hand-point-right":{"search":{"terms":["finger","forward","hand-o-right","next","point","right"]},"styles":["solid","regular"],"unicode":"f0a4","label":"Hand Pointing Right"},"hand-point-up":{"search":{"terms":["finger","hand-o-up","point"]},"styles":["solid","regular"],"unicode":"f0a6","label":"Hand Pointing Up"},"hand-pointer":{"search":{"terms":["arrow","cursor","select"]},"styles":["solid","regular"],"unicode":"f25a","label":"Pointer (Hand)"},"hand-rock":{"search":{"terms":["fist","game","roshambo"]},"styles":["solid","regular"],"unicode":"f255","label":"Rock (Hand)"},"hand-scissors":{"search":{"terms":["cut","game","roshambo"]},"styles":["solid","regular"],"unicode":"f257","label":"Scissors (Hand)"},"hand-sparkles":{"search":{"terms":["clean","covid-19","hygiene","magic","soap","wash"]},"styles":["solid"],"unicode":"f95d","label":"Hand Sparkles"},"hand-spock":{"search":{"terms":["live long","prosper","salute","star trek","vulcan"]},"styles":["solid","regular"],"unicode":"f259","label":"Spock (Hand)"},"hands":{"search":{"terms":["carry","hold","lift"]},"styles":["solid"],"unicode":"f4c2","label":"Hands"},"hands-helping":{"search":{"terms":["aid","assistance","handshake","partnership","volunteering"]},"styles":["solid"],"unicode":"f4c4","label":"Helping Hands"},"hands-wash":{"search":{"terms":["covid-19","hygiene","soap","wash"]},"styles":["solid"],"unicode":"f95e","label":"Hands Wash"},"handshake":{"search":{"terms":["agreement","greeting","meeting","partnership"]},"styles":["solid","regular"],"unicode":"f2b5","label":"Handshake"},"handshake-alt-slash":{"search":{"terms":["broken","covid-19","social distance"]},"styles":["solid"],"unicode":"f95f","label":"Handshake Alternate Slash"},"handshake-slash":{"search":{"terms":["broken","covid-19","social distance"]},"styles":["solid"],"unicode":"f960","label":"Handshake Slash"},"hanukiah":{"search":{"terms":["candle","hanukkah","jewish","judaism","light"]},"styles":["solid"],"unicode":"f6e6","label":"Hanukiah"},"hard-hat":{"search":{"terms":["construction","hardhat","helmet","safety"]},"styles":["solid"],"unicode":"f807","label":"Hard Hat"},"hashtag":{"search":{"terms":["Twitter","instagram","pound","social media","tag"]},"styles":["solid"],"unicode":"f292","label":"Hashtag"},"hat-cowboy":{"search":{"terms":["buckaroo","horse","jackeroo","john b.","old west","pardner","ranch","rancher","rodeo","western","wrangler"]},"styles":["solid"],"unicode":"f8c0","label":"Cowboy Hat"},"hat-cowboy-side":{"search":{"terms":["buckaroo","horse","jackeroo","john b.","old west","pardner","ranch","rancher","rodeo","western","wrangler"]},"styles":["solid"],"unicode":"f8c1","label":"Cowboy Hat Side"},"hat-wizard":{"search":{"terms":["Dungeons & Dragons","accessory","buckle","clothing","d&d","dnd","fantasy","halloween","head","holiday","mage","magic","pointy","witch"]},"styles":["solid"],"unicode":"f6e8","label":"Wizard\'s Hat"},"hdd":{"search":{"terms":["cpu","hard drive","harddrive","machine","save","storage"]},"styles":["solid","regular"],"unicode":"f0a0","label":"HDD"},"head-side-cough":{"search":{"terms":["cough","covid-19","germs","lungs","respiratory","sick"]},"styles":["solid"],"unicode":"f961","label":"Head Side Cough"},"head-side-cough-slash":{"search":{"terms":["cough","covid-19","germs","lungs","respiratory","sick"]},"styles":["solid"],"unicode":"f962","label":"Head Side-cough-slash"},"head-side-mask":{"search":{"terms":["breath","covid-19","filter","respirator","virus"]},"styles":["solid"],"unicode":"f963","label":"Head Side Mask"},"head-side-virus":{"search":{"terms":["cold","covid-19","flu","sick"]},"styles":["solid"],"unicode":"f964","label":"Head Side Virus"},"heading":{"search":{"terms":["format","header","text","title"]},"styles":["solid"],"unicode":"f1dc","label":"heading"},"headphones":{"search":{"terms":["audio","listen","music","sound","speaker"]},"styles":["solid"],"unicode":"f025","label":"headphones"},"headphones-alt":{"search":{"terms":["audio","listen","music","sound","speaker"]},"styles":["solid"],"unicode":"f58f","label":"Alternate Headphones"},"headset":{"search":{"terms":["audio","gamer","gaming","listen","live chat","microphone","shot caller","sound","support","telemarketer"]},"styles":["solid"],"unicode":"f590","label":"Headset"},"heart":{"search":{"terms":["favorite","like","love","relationship","valentine"]},"styles":["solid","regular"],"unicode":"f004","label":"Heart"},"heart-broken":{"search":{"terms":["breakup","crushed","dislike","dumped","grief","love","lovesick","relationship","sad"]},"styles":["solid"],"unicode":"f7a9","label":"Heart Broken"},"heartbeat":{"search":{"terms":["ekg","electrocardiogram","health","lifeline","vital signs"]},"styles":["solid"],"unicode":"f21e","label":"Heartbeat"},"helicopter":{"search":{"terms":["airwolf","apache","chopper","flight","fly","travel"]},"styles":["solid"],"unicode":"f533","label":"Helicopter"},"highlighter":{"search":{"terms":["edit","marker","sharpie","update","write"]},"styles":["solid"],"unicode":"f591","label":"Highlighter"},"hiking":{"search":{"terms":["activity","backpack","fall","fitness","outdoors","person","seasonal","walking"]},"styles":["solid"],"unicode":"f6ec","label":"Hiking"},"hippo":{"search":{"terms":["animal","fauna","hippopotamus","hungry","mammal"]},"styles":["solid"],"unicode":"f6ed","label":"Hippo"},"hips":{"search":{"terms":[]},"styles":["brands"],"unicode":"f452","label":"Hips"},"hire-a-helper":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b0","label":"HireAHelper"},"history":{"search":{"terms":["Rewind","clock","reverse","time","time machine"]},"styles":["solid"],"unicode":"f1da","label":"History"},"hockey-puck":{"search":{"terms":["ice","nhl","sport"]},"styles":["solid"],"unicode":"f453","label":"Hockey Puck"},"holly-berry":{"search":{"terms":["catwoman","christmas","decoration","flora","halle","holiday","ororo munroe","plant","storm","xmas"]},"styles":["solid"],"unicode":"f7aa","label":"Holly Berry"},"home":{"search":{"terms":["abode","building","house","main"]},"styles":["solid"],"unicode":"f015","label":"home"},"hooli":{"search":{"terms":[]},"styles":["brands"],"unicode":"f427","label":"Hooli"},"hornbill":{"search":{"terms":[]},"styles":["brands"],"unicode":"f592","label":"Hornbill"},"horse":{"search":{"terms":["equus","fauna","mammmal","mare","neigh","pony"]},"styles":["solid"],"unicode":"f6f0","label":"Horse"},"horse-head":{"search":{"terms":["equus","fauna","mammmal","mare","neigh","pony"]},"styles":["solid"],"unicode":"f7ab","label":"Horse Head"},"hospital":{"search":{"terms":["building","covid-19","emergency room","medical center"]},"styles":["solid","regular"],"unicode":"f0f8","label":"hospital"},"hospital-alt":{"search":{"terms":["building","covid-19","emergency room","medical center"]},"styles":["solid"],"unicode":"f47d","label":"Alternate Hospital"},"hospital-symbol":{"search":{"terms":["clinic","covid-19","emergency","map"]},"styles":["solid"],"unicode":"f47e","label":"Hospital Symbol"},"hospital-user":{"search":{"terms":["covid-19","doctor","network","patient","primary care"]},"styles":["solid"],"unicode":"f80d","label":"Hospital with User"},"hot-tub":{"search":{"terms":["bath","jacuzzi","massage","sauna","spa"]},"styles":["solid"],"unicode":"f593","label":"Hot Tub"},"hotdog":{"search":{"terms":["bun","chili","frankfurt","frankfurter","kosher","polish","sandwich","sausage","vienna","weiner"]},"styles":["solid"],"unicode":"f80f","label":"Hot Dog"},"hotel":{"search":{"terms":["building","inn","lodging","motel","resort","travel"]},"styles":["solid"],"unicode":"f594","label":"Hotel"},"hotjar":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b1","label":"Hotjar"},"hourglass":{"search":{"terms":["hour","minute","sand","stopwatch","time"]},"styles":["solid","regular"],"unicode":"f254","label":"Hourglass"},"hourglass-end":{"search":{"terms":["hour","minute","sand","stopwatch","time"]},"styles":["solid"],"unicode":"f253","label":"Hourglass End"},"hourglass-half":{"search":{"terms":["hour","minute","sand","stopwatch","time"]},"styles":["solid"],"unicode":"f252","label":"Hourglass Half"},"hourglass-start":{"search":{"terms":["hour","minute","sand","stopwatch","time"]},"styles":["solid"],"unicode":"f251","label":"Hourglass Start"},"house-damage":{"search":{"terms":["building","devastation","disaster","home","insurance"]},"styles":["solid"],"unicode":"f6f1","label":"Damaged House"},"house-user":{"search":{"terms":["covid-19","home","isolation","quarantine"]},"styles":["solid"],"unicode":"f965","label":"House User"},"houzz":{"search":{"terms":[]},"styles":["brands"],"unicode":"f27c","label":"Houzz"},"hryvnia":{"search":{"terms":["currency","money","ukraine","ukrainian"]},"styles":["solid"],"unicode":"f6f2","label":"Hryvnia"},"html5":{"search":{"terms":[]},"styles":["brands"],"unicode":"f13b","label":"HTML 5 Logo"},"hubspot":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b2","label":"HubSpot"},"i-cursor":{"search":{"terms":["editing","i-beam","type","writing"]},"styles":["solid"],"unicode":"f246","label":"I Beam Cursor"},"ice-cream":{"search":{"terms":["chocolate","cone","dessert","frozen","scoop","sorbet","vanilla","yogurt"]},"styles":["solid"],"unicode":"f810","label":"Ice Cream"},"icicles":{"search":{"terms":["cold","frozen","hanging","ice","seasonal","sharp"]},"styles":["solid"],"unicode":"f7ad","label":"Icicles"},"icons":{"search":{"terms":["bolt","emoji","heart","image","music","photo","symbols"]},"styles":["solid"],"unicode":"f86d","label":"Icons"},"id-badge":{"search":{"terms":["address","contact","identification","license","profile"]},"styles":["solid","regular"],"unicode":"f2c1","label":"Identification Badge"},"id-card":{"search":{"terms":["contact","demographics","document","identification","issued","profile"]},"styles":["solid","regular"],"unicode":"f2c2","label":"Identification Card"},"id-card-alt":{"search":{"terms":["contact","demographics","document","identification","issued","profile"]},"styles":["solid"],"unicode":"f47f","label":"Alternate Identification Card"},"ideal":{"search":{"terms":[]},"styles":["brands"],"unicode":"f913","label":"iDeal"},"igloo":{"search":{"terms":["dome","dwelling","eskimo","home","house","ice","snow"]},"styles":["solid"],"unicode":"f7ae","label":"Igloo"},"image":{"search":{"terms":["album","landscape","photo","picture"]},"styles":["solid","regular"],"unicode":"f03e","label":"Image"},"images":{"search":{"terms":["album","landscape","photo","picture"]},"styles":["solid","regular"],"unicode":"f302","label":"Images"},"imdb":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2d8","label":"IMDB"},"inbox":{"search":{"terms":["archive","desk","email","mail","message"]},"styles":["solid"],"unicode":"f01c","label":"inbox"},"indent":{"search":{"terms":["align","justify","paragraph","tab"]},"styles":["solid"],"unicode":"f03c","label":"Indent"},"industry":{"search":{"terms":["building","factory","industrial","manufacturing","mill","warehouse"]},"styles":["solid"],"unicode":"f275","label":"Industry"},"infinity":{"search":{"terms":["eternity","forever","math"]},"styles":["solid"],"unicode":"f534","label":"Infinity"},"info":{"search":{"terms":["details","help","information","more","support"]},"styles":["solid"],"unicode":"f129","label":"Info"},"info-circle":{"search":{"terms":["details","help","information","more","support"]},"styles":["solid"],"unicode":"f05a","label":"Info Circle"},"instagram":{"search":{"terms":[]},"styles":["brands"],"unicode":"f16d","label":"Instagram"},"instagram-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f955","label":"Instagram Square"},"intercom":{"search":{"terms":["app","customer","messenger"]},"styles":["brands"],"unicode":"f7af","label":"Intercom"},"internet-explorer":{"search":{"terms":["browser","ie"]},"styles":["brands"],"unicode":"f26b","label":"Internet-explorer"},"invision":{"search":{"terms":["app","design","interface"]},"styles":["brands"],"unicode":"f7b0","label":"InVision"},"ioxhost":{"search":{"terms":[]},"styles":["brands"],"unicode":"f208","label":"ioxhost"},"italic":{"search":{"terms":["edit","emphasis","font","format","text","type"]},"styles":["solid"],"unicode":"f033","label":"italic"},"itch-io":{"search":{"terms":[]},"styles":["brands"],"unicode":"f83a","label":"itch.io"},"itunes":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b4","label":"iTunes"},"itunes-note":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b5","label":"Itunes Note"},"java":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4e4","label":"Java"},"jedi":{"search":{"terms":["crest","force","sith","skywalker","star wars","yoda"]},"styles":["solid"],"unicode":"f669","label":"Jedi"},"jedi-order":{"search":{"terms":["star wars"]},"styles":["brands"],"unicode":"f50e","label":"Jedi Order"},"jenkins":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b6","label":"Jenkis"},"jira":{"search":{"terms":["atlassian"]},"styles":["brands"],"unicode":"f7b1","label":"Jira"},"joget":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b7","label":"Joget"},"joint":{"search":{"terms":["blunt","cannabis","doobie","drugs","marijuana","roach","smoke","smoking","spliff"]},"styles":["solid"],"unicode":"f595","label":"Joint"},"joomla":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1aa","label":"Joomla Logo"},"journal-whills":{"search":{"terms":["book","force","jedi","sith","star wars","yoda"]},"styles":["solid"],"unicode":"f66a","label":"Journal of the Whills"},"js":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b8","label":"JavaScript (JS)"},"js-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3b9","label":"JavaScript (JS) Square"},"jsfiddle":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1cc","label":"jsFiddle"},"kaaba":{"search":{"terms":["building","cube","islam","muslim"]},"styles":["solid"],"unicode":"f66b","label":"Kaaba"},"kaggle":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5fa","label":"Kaggle"},"key":{"search":{"terms":["lock","password","private","secret","unlock"]},"styles":["solid"],"unicode":"f084","label":"key"},"keybase":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f5","label":"Keybase"},"keyboard":{"search":{"terms":["accessory","edit","input","text","type","write"]},"styles":["solid","regular"],"unicode":"f11c","label":"Keyboard"},"keycdn":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ba","label":"KeyCDN"},"khanda":{"search":{"terms":["chakkar","sikh","sikhism","sword"]},"styles":["solid"],"unicode":"f66d","label":"Khanda"},"kickstarter":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3bb","label":"Kickstarter"},"kickstarter-k":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3bc","label":"Kickstarter K"},"kiss":{"search":{"terms":["beso","emoticon","face","love","smooch"]},"styles":["solid","regular"],"unicode":"f596","label":"Kissing Face"},"kiss-beam":{"search":{"terms":["beso","emoticon","face","love","smooch"]},"styles":["solid","regular"],"unicode":"f597","label":"Kissing Face With Smiling Eyes"},"kiss-wink-heart":{"search":{"terms":["beso","emoticon","face","love","smooch"]},"styles":["solid","regular"],"unicode":"f598","label":"Face Blowing a Kiss"},"kiwi-bird":{"search":{"terms":["bird","fauna","new zealand"]},"styles":["solid"],"unicode":"f535","label":"Kiwi Bird"},"korvue":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42f","label":"KORVUE"},"landmark":{"search":{"terms":["building","historic","memorable","monument","politics"]},"styles":["solid"],"unicode":"f66f","label":"Landmark"},"language":{"search":{"terms":["dialect","idiom","localize","speech","translate","vernacular"]},"styles":["solid"],"unicode":"f1ab","label":"Language"},"laptop":{"search":{"terms":["computer","cpu","dell","demo","device","mac","macbook","machine","pc"]},"styles":["solid"],"unicode":"f109","label":"Laptop"},"laptop-code":{"search":{"terms":["computer","cpu","dell","demo","develop","device","mac","macbook","machine","pc"]},"styles":["solid"],"unicode":"f5fc","label":"Laptop Code"},"laptop-house":{"search":{"terms":["computer","covid-19","device","office","remote","work from home"]},"styles":["solid"],"unicode":"f966","label":"Laptop House"},"laptop-medical":{"search":{"terms":["computer","device","ehr","electronic health records","history"]},"styles":["solid"],"unicode":"f812","label":"Laptop Medical"},"laravel":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3bd","label":"Laravel"},"lastfm":{"search":{"terms":[]},"styles":["brands"],"unicode":"f202","label":"last.fm"},"lastfm-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f203","label":"last.fm Square"},"laugh":{"search":{"terms":["LOL","emoticon","face","laugh","smile"]},"styles":["solid","regular"],"unicode":"f599","label":"Grinning Face With Big Eyes"},"laugh-beam":{"search":{"terms":["LOL","emoticon","face","happy","smile"]},"styles":["solid","regular"],"unicode":"f59a","label":"Laugh Face with Beaming Eyes"},"laugh-squint":{"search":{"terms":["LOL","emoticon","face","happy","smile"]},"styles":["solid","regular"],"unicode":"f59b","label":"Laughing Squinting Face"},"laugh-wink":{"search":{"terms":["LOL","emoticon","face","happy","smile"]},"styles":["solid","regular"],"unicode":"f59c","label":"Laughing Winking Face"},"layer-group":{"search":{"terms":["arrange","develop","layers","map","stack"]},"styles":["solid"],"unicode":"f5fd","label":"Layer Group"},"leaf":{"search":{"terms":["eco","flora","nature","plant","vegan"]},"styles":["solid"],"unicode":"f06c","label":"leaf"},"leanpub":{"search":{"terms":[]},"styles":["brands"],"unicode":"f212","label":"Leanpub"},"lemon":{"search":{"terms":["citrus","lemonade","lime","tart"]},"styles":["solid","regular"],"unicode":"f094","label":"Lemon"},"less":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41d","label":"Less"},"less-than":{"search":{"terms":["arithmetic","compare","math"]},"styles":["solid"],"unicode":"f536","label":"Less Than"},"less-than-equal":{"search":{"terms":["arithmetic","compare","math"]},"styles":["solid"],"unicode":"f537","label":"Less Than Equal To"},"level-down-alt":{"search":{"terms":["arrow","level-down"]},"styles":["solid"],"unicode":"f3be","label":"Alternate Level Down"},"level-up-alt":{"search":{"terms":["arrow","level-up"]},"styles":["solid"],"unicode":"f3bf","label":"Alternate Level Up"},"life-ring":{"search":{"terms":["coast guard","help","overboard","save","support"]},"styles":["solid","regular"],"unicode":"f1cd","label":"Life Ring"},"lightbulb":{"search":{"terms":["energy","idea","inspiration","light"]},"styles":["solid","regular"],"unicode":"f0eb","label":"Lightbulb"},"line":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c0","label":"Line"},"link":{"search":{"terms":["attach","attachment","chain","connect"]},"styles":["solid"],"unicode":"f0c1","label":"Link"},"linkedin":{"search":{"terms":["linkedin-square"]},"styles":["brands"],"unicode":"f08c","label":"LinkedIn"},"linkedin-in":{"search":{"terms":["linkedin"]},"styles":["brands"],"unicode":"f0e1","label":"LinkedIn In"},"linode":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2b8","label":"Linode"},"linux":{"search":{"terms":["tux"]},"styles":["brands"],"unicode":"f17c","label":"Linux"},"lira-sign":{"search":{"terms":["currency","money","try","turkish"]},"styles":["solid"],"unicode":"f195","label":"Turkish Lira Sign"},"list":{"search":{"terms":["checklist","completed","done","finished","ol","todo","ul"]},"styles":["solid"],"unicode":"f03a","label":"List"},"list-alt":{"search":{"terms":["checklist","completed","done","finished","ol","todo","ul"]},"styles":["solid","regular"],"unicode":"f022","label":"Alternate List"},"list-ol":{"search":{"terms":["checklist","completed","done","finished","numbers","ol","todo","ul"]},"styles":["solid"],"unicode":"f0cb","label":"list-ol"},"list-ul":{"search":{"terms":["checklist","completed","done","finished","ol","todo","ul"]},"styles":["solid"],"unicode":"f0ca","label":"list-ul"},"location-arrow":{"search":{"terms":["address","compass","coordinate","direction","gps","map","navigation","place"]},"styles":["solid"],"unicode":"f124","label":"location-arrow"},"lock":{"search":{"terms":["admin","lock","open","password","private","protect","security"]},"styles":["solid"],"unicode":"f023","label":"lock"},"lock-open":{"search":{"terms":["admin","lock","open","password","private","protect","security"]},"styles":["solid"],"unicode":"f3c1","label":"Lock Open"},"long-arrow-alt-down":{"search":{"terms":["download","long-arrow-down"]},"styles":["solid"],"unicode":"f309","label":"Alternate Long Arrow Down"},"long-arrow-alt-left":{"search":{"terms":["back","long-arrow-left","previous"]},"styles":["solid"],"unicode":"f30a","label":"Alternate Long Arrow Left"},"long-arrow-alt-right":{"search":{"terms":["forward","long-arrow-right","next"]},"styles":["solid"],"unicode":"f30b","label":"Alternate Long Arrow Right"},"long-arrow-alt-up":{"search":{"terms":["long-arrow-up","upload"]},"styles":["solid"],"unicode":"f30c","label":"Alternate Long Arrow Up"},"low-vision":{"search":{"terms":["blind","eye","sight"]},"styles":["solid"],"unicode":"f2a8","label":"Low Vision"},"luggage-cart":{"search":{"terms":["bag","baggage","suitcase","travel"]},"styles":["solid"],"unicode":"f59d","label":"Luggage Cart"},"lungs":{"search":{"terms":["air","breath","covid-19","organ","respiratory"]},"styles":["solid"],"unicode":"f604","label":"Lungs"},"lungs-virus":{"search":{"terms":["breath","covid-19","respiratory","sick"]},"styles":["solid"],"unicode":"f967","label":"Lungs Virus"},"lyft":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c3","label":"lyft"},"magento":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c4","label":"Magento"},"magic":{"search":{"terms":["autocomplete","automatic","mage","magic","spell","wand","witch","wizard"]},"styles":["solid"],"unicode":"f0d0","label":"magic"},"magnet":{"search":{"terms":["Attract","lodestone","tool"]},"styles":["solid"],"unicode":"f076","label":"magnet"},"mail-bulk":{"search":{"terms":["archive","envelope","letter","post office","postal","postcard","send","stamp","usps"]},"styles":["solid"],"unicode":"f674","label":"Mail Bulk"},"mailchimp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f59e","label":"Mailchimp"},"male":{"search":{"terms":["human","man","person","profile","user"]},"styles":["solid"],"unicode":"f183","label":"Male"},"mandalorian":{"search":{"terms":[]},"styles":["brands"],"unicode":"f50f","label":"Mandalorian"},"map":{"search":{"terms":["address","coordinates","destination","gps","localize","location","map","navigation","paper","pin","place","point of interest","position","route","travel"]},"styles":["solid","regular"],"unicode":"f279","label":"Map"},"map-marked":{"search":{"terms":["address","coordinates","destination","gps","localize","location","map","navigation","paper","pin","place","point of interest","position","route","travel"]},"styles":["solid"],"unicode":"f59f","label":"Map Marked"},"map-marked-alt":{"search":{"terms":["address","coordinates","destination","gps","localize","location","map","navigation","paper","pin","place","point of interest","position","route","travel"]},"styles":["solid"],"unicode":"f5a0","label":"Alternate Map Marked"},"map-marker":{"search":{"terms":["address","coordinates","destination","gps","localize","location","map","navigation","paper","pin","place","point of interest","position","route","travel"]},"styles":["solid"],"unicode":"f041","label":"map-marker"},"map-marker-alt":{"search":{"terms":["address","coordinates","destination","gps","localize","location","map","navigation","paper","pin","place","point of interest","position","route","travel"]},"styles":["solid"],"unicode":"f3c5","label":"Alternate Map Marker"},"map-pin":{"search":{"terms":["address","agree","coordinates","destination","gps","localize","location","map","marker","navigation","pin","place","position","travel"]},"styles":["solid"],"unicode":"f276","label":"Map Pin"},"map-signs":{"search":{"terms":["directions","directory","map","signage","wayfinding"]},"styles":["solid"],"unicode":"f277","label":"Map Signs"},"markdown":{"search":{"terms":[]},"styles":["brands"],"unicode":"f60f","label":"Markdown"},"marker":{"search":{"terms":["design","edit","sharpie","update","write"]},"styles":["solid"],"unicode":"f5a1","label":"Marker"},"mars":{"search":{"terms":["male"]},"styles":["solid"],"unicode":"f222","label":"Mars"},"mars-double":{"search":{"terms":[]},"styles":["solid"],"unicode":"f227","label":"Mars Double"},"mars-stroke":{"search":{"terms":[]},"styles":["solid"],"unicode":"f229","label":"Mars Stroke"},"mars-stroke-h":{"search":{"terms":[]},"styles":["solid"],"unicode":"f22b","label":"Mars Stroke Horizontal"},"mars-stroke-v":{"search":{"terms":[]},"styles":["solid"],"unicode":"f22a","label":"Mars Stroke Vertical"},"mask":{"search":{"terms":["carnivale","costume","disguise","halloween","secret","super hero"]},"styles":["solid"],"unicode":"f6fa","label":"Mask"},"mastodon":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f6","label":"Mastodon"},"maxcdn":{"search":{"terms":[]},"styles":["brands"],"unicode":"f136","label":"MaxCDN"},"mdb":{"search":{"terms":[]},"styles":["brands"],"unicode":"f8ca","label":"Material Design for Bootstrap"},"medal":{"search":{"terms":["award","ribbon","star","trophy"]},"styles":["solid"],"unicode":"f5a2","label":"Medal"},"medapps":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c6","label":"MedApps"},"medium":{"search":{"terms":[]},"styles":["brands"],"unicode":"f23a","label":"Medium"},"medium-m":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c7","label":"Medium M"},"medkit":{"search":{"terms":["first aid","firstaid","health","help","support"]},"styles":["solid"],"unicode":"f0fa","label":"medkit"},"medrt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3c8","label":"MRT"},"meetup":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2e0","label":"Meetup"},"megaport":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5a3","label":"Megaport"},"meh":{"search":{"terms":["emoticon","face","neutral","rating"]},"styles":["solid","regular"],"unicode":"f11a","label":"Neutral Face"},"meh-blank":{"search":{"terms":["emoticon","face","neutral","rating"]},"styles":["solid","regular"],"unicode":"f5a4","label":"Face Without Mouth"},"meh-rolling-eyes":{"search":{"terms":["emoticon","face","neutral","rating"]},"styles":["solid","regular"],"unicode":"f5a5","label":"Face With Rolling Eyes"},"memory":{"search":{"terms":["DIMM","RAM","hardware","storage","technology"]},"styles":["solid"],"unicode":"f538","label":"Memory"},"mendeley":{"search":{"terms":[]},"styles":["brands"],"unicode":"f7b3","label":"Mendeley"},"menorah":{"search":{"terms":["candle","hanukkah","jewish","judaism","light"]},"styles":["solid"],"unicode":"f676","label":"Menorah"},"mercury":{"search":{"terms":["transgender"]},"styles":["solid"],"unicode":"f223","label":"Mercury"},"meteor":{"search":{"terms":["armageddon","asteroid","comet","shooting star","space"]},"styles":["solid"],"unicode":"f753","label":"Meteor"},"microblog":{"search":{"terms":[]},"styles":["brands"],"unicode":"f91a","label":"Micro.blog"},"microchip":{"search":{"terms":["cpu","hardware","processor","technology"]},"styles":["solid"],"unicode":"f2db","label":"Microchip"},"microphone":{"search":{"terms":["audio","podcast","record","sing","sound","voice"]},"styles":["solid"],"unicode":"f130","label":"microphone"},"microphone-alt":{"search":{"terms":["audio","podcast","record","sing","sound","voice"]},"styles":["solid"],"unicode":"f3c9","label":"Alternate Microphone"},"microphone-alt-slash":{"search":{"terms":["audio","disable","mute","podcast","record","sing","sound","voice"]},"styles":["solid"],"unicode":"f539","label":"Alternate Microphone Slash"},"microphone-slash":{"search":{"terms":["audio","disable","mute","podcast","record","sing","sound","voice"]},"styles":["solid"],"unicode":"f131","label":"Microphone Slash"},"microscope":{"search":{"terms":["covid-19","electron","lens","optics","science","shrink"]},"styles":["solid"],"unicode":"f610","label":"Microscope"},"microsoft":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ca","label":"Microsoft"},"minus":{"search":{"terms":["collapse","delete","hide","minify","negative","remove","trash"]},"styles":["solid"],"unicode":"f068","label":"minus"},"minus-circle":{"search":{"terms":["delete","hide","negative","remove","shape","trash"]},"styles":["solid"],"unicode":"f056","label":"Minus Circle"},"minus-square":{"search":{"terms":["collapse","delete","hide","minify","negative","remove","shape","trash"]},"styles":["solid","regular"],"unicode":"f146","label":"Minus Square"},"mitten":{"search":{"terms":["clothing","cold","glove","hands","knitted","seasonal","warmth"]},"styles":["solid"],"unicode":"f7b5","label":"Mitten"},"mix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3cb","label":"Mix"},"mixcloud":{"search":{"terms":[]},"styles":["brands"],"unicode":"f289","label":"Mixcloud"},"mixer":{"search":{"terms":[]},"styles":["brands"],"unicode":"f956","label":"Mixer"},"mizuni":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3cc","label":"Mizuni"},"mobile":{"search":{"terms":["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone"]},"styles":["solid"],"unicode":"f10b","label":"Mobile Phone"},"mobile-alt":{"search":{"terms":["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone"]},"styles":["solid"],"unicode":"f3cd","label":"Alternate Mobile"},"modx":{"search":{"terms":[]},"styles":["brands"],"unicode":"f285","label":"MODX"},"monero":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d0","label":"Monero"},"money-bill":{"search":{"terms":["buy","cash","checkout","money","payment","price","purchase"]},"styles":["solid"],"unicode":"f0d6","label":"Money Bill"},"money-bill-alt":{"search":{"terms":["buy","cash","checkout","money","payment","price","purchase"]},"styles":["solid","regular"],"unicode":"f3d1","label":"Alternate Money Bill"},"money-bill-wave":{"search":{"terms":["buy","cash","checkout","money","payment","price","purchase"]},"styles":["solid"],"unicode":"f53a","label":"Wavy Money Bill"},"money-bill-wave-alt":{"search":{"terms":["buy","cash","checkout","money","payment","price","purchase"]},"styles":["solid"],"unicode":"f53b","label":"Alternate Wavy Money Bill"},"money-check":{"search":{"terms":["bank check","buy","checkout","cheque","money","payment","price","purchase"]},"styles":["solid"],"unicode":"f53c","label":"Money Check"},"money-check-alt":{"search":{"terms":["bank check","buy","checkout","cheque","money","payment","price","purchase"]},"styles":["solid"],"unicode":"f53d","label":"Alternate Money Check"},"monument":{"search":{"terms":["building","historic","landmark","memorable"]},"styles":["solid"],"unicode":"f5a6","label":"Monument"},"moon":{"search":{"terms":["contrast","crescent","dark","lunar","night"]},"styles":["solid","regular"],"unicode":"f186","label":"Moon"},"mortar-pestle":{"search":{"terms":["crush","culinary","grind","medical","mix","pharmacy","prescription","spices"]},"styles":["solid"],"unicode":"f5a7","label":"Mortar Pestle"},"mosque":{"search":{"terms":["building","islam","landmark","muslim"]},"styles":["solid"],"unicode":"f678","label":"Mosque"},"motorcycle":{"search":{"terms":["bike","machine","transportation","vehicle"]},"styles":["solid"],"unicode":"f21c","label":"Motorcycle"},"mountain":{"search":{"terms":["glacier","hiking","hill","landscape","travel","view"]},"styles":["solid"],"unicode":"f6fc","label":"Mountain"},"mouse":{"search":{"terms":["click","computer","cursor","input","peripheral"]},"styles":["solid"],"unicode":"f8cc","label":"Mouse"},"mouse-pointer":{"search":{"terms":["arrow","cursor","select"]},"styles":["solid"],"unicode":"f245","label":"Mouse Pointer"},"mug-hot":{"search":{"terms":["caliente","cocoa","coffee","cup","drink","holiday","hot chocolate","steam","tea","warmth"]},"styles":["solid"],"unicode":"f7b6","label":"Mug Hot"},"music":{"search":{"terms":["lyrics","melody","note","sing","sound"]},"styles":["solid"],"unicode":"f001","label":"Music"},"napster":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d2","label":"Napster"},"neos":{"search":{"terms":[]},"styles":["brands"],"unicode":"f612","label":"Neos"},"network-wired":{"search":{"terms":["computer","connect","ethernet","internet","intranet"]},"styles":["solid"],"unicode":"f6ff","label":"Wired Network"},"neuter":{"search":{"terms":[]},"styles":["solid"],"unicode":"f22c","label":"Neuter"},"newspaper":{"search":{"terms":["article","editorial","headline","journal","journalism","news","press"]},"styles":["solid","regular"],"unicode":"f1ea","label":"Newspaper"},"nimblr":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5a8","label":"Nimblr"},"node":{"search":{"terms":[]},"styles":["brands"],"unicode":"f419","label":"Node.js"},"node-js":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d3","label":"Node.js JS"},"not-equal":{"search":{"terms":["arithmetic","compare","math"]},"styles":["solid"],"unicode":"f53e","label":"Not Equal"},"notes-medical":{"search":{"terms":["clipboard","doctor","ehr","health","history","records"]},"styles":["solid"],"unicode":"f481","label":"Medical Notes"},"npm":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d4","label":"npm"},"ns8":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d5","label":"NS8"},"nutritionix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d6","label":"Nutritionix"},"object-group":{"search":{"terms":["combine","copy","design","merge","select"]},"styles":["solid","regular"],"unicode":"f247","label":"Object Group"},"object-ungroup":{"search":{"terms":["copy","design","merge","select","separate"]},"styles":["solid","regular"],"unicode":"f248","label":"Object Ungroup"},"odnoklassniki":{"search":{"terms":[]},"styles":["brands"],"unicode":"f263","label":"Odnoklassniki"},"odnoklassniki-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f264","label":"Odnoklassniki Square"},"oil-can":{"search":{"terms":["auto","crude","gasoline","grease","lubricate","petroleum"]},"styles":["solid"],"unicode":"f613","label":"Oil Can"},"old-republic":{"search":{"terms":["politics","star wars"]},"styles":["brands"],"unicode":"f510","label":"Old Republic"},"om":{"search":{"terms":["buddhism","hinduism","jainism","mantra"]},"styles":["solid"],"unicode":"f679","label":"Om"},"opencart":{"search":{"terms":[]},"styles":["brands"],"unicode":"f23d","label":"OpenCart"},"openid":{"search":{"terms":[]},"styles":["brands"],"unicode":"f19b","label":"OpenID"},"opera":{"search":{"terms":[]},"styles":["brands"],"unicode":"f26a","label":"Opera"},"optin-monster":{"search":{"terms":[]},"styles":["brands"],"unicode":"f23c","label":"Optin Monster"},"orcid":{"search":{"terms":[]},"styles":["brands"],"unicode":"f8d2","label":"ORCID"},"osi":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41a","label":"Open Source Initiative"},"otter":{"search":{"terms":["animal","badger","fauna","fur","mammal","marten"]},"styles":["solid"],"unicode":"f700","label":"Otter"},"outdent":{"search":{"terms":["align","justify","paragraph","tab"]},"styles":["solid"],"unicode":"f03b","label":"Outdent"},"page4":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d7","label":"page4 Corporation"},"pagelines":{"search":{"terms":["eco","flora","leaf","leaves","nature","plant","tree"]},"styles":["brands"],"unicode":"f18c","label":"Pagelines"},"pager":{"search":{"terms":["beeper","cellphone","communication"]},"styles":["solid"],"unicode":"f815","label":"Pager"},"paint-brush":{"search":{"terms":["acrylic","art","brush","color","fill","paint","pigment","watercolor"]},"styles":["solid"],"unicode":"f1fc","label":"Paint Brush"},"paint-roller":{"search":{"terms":["acrylic","art","brush","color","fill","paint","pigment","watercolor"]},"styles":["solid"],"unicode":"f5aa","label":"Paint Roller"},"palette":{"search":{"terms":["acrylic","art","brush","color","fill","paint","pigment","watercolor"]},"styles":["solid"],"unicode":"f53f","label":"Palette"},"palfed":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d8","label":"Palfed"},"pallet":{"search":{"terms":["archive","box","inventory","shipping","warehouse"]},"styles":["solid"],"unicode":"f482","label":"Pallet"},"paper-plane":{"search":{"terms":["air","float","fold","mail","paper","send"]},"styles":["solid","regular"],"unicode":"f1d8","label":"Paper Plane"},"paperclip":{"search":{"terms":["attach","attachment","connect","link"]},"styles":["solid"],"unicode":"f0c6","label":"Paperclip"},"parachute-box":{"search":{"terms":["aid","assistance","rescue","supplies"]},"styles":["solid"],"unicode":"f4cd","label":"Parachute Box"},"paragraph":{"search":{"terms":["edit","format","text","writing"]},"styles":["solid"],"unicode":"f1dd","label":"paragraph"},"parking":{"search":{"terms":["auto","car","garage","meter"]},"styles":["solid"],"unicode":"f540","label":"Parking"},"passport":{"search":{"terms":["document","id","identification","issued","travel"]},"styles":["solid"],"unicode":"f5ab","label":"Passport"},"pastafarianism":{"search":{"terms":["agnosticism","atheism","flying spaghetti monster","fsm"]},"styles":["solid"],"unicode":"f67b","label":"Pastafarianism"},"paste":{"search":{"terms":["clipboard","copy","document","paper"]},"styles":["solid"],"unicode":"f0ea","label":"Paste"},"patreon":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3d9","label":"Patreon"},"pause":{"search":{"terms":["hold","wait"]},"styles":["solid"],"unicode":"f04c","label":"pause"},"pause-circle":{"search":{"terms":["hold","wait"]},"styles":["solid","regular"],"unicode":"f28b","label":"Pause Circle"},"paw":{"search":{"terms":["animal","cat","dog","pet","print"]},"styles":["solid"],"unicode":"f1b0","label":"Paw"},"paypal":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1ed","label":"Paypal"},"peace":{"search":{"terms":["serenity","tranquility","truce","war"]},"styles":["solid"],"unicode":"f67c","label":"Peace"},"pen":{"search":{"terms":["design","edit","update","write"]},"styles":["solid"],"unicode":"f304","label":"Pen"},"pen-alt":{"search":{"terms":["design","edit","update","write"]},"styles":["solid"],"unicode":"f305","label":"Alternate Pen"},"pen-fancy":{"search":{"terms":["design","edit","fountain pen","update","write"]},"styles":["solid"],"unicode":"f5ac","label":"Pen Fancy"},"pen-nib":{"search":{"terms":["design","edit","fountain pen","update","write"]},"styles":["solid"],"unicode":"f5ad","label":"Pen Nib"},"pen-square":{"search":{"terms":["edit","pencil-square","update","write"]},"styles":["solid"],"unicode":"f14b","label":"Pen Square"},"pencil-alt":{"search":{"terms":["design","edit","pencil","update","write"]},"styles":["solid"],"unicode":"f303","label":"Alternate Pencil"},"pencil-ruler":{"search":{"terms":["design","draft","draw","pencil"]},"styles":["solid"],"unicode":"f5ae","label":"Pencil Ruler"},"penny-arcade":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","pax","tabletop"]},"styles":["brands"],"unicode":"f704","label":"Penny Arcade"},"people-arrows":{"search":{"terms":["covid-19","personal space","social distance","space","spread","users"]},"styles":["solid"],"unicode":"f968","label":"People Arrows"},"people-carry":{"search":{"terms":["box","carry","fragile","help","movers","package"]},"styles":["solid"],"unicode":"f4ce","label":"People Carry"},"pepper-hot":{"search":{"terms":["buffalo wings","capsicum","chili","chilli","habanero","jalapeno","mexican","spicy","tabasco","vegetable"]},"styles":["solid"],"unicode":"f816","label":"Hot Pepper"},"percent":{"search":{"terms":["discount","fraction","proportion","rate","ratio"]},"styles":["solid"],"unicode":"f295","label":"Percent"},"percentage":{"search":{"terms":["discount","fraction","proportion","rate","ratio"]},"styles":["solid"],"unicode":"f541","label":"Percentage"},"periscope":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3da","label":"Periscope"},"person-booth":{"search":{"terms":["changing","changing room","election","human","person","vote","voting"]},"styles":["solid"],"unicode":"f756","label":"Person Entering Booth"},"phabricator":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3db","label":"Phabricator"},"phoenix-framework":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3dc","label":"Phoenix Framework"},"phoenix-squadron":{"search":{"terms":[]},"styles":["brands"],"unicode":"f511","label":"Phoenix Squadron"},"phone":{"search":{"terms":["call","earphone","number","support","telephone","voice"]},"styles":["solid"],"unicode":"f095","label":"Phone"},"phone-alt":{"search":{"terms":["call","earphone","number","support","telephone","voice"]},"styles":["solid"],"unicode":"f879","label":"Alternate Phone"},"phone-slash":{"search":{"terms":["call","cancel","earphone","mute","number","support","telephone","voice"]},"styles":["solid"],"unicode":"f3dd","label":"Phone Slash"},"phone-square":{"search":{"terms":["call","earphone","number","support","telephone","voice"]},"styles":["solid"],"unicode":"f098","label":"Phone Square"},"phone-square-alt":{"search":{"terms":["call","earphone","number","support","telephone","voice"]},"styles":["solid"],"unicode":"f87b","label":"Alternate Phone Square"},"phone-volume":{"search":{"terms":["call","earphone","number","sound","support","telephone","voice","volume-control-phone"]},"styles":["solid"],"unicode":"f2a0","label":"Phone Volume"},"photo-video":{"search":{"terms":["av","film","image","library","media"]},"styles":["solid"],"unicode":"f87c","label":"Photo Video"},"php":{"search":{"terms":[]},"styles":["brands"],"unicode":"f457","label":"PHP"},"pied-piper":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2ae","label":"Pied Piper Logo"},"pied-piper-alt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a8","label":"Alternate Pied Piper Logo (Old)"},"pied-piper-hat":{"search":{"terms":["clothing"]},"styles":["brands"],"unicode":"f4e5","label":"Pied Piper Hat (Old)"},"pied-piper-pp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a7","label":"Pied Piper PP Logo (Old)"},"pied-piper-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f91e","label":"Pied Piper Square Logo (Old)"},"piggy-bank":{"search":{"terms":["bank","save","savings"]},"styles":["solid"],"unicode":"f4d3","label":"Piggy Bank"},"pills":{"search":{"terms":["drugs","medicine","prescription","tablets"]},"styles":["solid"],"unicode":"f484","label":"Pills"},"pinterest":{"search":{"terms":[]},"styles":["brands"],"unicode":"f0d2","label":"Pinterest"},"pinterest-p":{"search":{"terms":[]},"styles":["brands"],"unicode":"f231","label":"Pinterest P"},"pinterest-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f0d3","label":"Pinterest Square"},"pizza-slice":{"search":{"terms":["cheese","chicago","italian","mozzarella","new york","pepperoni","pie","slice","teenage mutant ninja turtles","tomato"]},"styles":["solid"],"unicode":"f818","label":"Pizza Slice"},"place-of-worship":{"search":{"terms":["building","church","holy","mosque","synagogue"]},"styles":["solid"],"unicode":"f67f","label":"Place of Worship"},"plane":{"search":{"terms":["airplane","destination","fly","location","mode","travel","trip"]},"styles":["solid"],"unicode":"f072","label":"plane"},"plane-arrival":{"search":{"terms":["airplane","arriving","destination","fly","land","landing","location","mode","travel","trip"]},"styles":["solid"],"unicode":"f5af","label":"Plane Arrival"},"plane-departure":{"search":{"terms":["airplane","departing","destination","fly","location","mode","take off","taking off","travel","trip"]},"styles":["solid"],"unicode":"f5b0","label":"Plane Departure"},"plane-slash":{"search":{"terms":["airplane mode","canceled","covid-19","delayed","grounded","travel"]},"styles":["solid"],"unicode":"f969","label":"Plane Slash"},"play":{"search":{"terms":["audio","music","playing","sound","start","video"]},"styles":["solid"],"unicode":"f04b","label":"play"},"play-circle":{"search":{"terms":["audio","music","playing","sound","start","video"]},"styles":["solid","regular"],"unicode":"f144","label":"Play Circle"},"playstation":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3df","label":"PlayStation"},"plug":{"search":{"terms":["connect","electric","online","power"]},"styles":["solid"],"unicode":"f1e6","label":"Plug"},"plus":{"search":{"terms":["add","create","expand","new","positive","shape"]},"styles":["solid"],"unicode":"f067","label":"plus"},"plus-circle":{"search":{"terms":["add","create","expand","new","positive","shape"]},"styles":["solid"],"unicode":"f055","label":"Plus Circle"},"plus-square":{"search":{"terms":["add","create","expand","new","positive","shape"]},"styles":["solid","regular"],"unicode":"f0fe","label":"Plus Square"},"podcast":{"search":{"terms":["audio","broadcast","music","sound"]},"styles":["solid"],"unicode":"f2ce","label":"Podcast"},"poll":{"search":{"terms":["results","survey","trend","vote","voting"]},"styles":["solid"],"unicode":"f681","label":"Poll"},"poll-h":{"search":{"terms":["results","survey","trend","vote","voting"]},"styles":["solid"],"unicode":"f682","label":"Poll H"},"poo":{"search":{"terms":["crap","poop","shit","smile","turd"]},"styles":["solid"],"unicode":"f2fe","label":"Poo"},"poo-storm":{"search":{"terms":["bolt","cloud","euphemism","lightning","mess","poop","shit","turd"]},"styles":["solid"],"unicode":"f75a","label":"Poo Storm"},"poop":{"search":{"terms":["crap","poop","shit","smile","turd"]},"styles":["solid"],"unicode":"f619","label":"Poop"},"portrait":{"search":{"terms":["id","image","photo","picture","selfie"]},"styles":["solid"],"unicode":"f3e0","label":"Portrait"},"pound-sign":{"search":{"terms":["currency","gbp","money"]},"styles":["solid"],"unicode":"f154","label":"Pound Sign"},"power-off":{"search":{"terms":["cancel","computer","on","reboot","restart"]},"styles":["solid"],"unicode":"f011","label":"Power Off"},"pray":{"search":{"terms":["kneel","preach","religion","worship"]},"styles":["solid"],"unicode":"f683","label":"Pray"},"praying-hands":{"search":{"terms":["kneel","preach","religion","worship"]},"styles":["solid"],"unicode":"f684","label":"Praying Hands"},"prescription":{"search":{"terms":["drugs","medical","medicine","pharmacy","rx"]},"styles":["solid"],"unicode":"f5b1","label":"Prescription"},"prescription-bottle":{"search":{"terms":["drugs","medical","medicine","pharmacy","rx"]},"styles":["solid"],"unicode":"f485","label":"Prescription Bottle"},"prescription-bottle-alt":{"search":{"terms":["drugs","medical","medicine","pharmacy","rx"]},"styles":["solid"],"unicode":"f486","label":"Alternate Prescription Bottle"},"print":{"search":{"terms":["business","copy","document","office","paper"]},"styles":["solid"],"unicode":"f02f","label":"print"},"procedures":{"search":{"terms":["EKG","bed","electrocardiogram","health","hospital","life","patient","vital"]},"styles":["solid"],"unicode":"f487","label":"Procedures"},"product-hunt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f288","label":"Product Hunt"},"project-diagram":{"search":{"terms":["chart","graph","network","pert"]},"styles":["solid"],"unicode":"f542","label":"Project Diagram"},"pump-medical":{"search":{"terms":["anti-bacterial","clean","covid-19","disinfect","hygiene","medical grade","sanitizer","soap"]},"styles":["solid"],"unicode":"f96a","label":"Pump Medical"},"pump-soap":{"search":{"terms":["anti-bacterial","clean","covid-19","disinfect","hygiene","sanitizer","soap"]},"styles":["solid"],"unicode":"f96b","label":"Pump Soap"},"pushed":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e1","label":"Pushed"},"puzzle-piece":{"search":{"terms":["add-on","addon","game","section"]},"styles":["solid"],"unicode":"f12e","label":"Puzzle Piece"},"python":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e2","label":"Python"},"qq":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d6","label":"QQ"},"qrcode":{"search":{"terms":["barcode","info","information","scan"]},"styles":["solid"],"unicode":"f029","label":"qrcode"},"question":{"search":{"terms":["help","information","support","unknown"]},"styles":["solid"],"unicode":"f128","label":"Question"},"question-circle":{"search":{"terms":["help","information","support","unknown"]},"styles":["solid","regular"],"unicode":"f059","label":"Question Circle"},"quidditch":{"search":{"terms":["ball","bludger","broom","golden snitch","harry potter","hogwarts","quaffle","sport","wizard"]},"styles":["solid"],"unicode":"f458","label":"Quidditch"},"quinscape":{"search":{"terms":[]},"styles":["brands"],"unicode":"f459","label":"QuinScape"},"quora":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2c4","label":"Quora"},"quote-left":{"search":{"terms":["mention","note","phrase","text","type"]},"styles":["solid"],"unicode":"f10d","label":"quote-left"},"quote-right":{"search":{"terms":["mention","note","phrase","text","type"]},"styles":["solid"],"unicode":"f10e","label":"quote-right"},"quran":{"search":{"terms":["book","islam","muslim","religion"]},"styles":["solid"],"unicode":"f687","label":"Quran"},"r-project":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f7","label":"R Project"},"radiation":{"search":{"terms":["danger","dangerous","deadly","hazard","nuclear","radioactive","warning"]},"styles":["solid"],"unicode":"f7b9","label":"Radiation"},"radiation-alt":{"search":{"terms":["danger","dangerous","deadly","hazard","nuclear","radioactive","warning"]},"styles":["solid"],"unicode":"f7ba","label":"Alternate Radiation"},"rainbow":{"search":{"terms":["gold","leprechaun","prism","rain","sky"]},"styles":["solid"],"unicode":"f75b","label":"Rainbow"},"random":{"search":{"terms":["arrows","shuffle","sort","swap","switch","transfer"]},"styles":["solid"],"unicode":"f074","label":"random"},"raspberry-pi":{"search":{"terms":[]},"styles":["brands"],"unicode":"f7bb","label":"Raspberry Pi"},"ravelry":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2d9","label":"Ravelry"},"react":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41b","label":"React"},"reacteurope":{"search":{"terms":[]},"styles":["brands"],"unicode":"f75d","label":"ReactEurope"},"readme":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4d5","label":"ReadMe"},"rebel":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d0","label":"Rebel Alliance"},"receipt":{"search":{"terms":["check","invoice","money","pay","table"]},"styles":["solid"],"unicode":"f543","label":"Receipt"},"record-vinyl":{"search":{"terms":["LP","album","analog","music","phonograph","sound"]},"styles":["solid"],"unicode":"f8d9","label":"Record Vinyl"},"recycle":{"search":{"terms":["Waste","compost","garbage","reuse","trash"]},"styles":["solid"],"unicode":"f1b8","label":"Recycle"},"red-river":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e3","label":"red river"},"reddit":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a1","label":"reddit Logo"},"reddit-alien":{"search":{"terms":[]},"styles":["brands"],"unicode":"f281","label":"reddit Alien"},"reddit-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a2","label":"reddit Square"},"redhat":{"search":{"terms":["linux","operating system","os"]},"styles":["brands"],"unicode":"f7bc","label":"Redhat"},"redo":{"search":{"terms":["forward","refresh","reload","repeat"]},"styles":["solid"],"unicode":"f01e","label":"Redo"},"redo-alt":{"search":{"terms":["forward","refresh","reload","repeat"]},"styles":["solid"],"unicode":"f2f9","label":"Alternate Redo"},"registered":{"search":{"terms":["copyright","mark","trademark"]},"styles":["solid","regular"],"unicode":"f25d","label":"Registered Trademark"},"remove-format":{"search":{"terms":["cancel","font","format","remove","style","text"]},"styles":["solid"],"unicode":"f87d","label":"Remove Format"},"renren":{"search":{"terms":[]},"styles":["brands"],"unicode":"f18b","label":"Renren"},"reply":{"search":{"terms":["mail","message","respond"]},"styles":["solid"],"unicode":"f3e5","label":"Reply"},"reply-all":{"search":{"terms":["mail","message","respond"]},"styles":["solid"],"unicode":"f122","label":"reply-all"},"replyd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e6","label":"replyd"},"republican":{"search":{"terms":["american","conservative","election","elephant","politics","republican party","right","right-wing","usa"]},"styles":["solid"],"unicode":"f75e","label":"Republican"},"researchgate":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f8","label":"Researchgate"},"resolving":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e7","label":"Resolving"},"restroom":{"search":{"terms":["bathroom","john","loo","potty","washroom","waste","wc"]},"styles":["solid"],"unicode":"f7bd","label":"Restroom"},"retweet":{"search":{"terms":["refresh","reload","share","swap"]},"styles":["solid"],"unicode":"f079","label":"Retweet"},"rev":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5b2","label":"Rev.io"},"ribbon":{"search":{"terms":["badge","cause","lapel","pin"]},"styles":["solid"],"unicode":"f4d6","label":"Ribbon"},"ring":{"search":{"terms":["Dungeons & Dragons","Gollum","band","binding","d&d","dnd","engagement","fantasy","gold","jewelry","marriage","precious"]},"styles":["solid"],"unicode":"f70b","label":"Ring"},"road":{"search":{"terms":["highway","map","pavement","route","street","travel"]},"styles":["solid"],"unicode":"f018","label":"road"},"robot":{"search":{"terms":["android","automate","computer","cyborg"]},"styles":["solid"],"unicode":"f544","label":"Robot"},"rocket":{"search":{"terms":["aircraft","app","jet","launch","nasa","space"]},"styles":["solid"],"unicode":"f135","label":"rocket"},"rocketchat":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e8","label":"Rocket.Chat"},"rockrms":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3e9","label":"Rockrms"},"route":{"search":{"terms":["directions","navigation","travel"]},"styles":["solid"],"unicode":"f4d7","label":"Route"},"rss":{"search":{"terms":["blog","feed","journal","news","writing"]},"styles":["solid"],"unicode":"f09e","label":"rss"},"rss-square":{"search":{"terms":["blog","feed","journal","news","writing"]},"styles":["solid"],"unicode":"f143","label":"RSS Square"},"ruble-sign":{"search":{"terms":["currency","money","rub"]},"styles":["solid"],"unicode":"f158","label":"Ruble Sign"},"ruler":{"search":{"terms":["design","draft","length","measure","planning"]},"styles":["solid"],"unicode":"f545","label":"Ruler"},"ruler-combined":{"search":{"terms":["design","draft","length","measure","planning"]},"styles":["solid"],"unicode":"f546","label":"Ruler Combined"},"ruler-horizontal":{"search":{"terms":["design","draft","length","measure","planning"]},"styles":["solid"],"unicode":"f547","label":"Ruler Horizontal"},"ruler-vertical":{"search":{"terms":["design","draft","length","measure","planning"]},"styles":["solid"],"unicode":"f548","label":"Ruler Vertical"},"running":{"search":{"terms":["exercise","health","jog","person","run","sport","sprint"]},"styles":["solid"],"unicode":"f70c","label":"Running"},"rupee-sign":{"search":{"terms":["currency","indian","inr","money"]},"styles":["solid"],"unicode":"f156","label":"Indian Rupee Sign"},"sad-cry":{"search":{"terms":["emoticon","face","tear","tears"]},"styles":["solid","regular"],"unicode":"f5b3","label":"Crying Face"},"sad-tear":{"search":{"terms":["emoticon","face","tear","tears"]},"styles":["solid","regular"],"unicode":"f5b4","label":"Loudly Crying Face"},"safari":{"search":{"terms":["browser"]},"styles":["brands"],"unicode":"f267","label":"Safari"},"salesforce":{"search":{"terms":[]},"styles":["brands"],"unicode":"f83b","label":"Salesforce"},"sass":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41e","label":"Sass"},"satellite":{"search":{"terms":["communications","hardware","orbit","space"]},"styles":["solid"],"unicode":"f7bf","label":"Satellite"},"satellite-dish":{"search":{"terms":["SETI","communications","hardware","receiver","saucer","signal","space"]},"styles":["solid"],"unicode":"f7c0","label":"Satellite Dish"},"save":{"search":{"terms":["disk","download","floppy","floppy-o"]},"styles":["solid","regular"],"unicode":"f0c7","label":"Save"},"schlix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ea","label":"SCHLIX"},"school":{"search":{"terms":["building","education","learn","student","teacher"]},"styles":["solid"],"unicode":"f549","label":"School"},"screwdriver":{"search":{"terms":["admin","fix","mechanic","repair","settings","tool"]},"styles":["solid"],"unicode":"f54a","label":"Screwdriver"},"scribd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f28a","label":"Scribd"},"scroll":{"search":{"terms":["Dungeons & Dragons","announcement","d&d","dnd","fantasy","paper","script"]},"styles":["solid"],"unicode":"f70e","label":"Scroll"},"sd-card":{"search":{"terms":["image","memory","photo","save"]},"styles":["solid"],"unicode":"f7c2","label":"Sd Card"},"search":{"search":{"terms":["bigger","enlarge","find","magnify","preview","zoom"]},"styles":["solid"],"unicode":"f002","label":"Search"},"search-dollar":{"search":{"terms":["bigger","enlarge","find","magnify","money","preview","zoom"]},"styles":["solid"],"unicode":"f688","label":"Search Dollar"},"search-location":{"search":{"terms":["bigger","enlarge","find","magnify","preview","zoom"]},"styles":["solid"],"unicode":"f689","label":"Search Location"},"search-minus":{"search":{"terms":["minify","negative","smaller","zoom","zoom out"]},"styles":["solid"],"unicode":"f010","label":"Search Minus"},"search-plus":{"search":{"terms":["bigger","enlarge","magnify","positive","zoom","zoom in"]},"styles":["solid"],"unicode":"f00e","label":"Search Plus"},"searchengin":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3eb","label":"Searchengin"},"seedling":{"search":{"terms":["flora","grow","plant","vegan"]},"styles":["solid"],"unicode":"f4d8","label":"Seedling"},"sellcast":{"search":{"terms":["eercast"]},"styles":["brands"],"unicode":"f2da","label":"Sellcast"},"sellsy":{"search":{"terms":[]},"styles":["brands"],"unicode":"f213","label":"Sellsy"},"server":{"search":{"terms":["computer","cpu","database","hardware","network"]},"styles":["solid"],"unicode":"f233","label":"Server"},"servicestack":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ec","label":"Servicestack"},"shapes":{"search":{"terms":["blocks","build","circle","square","triangle"]},"styles":["solid"],"unicode":"f61f","label":"Shapes"},"share":{"search":{"terms":["forward","save","send","social"]},"styles":["solid"],"unicode":"f064","label":"Share"},"share-alt":{"search":{"terms":["forward","save","send","social"]},"styles":["solid"],"unicode":"f1e0","label":"Alternate Share"},"share-alt-square":{"search":{"terms":["forward","save","send","social"]},"styles":["solid"],"unicode":"f1e1","label":"Alternate Share Square"},"share-square":{"search":{"terms":["forward","save","send","social"]},"styles":["solid","regular"],"unicode":"f14d","label":"Share Square"},"shekel-sign":{"search":{"terms":["currency","ils","money"]},"styles":["solid"],"unicode":"f20b","label":"Shekel Sign"},"shield-alt":{"search":{"terms":["achievement","award","block","defend","security","winner"]},"styles":["solid"],"unicode":"f3ed","label":"Alternate Shield"},"shield-virus":{"search":{"terms":["antibodies","barrier","covid-19","health","protect"]},"styles":["solid"],"unicode":"f96c","label":"Shield Virus"},"ship":{"search":{"terms":["boat","sea","water"]},"styles":["solid"],"unicode":"f21a","label":"Ship"},"shipping-fast":{"search":{"terms":["express","fedex","mail","overnight","package","ups"]},"styles":["solid"],"unicode":"f48b","label":"Shipping Fast"},"shirtsinbulk":{"search":{"terms":[]},"styles":["brands"],"unicode":"f214","label":"Shirts in Bulk"},"shoe-prints":{"search":{"terms":["feet","footprints","steps","walk"]},"styles":["solid"],"unicode":"f54b","label":"Shoe Prints"},"shopify":{"search":{"terms":[]},"styles":["brands"],"unicode":"f957","label":"Shopify"},"shopping-bag":{"search":{"terms":["buy","checkout","grocery","payment","purchase"]},"styles":["solid"],"unicode":"f290","label":"Shopping Bag"},"shopping-basket":{"search":{"terms":["buy","checkout","grocery","payment","purchase"]},"styles":["solid"],"unicode":"f291","label":"Shopping Basket"},"shopping-cart":{"search":{"terms":["buy","checkout","grocery","payment","purchase"]},"styles":["solid"],"unicode":"f07a","label":"shopping-cart"},"shopware":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5b5","label":"Shopware"},"shower":{"search":{"terms":["bath","clean","faucet","water"]},"styles":["solid"],"unicode":"f2cc","label":"Shower"},"shuttle-van":{"search":{"terms":["airport","machine","public-transportation","transportation","travel","vehicle"]},"styles":["solid"],"unicode":"f5b6","label":"Shuttle Van"},"sign":{"search":{"terms":["directions","real estate","signage","wayfinding"]},"styles":["solid"],"unicode":"f4d9","label":"Sign"},"sign-in-alt":{"search":{"terms":["arrow","enter","join","log in","login","sign in","sign up","sign-in","signin","signup"]},"styles":["solid"],"unicode":"f2f6","label":"Alternate Sign In"},"sign-language":{"search":{"terms":["Translate","asl","deaf","hands"]},"styles":["solid"],"unicode":"f2a7","label":"Sign Language"},"sign-out-alt":{"search":{"terms":["arrow","exit","leave","log out","logout","sign-out"]},"styles":["solid"],"unicode":"f2f5","label":"Alternate Sign Out"},"signal":{"search":{"terms":["bars","graph","online","reception","status"]},"styles":["solid"],"unicode":"f012","label":"signal"},"signature":{"search":{"terms":["John Hancock","cursive","name","writing"]},"styles":["solid"],"unicode":"f5b7","label":"Signature"},"sim-card":{"search":{"terms":["hard drive","hardware","portable","storage","technology","tiny"]},"styles":["solid"],"unicode":"f7c4","label":"SIM Card"},"simplybuilt":{"search":{"terms":[]},"styles":["brands"],"unicode":"f215","label":"SimplyBuilt"},"sistrix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3ee","label":"SISTRIX"},"sitemap":{"search":{"terms":["directory","hierarchy","ia","information architecture","organization"]},"styles":["solid"],"unicode":"f0e8","label":"Sitemap"},"sith":{"search":{"terms":[]},"styles":["brands"],"unicode":"f512","label":"Sith"},"skating":{"search":{"terms":["activity","figure skating","fitness","ice","person","winter"]},"styles":["solid"],"unicode":"f7c5","label":"Skating"},"sketch":{"search":{"terms":["app","design","interface"]},"styles":["brands"],"unicode":"f7c6","label":"Sketch"},"skiing":{"search":{"terms":["activity","downhill","fast","fitness","olympics","outdoors","person","seasonal","slalom"]},"styles":["solid"],"unicode":"f7c9","label":"Skiing"},"skiing-nordic":{"search":{"terms":["activity","cross country","fitness","outdoors","person","seasonal"]},"styles":["solid"],"unicode":"f7ca","label":"Skiing Nordic"},"skull":{"search":{"terms":["bones","skeleton","x-ray","yorick"]},"styles":["solid"],"unicode":"f54c","label":"Skull"},"skull-crossbones":{"search":{"terms":["Dungeons & Dragons","alert","bones","d&d","danger","dead","deadly","death","dnd","fantasy","halloween","holiday","jolly-roger","pirate","poison","skeleton","warning"]},"styles":["solid"],"unicode":"f714","label":"Skull & Crossbones"},"skyatlas":{"search":{"terms":[]},"styles":["brands"],"unicode":"f216","label":"skyatlas"},"skype":{"search":{"terms":[]},"styles":["brands"],"unicode":"f17e","label":"Skype"},"slack":{"search":{"terms":["anchor","hash","hashtag"]},"styles":["brands"],"unicode":"f198","label":"Slack Logo"},"slack-hash":{"search":{"terms":["anchor","hash","hashtag"]},"styles":["brands"],"unicode":"f3ef","label":"Slack Hashtag"},"slash":{"search":{"terms":["cancel","close","mute","off","stop","x"]},"styles":["solid"],"unicode":"f715","label":"Slash"},"sleigh":{"search":{"terms":["christmas","claus","fly","holiday","santa","sled","snow","xmas"]},"styles":["solid"],"unicode":"f7cc","label":"Sleigh"},"sliders-h":{"search":{"terms":["adjust","settings","sliders","toggle"]},"styles":["solid"],"unicode":"f1de","label":"Horizontal Sliders"},"slideshare":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1e7","label":"Slideshare"},"smile":{"search":{"terms":["approve","emoticon","face","happy","rating","satisfied"]},"styles":["solid","regular"],"unicode":"f118","label":"Smiling Face"},"smile-beam":{"search":{"terms":["emoticon","face","happy","positive"]},"styles":["solid","regular"],"unicode":"f5b8","label":"Beaming Face With Smiling Eyes"},"smile-wink":{"search":{"terms":["emoticon","face","happy","hint","joke"]},"styles":["solid","regular"],"unicode":"f4da","label":"Winking Face"},"smog":{"search":{"terms":["dragon","fog","haze","pollution","smoke","weather"]},"styles":["solid"],"unicode":"f75f","label":"Smog"},"smoking":{"search":{"terms":["cancer","cigarette","nicotine","smoking status","tobacco"]},"styles":["solid"],"unicode":"f48d","label":"Smoking"},"smoking-ban":{"search":{"terms":["ban","cancel","no smoking","non-smoking"]},"styles":["solid"],"unicode":"f54d","label":"Smoking Ban"},"sms":{"search":{"terms":["chat","conversation","message","mobile","notification","phone","sms","texting"]},"styles":["solid"],"unicode":"f7cd","label":"SMS"},"snapchat":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2ab","label":"Snapchat"},"snapchat-ghost":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2ac","label":"Snapchat Ghost"},"snapchat-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2ad","label":"Snapchat Square"},"snowboarding":{"search":{"terms":["activity","fitness","olympics","outdoors","person"]},"styles":["solid"],"unicode":"f7ce","label":"Snowboarding"},"snowflake":{"search":{"terms":["precipitation","rain","winter"]},"styles":["solid","regular"],"unicode":"f2dc","label":"Snowflake"},"snowman":{"search":{"terms":["decoration","frost","frosty","holiday"]},"styles":["solid"],"unicode":"f7d0","label":"Snowman"},"snowplow":{"search":{"terms":["clean up","cold","road","storm","winter"]},"styles":["solid"],"unicode":"f7d2","label":"Snowplow"},"soap":{"search":{"terms":["bubbles","clean","covid-19","hygiene","wash"]},"styles":["solid"],"unicode":"f96e","label":"Soap"},"socks":{"search":{"terms":["business socks","business time","clothing","feet","flight of the conchords","wednesday"]},"styles":["solid"],"unicode":"f696","label":"Socks"},"solar-panel":{"search":{"terms":["clean","eco-friendly","energy","green","sun"]},"styles":["solid"],"unicode":"f5ba","label":"Solar Panel"},"sort":{"search":{"terms":["filter","order"]},"styles":["solid"],"unicode":"f0dc","label":"Sort"},"sort-alpha-down":{"search":{"terms":["alphabetical","arrange","filter","order","sort-alpha-asc"]},"styles":["solid"],"unicode":"f15d","label":"Sort Alphabetical Down"},"sort-alpha-down-alt":{"search":{"terms":["alphabetical","arrange","filter","order","sort-alpha-asc"]},"styles":["solid"],"unicode":"f881","label":"Alternate Sort Alphabetical Down"},"sort-alpha-up":{"search":{"terms":["alphabetical","arrange","filter","order","sort-alpha-desc"]},"styles":["solid"],"unicode":"f15e","label":"Sort Alphabetical Up"},"sort-alpha-up-alt":{"search":{"terms":["alphabetical","arrange","filter","order","sort-alpha-desc"]},"styles":["solid"],"unicode":"f882","label":"Alternate Sort Alphabetical Up"},"sort-amount-down":{"search":{"terms":["arrange","filter","number","order","sort-amount-asc"]},"styles":["solid"],"unicode":"f160","label":"Sort Amount Down"},"sort-amount-down-alt":{"search":{"terms":["arrange","filter","order","sort-amount-asc"]},"styles":["solid"],"unicode":"f884","label":"Alternate Sort Amount Down"},"sort-amount-up":{"search":{"terms":["arrange","filter","order","sort-amount-desc"]},"styles":["solid"],"unicode":"f161","label":"Sort Amount Up"},"sort-amount-up-alt":{"search":{"terms":["arrange","filter","order","sort-amount-desc"]},"styles":["solid"],"unicode":"f885","label":"Alternate Sort Amount Up"},"sort-down":{"search":{"terms":["arrow","descending","filter","order","sort-desc"]},"styles":["solid"],"unicode":"f0dd","label":"Sort Down (Descending)"},"sort-numeric-down":{"search":{"terms":["arrange","filter","numbers","order","sort-numeric-asc"]},"styles":["solid"],"unicode":"f162","label":"Sort Numeric Down"},"sort-numeric-down-alt":{"search":{"terms":["arrange","filter","numbers","order","sort-numeric-asc"]},"styles":["solid"],"unicode":"f886","label":"Alternate Sort Numeric Down"},"sort-numeric-up":{"search":{"terms":["arrange","filter","numbers","order","sort-numeric-desc"]},"styles":["solid"],"unicode":"f163","label":"Sort Numeric Up"},"sort-numeric-up-alt":{"search":{"terms":["arrange","filter","numbers","order","sort-numeric-desc"]},"styles":["solid"],"unicode":"f887","label":"Alternate Sort Numeric Up"},"sort-up":{"search":{"terms":["arrow","ascending","filter","order","sort-asc"]},"styles":["solid"],"unicode":"f0de","label":"Sort Up (Ascending)"},"soundcloud":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1be","label":"SoundCloud"},"sourcetree":{"search":{"terms":[]},"styles":["brands"],"unicode":"f7d3","label":"Sourcetree"},"spa":{"search":{"terms":["flora","massage","mindfulness","plant","wellness"]},"styles":["solid"],"unicode":"f5bb","label":"Spa"},"space-shuttle":{"search":{"terms":["astronaut","machine","nasa","rocket","space","transportation"]},"styles":["solid"],"unicode":"f197","label":"Space Shuttle"},"speakap":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f3","label":"Speakap"},"speaker-deck":{"search":{"terms":[]},"styles":["brands"],"unicode":"f83c","label":"Speaker Deck"},"spell-check":{"search":{"terms":["dictionary","edit","editor","grammar","text"]},"styles":["solid"],"unicode":"f891","label":"Spell Check"},"spider":{"search":{"terms":["arachnid","bug","charlotte","crawl","eight","halloween"]},"styles":["solid"],"unicode":"f717","label":"Spider"},"spinner":{"search":{"terms":["circle","loading","progress"]},"styles":["solid"],"unicode":"f110","label":"Spinner"},"splotch":{"search":{"terms":["Ink","blob","blotch","glob","stain"]},"styles":["solid"],"unicode":"f5bc","label":"Splotch"},"spotify":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1bc","label":"Spotify"},"spray-can":{"search":{"terms":["Paint","aerosol","design","graffiti","tag"]},"styles":["solid"],"unicode":"f5bd","label":"Spray Can"},"square":{"search":{"terms":["block","box","shape"]},"styles":["solid","regular"],"unicode":"f0c8","label":"Square"},"square-full":{"search":{"terms":["block","box","shape"]},"styles":["solid"],"unicode":"f45c","label":"Square Full"},"square-root-alt":{"search":{"terms":["arithmetic","calculus","division","math"]},"styles":["solid"],"unicode":"f698","label":"Alternate Square Root"},"squarespace":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5be","label":"Squarespace"},"stack-exchange":{"search":{"terms":[]},"styles":["brands"],"unicode":"f18d","label":"Stack Exchange"},"stack-overflow":{"search":{"terms":[]},"styles":["brands"],"unicode":"f16c","label":"Stack Overflow"},"stackpath":{"search":{"terms":[]},"styles":["brands"],"unicode":"f842","label":"Stackpath"},"stamp":{"search":{"terms":["art","certificate","imprint","rubber","seal"]},"styles":["solid"],"unicode":"f5bf","label":"Stamp"},"star":{"search":{"terms":["achievement","award","favorite","important","night","rating","score"]},"styles":["solid","regular"],"unicode":"f005","label":"Star"},"star-and-crescent":{"search":{"terms":["islam","muslim","religion"]},"styles":["solid"],"unicode":"f699","label":"Star and Crescent"},"star-half":{"search":{"terms":["achievement","award","rating","score","star-half-empty","star-half-full"]},"styles":["solid","regular"],"unicode":"f089","label":"star-half"},"star-half-alt":{"search":{"terms":["achievement","award","rating","score","star-half-empty","star-half-full"]},"styles":["solid"],"unicode":"f5c0","label":"Alternate Star Half"},"star-of-david":{"search":{"terms":["jewish","judaism","religion"]},"styles":["solid"],"unicode":"f69a","label":"Star of David"},"star-of-life":{"search":{"terms":["doctor","emt","first aid","health","medical"]},"styles":["solid"],"unicode":"f621","label":"Star of Life"},"staylinked":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f5","label":"StayLinked"},"steam":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1b6","label":"Steam"},"steam-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1b7","label":"Steam Square"},"steam-symbol":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f6","label":"Steam Symbol"},"step-backward":{"search":{"terms":["beginning","first","previous","rewind","start"]},"styles":["solid"],"unicode":"f048","label":"step-backward"},"step-forward":{"search":{"terms":["end","last","next"]},"styles":["solid"],"unicode":"f051","label":"step-forward"},"stethoscope":{"search":{"terms":["covid-19","diagnosis","doctor","general practitioner","hospital","infirmary","medicine","office","outpatient"]},"styles":["solid"],"unicode":"f0f1","label":"Stethoscope"},"sticker-mule":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f7","label":"Sticker Mule"},"sticky-note":{"search":{"terms":["message","note","paper","reminder","sticker"]},"styles":["solid","regular"],"unicode":"f249","label":"Sticky Note"},"stop":{"search":{"terms":["block","box","square"]},"styles":["solid"],"unicode":"f04d","label":"stop"},"stop-circle":{"search":{"terms":["block","box","circle","square"]},"styles":["solid","regular"],"unicode":"f28d","label":"Stop Circle"},"stopwatch":{"search":{"terms":["clock","reminder","time"]},"styles":["solid"],"unicode":"f2f2","label":"Stopwatch"},"stopwatch-20":{"search":{"terms":["ABCs","countdown","covid-19","happy birthday","i will survive","reminder","seconds","time","timer"]},"styles":["solid"],"unicode":"f96f","label":"Stopwatch 20"},"store":{"search":{"terms":["building","buy","purchase","shopping"]},"styles":["solid"],"unicode":"f54e","label":"Store"},"store-alt":{"search":{"terms":["building","buy","purchase","shopping"]},"styles":["solid"],"unicode":"f54f","label":"Alternate Store"},"store-alt-slash":{"search":{"terms":["building","buy","closed","covid-19","purchase","shopping"]},"styles":["solid"],"unicode":"f970","label":"Alternate Store Slash"},"store-slash":{"search":{"terms":["building","buy","closed","covid-19","purchase","shopping"]},"styles":["solid"],"unicode":"f971","label":"Store Slash"},"strava":{"search":{"terms":[]},"styles":["brands"],"unicode":"f428","label":"Strava"},"stream":{"search":{"terms":["flow","list","timeline"]},"styles":["solid"],"unicode":"f550","label":"Stream"},"street-view":{"search":{"terms":["directions","location","map","navigation"]},"styles":["solid"],"unicode":"f21d","label":"Street View"},"strikethrough":{"search":{"terms":["cancel","edit","font","format","text","type"]},"styles":["solid"],"unicode":"f0cc","label":"Strikethrough"},"stripe":{"search":{"terms":[]},"styles":["brands"],"unicode":"f429","label":"Stripe"},"stripe-s":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42a","label":"Stripe S"},"stroopwafel":{"search":{"terms":["caramel","cookie","dessert","sweets","waffle"]},"styles":["solid"],"unicode":"f551","label":"Stroopwafel"},"studiovinari":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f8","label":"Studio Vinari"},"stumbleupon":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a4","label":"StumbleUpon Logo"},"stumbleupon-circle":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1a3","label":"StumbleUpon Circle"},"subscript":{"search":{"terms":["edit","font","format","text","type"]},"styles":["solid"],"unicode":"f12c","label":"subscript"},"subway":{"search":{"terms":["machine","railway","train","transportation","vehicle"]},"styles":["solid"],"unicode":"f239","label":"Subway"},"suitcase":{"search":{"terms":["baggage","luggage","move","suitcase","travel","trip"]},"styles":["solid"],"unicode":"f0f2","label":"Suitcase"},"suitcase-rolling":{"search":{"terms":["baggage","luggage","move","suitcase","travel","trip"]},"styles":["solid"],"unicode":"f5c1","label":"Suitcase Rolling"},"sun":{"search":{"terms":["brighten","contrast","day","lighter","sol","solar","star","weather"]},"styles":["solid","regular"],"unicode":"f185","label":"Sun"},"superpowers":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2dd","label":"Superpowers"},"superscript":{"search":{"terms":["edit","exponential","font","format","text","type"]},"styles":["solid"],"unicode":"f12b","label":"superscript"},"supple":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3f9","label":"Supple"},"surprise":{"search":{"terms":["emoticon","face","shocked"]},"styles":["solid","regular"],"unicode":"f5c2","label":"Hushed Face"},"suse":{"search":{"terms":["linux","operating system","os"]},"styles":["brands"],"unicode":"f7d6","label":"Suse"},"swatchbook":{"search":{"terms":["Pantone","color","design","hue","palette"]},"styles":["solid"],"unicode":"f5c3","label":"Swatchbook"},"swift":{"search":{"terms":[]},"styles":["brands"],"unicode":"f8e1","label":"Swift"},"swimmer":{"search":{"terms":["athlete","head","man","olympics","person","pool","water"]},"styles":["solid"],"unicode":"f5c4","label":"Swimmer"},"swimming-pool":{"search":{"terms":["ladder","recreation","swim","water"]},"styles":["solid"],"unicode":"f5c5","label":"Swimming Pool"},"symfony":{"search":{"terms":[]},"styles":["brands"],"unicode":"f83d","label":"Symfony"},"synagogue":{"search":{"terms":["building","jewish","judaism","religion","star of david","temple"]},"styles":["solid"],"unicode":"f69b","label":"Synagogue"},"sync":{"search":{"terms":["exchange","refresh","reload","rotate","swap"]},"styles":["solid"],"unicode":"f021","label":"Sync"},"sync-alt":{"search":{"terms":["exchange","refresh","reload","rotate","swap"]},"styles":["solid"],"unicode":"f2f1","label":"Alternate Sync"},"syringe":{"search":{"terms":["covid-19","doctor","immunizations","medical","needle"]},"styles":["solid"],"unicode":"f48e","label":"Syringe"},"table":{"search":{"terms":["data","excel","spreadsheet"]},"styles":["solid"],"unicode":"f0ce","label":"table"},"table-tennis":{"search":{"terms":["ball","paddle","ping pong"]},"styles":["solid"],"unicode":"f45d","label":"Table Tennis"},"tablet":{"search":{"terms":["apple","device","ipad","kindle","screen"]},"styles":["solid"],"unicode":"f10a","label":"tablet"},"tablet-alt":{"search":{"terms":["apple","device","ipad","kindle","screen"]},"styles":["solid"],"unicode":"f3fa","label":"Alternate Tablet"},"tablets":{"search":{"terms":["drugs","medicine","pills","prescription"]},"styles":["solid"],"unicode":"f490","label":"Tablets"},"tachometer-alt":{"search":{"terms":["dashboard","fast","odometer","speed","speedometer"]},"styles":["solid"],"unicode":"f3fd","label":"Alternate Tachometer"},"tag":{"search":{"terms":["discount","label","price","shopping"]},"styles":["solid"],"unicode":"f02b","label":"tag"},"tags":{"search":{"terms":["discount","label","price","shopping"]},"styles":["solid"],"unicode":"f02c","label":"tags"},"tape":{"search":{"terms":["design","package","sticky"]},"styles":["solid"],"unicode":"f4db","label":"Tape"},"tasks":{"search":{"terms":["checklist","downloading","downloads","loading","progress","project management","settings","to do"]},"styles":["solid"],"unicode":"f0ae","label":"Tasks"},"taxi":{"search":{"terms":["cab","cabbie","car","car service","lyft","machine","transportation","travel","uber","vehicle"]},"styles":["solid"],"unicode":"f1ba","label":"Taxi"},"teamspeak":{"search":{"terms":[]},"styles":["brands"],"unicode":"f4f9","label":"TeamSpeak"},"teeth":{"search":{"terms":["bite","dental","dentist","gums","mouth","smile","tooth"]},"styles":["solid"],"unicode":"f62e","label":"Teeth"},"teeth-open":{"search":{"terms":["dental","dentist","gums bite","mouth","smile","tooth"]},"styles":["solid"],"unicode":"f62f","label":"Teeth Open"},"telegram":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2c6","label":"Telegram"},"telegram-plane":{"search":{"terms":[]},"styles":["brands"],"unicode":"f3fe","label":"Telegram Plane"},"temperature-high":{"search":{"terms":["cook","covid-19","mercury","summer","thermometer","warm"]},"styles":["solid"],"unicode":"f769","label":"High Temperature"},"temperature-low":{"search":{"terms":["cold","cool","covid-19","mercury","thermometer","winter"]},"styles":["solid"],"unicode":"f76b","label":"Low Temperature"},"tencent-weibo":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d5","label":"Tencent Weibo"},"tenge":{"search":{"terms":["currency","kazakhstan","money","price"]},"styles":["solid"],"unicode":"f7d7","label":"Tenge"},"terminal":{"search":{"terms":["code","command","console","development","prompt"]},"styles":["solid"],"unicode":"f120","label":"Terminal"},"text-height":{"search":{"terms":["edit","font","format","text","type"]},"styles":["solid"],"unicode":"f034","label":"text-height"},"text-width":{"search":{"terms":["edit","font","format","text","type"]},"styles":["solid"],"unicode":"f035","label":"Text Width"},"th":{"search":{"terms":["blocks","boxes","grid","squares"]},"styles":["solid"],"unicode":"f00a","label":"th"},"th-large":{"search":{"terms":["blocks","boxes","grid","squares"]},"styles":["solid"],"unicode":"f009","label":"th-large"},"th-list":{"search":{"terms":["checklist","completed","done","finished","ol","todo","ul"]},"styles":["solid"],"unicode":"f00b","label":"th-list"},"the-red-yeti":{"search":{"terms":[]},"styles":["brands"],"unicode":"f69d","label":"The Red Yeti"},"theater-masks":{"search":{"terms":["comedy","perform","theatre","tragedy"]},"styles":["solid"],"unicode":"f630","label":"Theater Masks"},"themeco":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5c6","label":"Themeco"},"themeisle":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2b2","label":"ThemeIsle"},"thermometer":{"search":{"terms":["covid-19","mercury","status","temperature"]},"styles":["solid"],"unicode":"f491","label":"Thermometer"},"thermometer-empty":{"search":{"terms":["cold","mercury","status","temperature"]},"styles":["solid"],"unicode":"f2cb","label":"Thermometer Empty"},"thermometer-full":{"search":{"terms":["fever","hot","mercury","status","temperature"]},"styles":["solid"],"unicode":"f2c7","label":"Thermometer Full"},"thermometer-half":{"search":{"terms":["mercury","status","temperature"]},"styles":["solid"],"unicode":"f2c9","label":"Thermometer 1/2 Full"},"thermometer-quarter":{"search":{"terms":["mercury","status","temperature"]},"styles":["solid"],"unicode":"f2ca","label":"Thermometer 1/4 Full"},"thermometer-three-quarters":{"search":{"terms":["mercury","status","temperature"]},"styles":["solid"],"unicode":"f2c8","label":"Thermometer 3/4 Full"},"think-peaks":{"search":{"terms":[]},"styles":["brands"],"unicode":"f731","label":"Think Peaks"},"thumbs-down":{"search":{"terms":["disagree","disapprove","dislike","hand","social","thumbs-o-down"]},"styles":["solid","regular"],"unicode":"f165","label":"thumbs-down"},"thumbs-up":{"search":{"terms":["agree","approve","favorite","hand","like","ok","okay","social","success","thumbs-o-up","yes","you got it dude"]},"styles":["solid","regular"],"unicode":"f164","label":"thumbs-up"},"thumbtack":{"search":{"terms":["coordinates","location","marker","pin","thumb-tack"]},"styles":["solid"],"unicode":"f08d","label":"Thumbtack"},"ticket-alt":{"search":{"terms":["movie","pass","support","ticket"]},"styles":["solid"],"unicode":"f3ff","label":"Alternate Ticket"},"times":{"search":{"terms":["close","cross","error","exit","incorrect","notice","notification","notify","problem","wrong","x"]},"styles":["solid"],"unicode":"f00d","label":"Times"},"times-circle":{"search":{"terms":["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},"styles":["solid","regular"],"unicode":"f057","label":"Times Circle"},"tint":{"search":{"terms":["color","drop","droplet","raindrop","waterdrop"]},"styles":["solid"],"unicode":"f043","label":"tint"},"tint-slash":{"search":{"terms":["color","drop","droplet","raindrop","waterdrop"]},"styles":["solid"],"unicode":"f5c7","label":"Tint Slash"},"tired":{"search":{"terms":["angry","emoticon","face","grumpy","upset"]},"styles":["solid","regular"],"unicode":"f5c8","label":"Tired Face"},"toggle-off":{"search":{"terms":["switch"]},"styles":["solid"],"unicode":"f204","label":"Toggle Off"},"toggle-on":{"search":{"terms":["switch"]},"styles":["solid"],"unicode":"f205","label":"Toggle On"},"toilet":{"search":{"terms":["bathroom","flush","john","loo","pee","plumbing","poop","porcelain","potty","restroom","throne","washroom","waste","wc"]},"styles":["solid"],"unicode":"f7d8","label":"Toilet"},"toilet-paper":{"search":{"terms":["bathroom","covid-19","halloween","holiday","lavatory","prank","restroom","roll"]},"styles":["solid"],"unicode":"f71e","label":"Toilet Paper"},"toilet-paper-slash":{"search":{"terms":["bathroom","covid-19","halloween","holiday","lavatory","leaves","prank","restroom","roll","trouble","ut oh"]},"styles":["solid"],"unicode":"f972","label":"Toilet Paper Slash"},"toolbox":{"search":{"terms":["admin","container","fix","repair","settings","tools"]},"styles":["solid"],"unicode":"f552","label":"Toolbox"},"tools":{"search":{"terms":["admin","fix","repair","screwdriver","settings","tools","wrench"]},"styles":["solid"],"unicode":"f7d9","label":"Tools"},"tooth":{"search":{"terms":["bicuspid","dental","dentist","molar","mouth","teeth"]},"styles":["solid"],"unicode":"f5c9","label":"Tooth"},"torah":{"search":{"terms":["book","jewish","judaism","religion","scroll"]},"styles":["solid"],"unicode":"f6a0","label":"Torah"},"torii-gate":{"search":{"terms":["building","shintoism"]},"styles":["solid"],"unicode":"f6a1","label":"Torii Gate"},"tractor":{"search":{"terms":["agriculture","farm","vehicle"]},"styles":["solid"],"unicode":"f722","label":"Tractor"},"trade-federation":{"search":{"terms":[]},"styles":["brands"],"unicode":"f513","label":"Trade Federation"},"trademark":{"search":{"terms":["copyright","register","symbol"]},"styles":["solid"],"unicode":"f25c","label":"Trademark"},"traffic-light":{"search":{"terms":["direction","road","signal","travel"]},"styles":["solid"],"unicode":"f637","label":"Traffic Light"},"trailer":{"search":{"terms":["carry","haul","moving","travel"]},"styles":["solid"],"unicode":"f941","label":"Trailer"},"train":{"search":{"terms":["bullet","commute","locomotive","railway","subway"]},"styles":["solid"],"unicode":"f238","label":"Train"},"tram":{"search":{"terms":["crossing","machine","mountains","seasonal","transportation"]},"styles":["solid"],"unicode":"f7da","label":"Tram"},"transgender":{"search":{"terms":["intersex"]},"styles":["solid"],"unicode":"f224","label":"Transgender"},"transgender-alt":{"search":{"terms":["intersex"]},"styles":["solid"],"unicode":"f225","label":"Alternate Transgender"},"trash":{"search":{"terms":["delete","garbage","hide","remove"]},"styles":["solid"],"unicode":"f1f8","label":"Trash"},"trash-alt":{"search":{"terms":["delete","garbage","hide","remove","trash-o"]},"styles":["solid","regular"],"unicode":"f2ed","label":"Alternate Trash"},"trash-restore":{"search":{"terms":["back","control z","oops","undo"]},"styles":["solid"],"unicode":"f829","label":"Trash Restore"},"trash-restore-alt":{"search":{"terms":["back","control z","oops","undo"]},"styles":["solid"],"unicode":"f82a","label":"Alternative Trash Restore"},"tree":{"search":{"terms":["bark","fall","flora","forest","nature","plant","seasonal"]},"styles":["solid"],"unicode":"f1bb","label":"Tree"},"trello":{"search":{"terms":["atlassian"]},"styles":["brands"],"unicode":"f181","label":"Trello"},"tripadvisor":{"search":{"terms":[]},"styles":["brands"],"unicode":"f262","label":"TripAdvisor"},"trophy":{"search":{"terms":["achievement","award","cup","game","winner"]},"styles":["solid"],"unicode":"f091","label":"trophy"},"truck":{"search":{"terms":["cargo","delivery","shipping","vehicle"]},"styles":["solid"],"unicode":"f0d1","label":"truck"},"truck-loading":{"search":{"terms":["box","cargo","delivery","inventory","moving","rental","vehicle"]},"styles":["solid"],"unicode":"f4de","label":"Truck Loading"},"truck-monster":{"search":{"terms":["offroad","vehicle","wheel"]},"styles":["solid"],"unicode":"f63b","label":"Truck Monster"},"truck-moving":{"search":{"terms":["cargo","inventory","rental","vehicle"]},"styles":["solid"],"unicode":"f4df","label":"Truck Moving"},"truck-pickup":{"search":{"terms":["cargo","vehicle"]},"styles":["solid"],"unicode":"f63c","label":"Truck Side"},"tshirt":{"search":{"terms":["clothing","fashion","garment","shirt"]},"styles":["solid"],"unicode":"f553","label":"T-Shirt"},"tty":{"search":{"terms":["communication","deaf","telephone","teletypewriter","text"]},"styles":["solid"],"unicode":"f1e4","label":"TTY"},"tumblr":{"search":{"terms":[]},"styles":["brands"],"unicode":"f173","label":"Tumblr"},"tumblr-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f174","label":"Tumblr Square"},"tv":{"search":{"terms":["computer","display","monitor","television"]},"styles":["solid"],"unicode":"f26c","label":"Television"},"twitch":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1e8","label":"Twitch"},"twitter":{"search":{"terms":["social network","tweet"]},"styles":["brands"],"unicode":"f099","label":"Twitter"},"twitter-square":{"search":{"terms":["social network","tweet"]},"styles":["brands"],"unicode":"f081","label":"Twitter Square"},"typo3":{"search":{"terms":[]},"styles":["brands"],"unicode":"f42b","label":"Typo3"},"uber":{"search":{"terms":[]},"styles":["brands"],"unicode":"f402","label":"Uber"},"ubuntu":{"search":{"terms":["linux","operating system","os"]},"styles":["brands"],"unicode":"f7df","label":"Ubuntu"},"uikit":{"search":{"terms":[]},"styles":["brands"],"unicode":"f403","label":"UIkit"},"umbraco":{"search":{"terms":[]},"styles":["brands"],"unicode":"f8e8","label":"Umbraco"},"umbrella":{"search":{"terms":["protection","rain","storm","wet"]},"styles":["solid"],"unicode":"f0e9","label":"Umbrella"},"umbrella-beach":{"search":{"terms":["protection","recreation","sand","shade","summer","sun"]},"styles":["solid"],"unicode":"f5ca","label":"Umbrella Beach"},"underline":{"search":{"terms":["edit","emphasis","format","text","writing"]},"styles":["solid"],"unicode":"f0cd","label":"Underline"},"undo":{"search":{"terms":["back","control z","exchange","oops","return","rotate","swap"]},"styles":["solid"],"unicode":"f0e2","label":"Undo"},"undo-alt":{"search":{"terms":["back","control z","exchange","oops","return","swap"]},"styles":["solid"],"unicode":"f2ea","label":"Alternate Undo"},"uniregistry":{"search":{"terms":[]},"styles":["brands"],"unicode":"f404","label":"Uniregistry"},"unity":{"search":{"terms":[]},"styles":["brands"],"unicode":"f949","label":"Unity 3D"},"universal-access":{"search":{"terms":["accessibility","hearing","person","seeing","visual impairment"]},"styles":["solid"],"unicode":"f29a","label":"Universal Access"},"university":{"search":{"terms":["bank","building","college","higher education - students","institution"]},"styles":["solid"],"unicode":"f19c","label":"University"},"unlink":{"search":{"terms":["attachment","chain","chain-broken","remove"]},"styles":["solid"],"unicode":"f127","label":"unlink"},"unlock":{"search":{"terms":["admin","lock","password","private","protect"]},"styles":["solid"],"unicode":"f09c","label":"unlock"},"unlock-alt":{"search":{"terms":["admin","lock","password","private","protect"]},"styles":["solid"],"unicode":"f13e","label":"Alternate Unlock"},"untappd":{"search":{"terms":[]},"styles":["brands"],"unicode":"f405","label":"Untappd"},"upload":{"search":{"terms":["hard drive","import","publish"]},"styles":["solid"],"unicode":"f093","label":"Upload"},"ups":{"search":{"terms":["United Parcel Service","package","shipping"]},"styles":["brands"],"unicode":"f7e0","label":"UPS"},"usb":{"search":{"terms":[]},"styles":["brands"],"unicode":"f287","label":"USB"},"user":{"search":{"terms":["account","avatar","head","human","man","person","profile"]},"styles":["solid","regular"],"unicode":"f007","label":"User"},"user-alt":{"search":{"terms":["account","avatar","head","human","man","person","profile"]},"styles":["solid"],"unicode":"f406","label":"Alternate User"},"user-alt-slash":{"search":{"terms":["account","avatar","head","human","man","person","profile"]},"styles":["solid"],"unicode":"f4fa","label":"Alternate User Slash"},"user-astronaut":{"search":{"terms":["avatar","clothing","cosmonaut","nasa","space","suit"]},"styles":["solid"],"unicode":"f4fb","label":"User Astronaut"},"user-check":{"search":{"terms":["accept","check","person","verified"]},"styles":["solid"],"unicode":"f4fc","label":"User Check"},"user-circle":{"search":{"terms":["account","avatar","head","human","man","person","profile"]},"styles":["solid","regular"],"unicode":"f2bd","label":"User Circle"},"user-clock":{"search":{"terms":["alert","person","remind","time"]},"styles":["solid"],"unicode":"f4fd","label":"User Clock"},"user-cog":{"search":{"terms":["admin","cog","person","settings"]},"styles":["solid"],"unicode":"f4fe","label":"User Cog"},"user-edit":{"search":{"terms":["edit","pen","pencil","person","update","write"]},"styles":["solid"],"unicode":"f4ff","label":"User Edit"},"user-friends":{"search":{"terms":["group","people","person","team","users"]},"styles":["solid"],"unicode":"f500","label":"User Friends"},"user-graduate":{"search":{"terms":["cap","clothing","commencement","gown","graduation","person","student"]},"styles":["solid"],"unicode":"f501","label":"User Graduate"},"user-injured":{"search":{"terms":["cast","injury","ouch","patient","person","sling"]},"styles":["solid"],"unicode":"f728","label":"User Injured"},"user-lock":{"search":{"terms":["admin","lock","person","private","unlock"]},"styles":["solid"],"unicode":"f502","label":"User Lock"},"user-md":{"search":{"terms":["covid-19","job","medical","nurse","occupation","physician","profile","surgeon"]},"styles":["solid"],"unicode":"f0f0","label":"Doctor"},"user-minus":{"search":{"terms":["delete","negative","remove"]},"styles":["solid"],"unicode":"f503","label":"User Minus"},"user-ninja":{"search":{"terms":["assassin","avatar","dangerous","deadly","sneaky"]},"styles":["solid"],"unicode":"f504","label":"User Ninja"},"user-nurse":{"search":{"terms":["covid-19","doctor","midwife","practitioner","surgeon"]},"styles":["solid"],"unicode":"f82f","label":"Nurse"},"user-plus":{"search":{"terms":["add","avatar","positive","sign up","signup","team"]},"styles":["solid"],"unicode":"f234","label":"User Plus"},"user-secret":{"search":{"terms":["clothing","coat","hat","incognito","person","privacy","spy","whisper"]},"styles":["solid"],"unicode":"f21b","label":"User Secret"},"user-shield":{"search":{"terms":["admin","person","private","protect","safe"]},"styles":["solid"],"unicode":"f505","label":"User Shield"},"user-slash":{"search":{"terms":["ban","delete","remove"]},"styles":["solid"],"unicode":"f506","label":"User Slash"},"user-tag":{"search":{"terms":["avatar","discount","label","person","role","special"]},"styles":["solid"],"unicode":"f507","label":"User Tag"},"user-tie":{"search":{"terms":["avatar","business","clothing","formal","professional","suit"]},"styles":["solid"],"unicode":"f508","label":"User Tie"},"user-times":{"search":{"terms":["archive","delete","remove","x"]},"styles":["solid"],"unicode":"f235","label":"Remove User"},"users":{"search":{"terms":["friends","group","people","persons","profiles","team"]},"styles":["solid"],"unicode":"f0c0","label":"Users"},"users-cog":{"search":{"terms":["admin","cog","group","person","settings","team"]},"styles":["solid"],"unicode":"f509","label":"Users Cog"},"usps":{"search":{"terms":["american","package","shipping","usa"]},"styles":["brands"],"unicode":"f7e1","label":"United States Postal Service"},"ussunnah":{"search":{"terms":[]},"styles":["brands"],"unicode":"f407","label":"us-Sunnah Foundation"},"utensil-spoon":{"search":{"terms":["cutlery","dining","scoop","silverware","spoon"]},"styles":["solid"],"unicode":"f2e5","label":"Utensil Spoon"},"utensils":{"search":{"terms":["cutlery","dining","dinner","eat","food","fork","knife","restaurant"]},"styles":["solid"],"unicode":"f2e7","label":"Utensils"},"vaadin":{"search":{"terms":[]},"styles":["brands"],"unicode":"f408","label":"Vaadin"},"vector-square":{"search":{"terms":["anchors","lines","object","render","shape"]},"styles":["solid"],"unicode":"f5cb","label":"Vector Square"},"venus":{"search":{"terms":["female"]},"styles":["solid"],"unicode":"f221","label":"Venus"},"venus-double":{"search":{"terms":["female"]},"styles":["solid"],"unicode":"f226","label":"Venus Double"},"venus-mars":{"search":{"terms":["Gender"]},"styles":["solid"],"unicode":"f228","label":"Venus Mars"},"viacoin":{"search":{"terms":[]},"styles":["brands"],"unicode":"f237","label":"Viacoin"},"viadeo":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2a9","label":"Video"},"viadeo-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2aa","label":"Video Square"},"vial":{"search":{"terms":["experiment","lab","sample","science","test","test tube"]},"styles":["solid"],"unicode":"f492","label":"Vial"},"vials":{"search":{"terms":["experiment","lab","sample","science","test","test tube"]},"styles":["solid"],"unicode":"f493","label":"Vials"},"viber":{"search":{"terms":[]},"styles":["brands"],"unicode":"f409","label":"Viber"},"video":{"search":{"terms":["camera","film","movie","record","video-camera"]},"styles":["solid"],"unicode":"f03d","label":"Video"},"video-slash":{"search":{"terms":["add","create","film","new","positive","record","video"]},"styles":["solid"],"unicode":"f4e2","label":"Video Slash"},"vihara":{"search":{"terms":["buddhism","buddhist","building","monastery"]},"styles":["solid"],"unicode":"f6a7","label":"Vihara"},"vimeo":{"search":{"terms":[]},"styles":["brands"],"unicode":"f40a","label":"Vimeo"},"vimeo-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f194","label":"Vimeo Square"},"vimeo-v":{"search":{"terms":["vimeo"]},"styles":["brands"],"unicode":"f27d","label":"Vimeo"},"vine":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1ca","label":"Vine"},"virus":{"search":{"terms":["bug","covid-19","flu","health","sick","viral"]},"styles":["solid"],"unicode":"f974","label":"Virus"},"virus-slash":{"search":{"terms":["bug","covid-19","cure","eliminate","flu","health","sick","viral"]},"styles":["solid"],"unicode":"f975","label":"Virus Slash"},"viruses":{"search":{"terms":["bugs","covid-19","flu","health","multiply","sick","spread","viral"]},"styles":["solid"],"unicode":"f976","label":"Viruses"},"vk":{"search":{"terms":[]},"styles":["brands"],"unicode":"f189","label":"VK"},"vnv":{"search":{"terms":[]},"styles":["brands"],"unicode":"f40b","label":"VNV"},"voicemail":{"search":{"terms":["answer","inbox","message","phone"]},"styles":["solid"],"unicode":"f897","label":"Voicemail"},"volleyball-ball":{"search":{"terms":["beach","olympics","sport"]},"styles":["solid"],"unicode":"f45f","label":"Volleyball Ball"},"volume-down":{"search":{"terms":["audio","lower","music","quieter","sound","speaker"]},"styles":["solid"],"unicode":"f027","label":"Volume Down"},"volume-mute":{"search":{"terms":["audio","music","quiet","sound","speaker"]},"styles":["solid"],"unicode":"f6a9","label":"Volume Mute"},"volume-off":{"search":{"terms":["audio","ban","music","mute","quiet","silent","sound"]},"styles":["solid"],"unicode":"f026","label":"Volume Off"},"volume-up":{"search":{"terms":["audio","higher","louder","music","sound","speaker"]},"styles":["solid"],"unicode":"f028","label":"Volume Up"},"vote-yea":{"search":{"terms":["accept","cast","election","politics","positive","yes"]},"styles":["solid"],"unicode":"f772","label":"Vote Yea"},"vr-cardboard":{"search":{"terms":["3d","augment","google","reality","virtual"]},"styles":["solid"],"unicode":"f729","label":"Cardboard VR"},"vuejs":{"search":{"terms":[]},"styles":["brands"],"unicode":"f41f","label":"Vue.js"},"walking":{"search":{"terms":["exercise","health","pedometer","person","steps"]},"styles":["solid"],"unicode":"f554","label":"Walking"},"wallet":{"search":{"terms":["billfold","cash","currency","money"]},"styles":["solid"],"unicode":"f555","label":"Wallet"},"warehouse":{"search":{"terms":["building","capacity","garage","inventory","storage"]},"styles":["solid"],"unicode":"f494","label":"Warehouse"},"water":{"search":{"terms":["lake","liquid","ocean","sea","swim","wet"]},"styles":["solid"],"unicode":"f773","label":"Water"},"wave-square":{"search":{"terms":["frequency","pulse","signal"]},"styles":["solid"],"unicode":"f83e","label":"Square Wave"},"waze":{"search":{"terms":[]},"styles":["brands"],"unicode":"f83f","label":"Waze"},"weebly":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5cc","label":"Weebly"},"weibo":{"search":{"terms":[]},"styles":["brands"],"unicode":"f18a","label":"Weibo"},"weight":{"search":{"terms":["health","measurement","scale","weight"]},"styles":["solid"],"unicode":"f496","label":"Weight"},"weight-hanging":{"search":{"terms":["anvil","heavy","measurement"]},"styles":["solid"],"unicode":"f5cd","label":"Hanging Weight"},"weixin":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1d7","label":"Weixin (WeChat)"},"whatsapp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f232","label":"What\'s App"},"whatsapp-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f40c","label":"What\'s App Square"},"wheelchair":{"search":{"terms":["accessible","handicap","person"]},"styles":["solid"],"unicode":"f193","label":"Wheelchair"},"whmcs":{"search":{"terms":[]},"styles":["brands"],"unicode":"f40d","label":"WHMCS"},"wifi":{"search":{"terms":["connection","hotspot","internet","network","wireless"]},"styles":["solid"],"unicode":"f1eb","label":"WiFi"},"wikipedia-w":{"search":{"terms":[]},"styles":["brands"],"unicode":"f266","label":"Wikipedia W"},"wind":{"search":{"terms":["air","blow","breeze","fall","seasonal","weather"]},"styles":["solid"],"unicode":"f72e","label":"Wind"},"window-close":{"search":{"terms":["browser","cancel","computer","development"]},"styles":["solid","regular"],"unicode":"f410","label":"Window Close"},"window-maximize":{"search":{"terms":["browser","computer","development","expand"]},"styles":["solid","regular"],"unicode":"f2d0","label":"Window Maximize"},"window-minimize":{"search":{"terms":["browser","collapse","computer","development"]},"styles":["solid","regular"],"unicode":"f2d1","label":"Window Minimize"},"window-restore":{"search":{"terms":["browser","computer","development"]},"styles":["solid","regular"],"unicode":"f2d2","label":"Window Restore"},"windows":{"search":{"terms":["microsoft","operating system","os"]},"styles":["brands"],"unicode":"f17a","label":"Windows"},"wine-bottle":{"search":{"terms":["alcohol","beverage","cabernet","drink","glass","grapes","merlot","sauvignon"]},"styles":["solid"],"unicode":"f72f","label":"Wine Bottle"},"wine-glass":{"search":{"terms":["alcohol","beverage","cabernet","drink","grapes","merlot","sauvignon"]},"styles":["solid"],"unicode":"f4e3","label":"Wine Glass"},"wine-glass-alt":{"search":{"terms":["alcohol","beverage","cabernet","drink","grapes","merlot","sauvignon"]},"styles":["solid"],"unicode":"f5ce","label":"Alternate Wine Glas"},"wix":{"search":{"terms":[]},"styles":["brands"],"unicode":"f5cf","label":"Wix"},"wizards-of-the-coast":{"search":{"terms":["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},"styles":["brands"],"unicode":"f730","label":"Wizards of the Coast"},"wolf-pack-battalion":{"search":{"terms":[]},"styles":["brands"],"unicode":"f514","label":"Wolf Pack Battalion"},"won-sign":{"search":{"terms":["currency","krw","money"]},"styles":["solid"],"unicode":"f159","label":"Won Sign"},"wordpress":{"search":{"terms":[]},"styles":["brands"],"unicode":"f19a","label":"WordPress Logo"},"wordpress-simple":{"search":{"terms":[]},"styles":["brands"],"unicode":"f411","label":"Wordpress Simple"},"wpbeginner":{"search":{"terms":[]},"styles":["brands"],"unicode":"f297","label":"WPBeginner"},"wpexplorer":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2de","label":"WPExplorer"},"wpforms":{"search":{"terms":[]},"styles":["brands"],"unicode":"f298","label":"WPForms"},"wpressr":{"search":{"terms":["rendact"]},"styles":["brands"],"unicode":"f3e4","label":"wpressr"},"wrench":{"search":{"terms":["construction","fix","mechanic","plumbing","settings","spanner","tool","update"]},"styles":["solid"],"unicode":"f0ad","label":"Wrench"},"x-ray":{"search":{"terms":["health","medical","radiological images","radiology","skeleton"]},"styles":["solid"],"unicode":"f497","label":"X-Ray"},"xbox":{"search":{"terms":[]},"styles":["brands"],"unicode":"f412","label":"Xbox"},"xing":{"search":{"terms":[]},"styles":["brands"],"unicode":"f168","label":"Xing"},"xing-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f169","label":"Xing Square"},"y-combinator":{"search":{"terms":[]},"styles":["brands"],"unicode":"f23b","label":"Y Combinator"},"yahoo":{"search":{"terms":[]},"styles":["brands"],"unicode":"f19e","label":"Yahoo Logo"},"yammer":{"search":{"terms":[]},"styles":["brands"],"unicode":"f840","label":"Yammer"},"yandex":{"search":{"terms":[]},"styles":["brands"],"unicode":"f413","label":"Yandex"},"yandex-international":{"search":{"terms":[]},"styles":["brands"],"unicode":"f414","label":"Yandex International"},"yarn":{"search":{"terms":[]},"styles":["brands"],"unicode":"f7e3","label":"Yarn"},"yelp":{"search":{"terms":[]},"styles":["brands"],"unicode":"f1e9","label":"Yelp"},"yen-sign":{"search":{"terms":["currency","jpy","money"]},"styles":["solid"],"unicode":"f157","label":"Yen Sign"},"yin-yang":{"search":{"terms":["daoism","opposites","taoism"]},"styles":["solid"],"unicode":"f6ad","label":"Yin Yang"},"yoast":{"search":{"terms":[]},"styles":["brands"],"unicode":"f2b1","label":"Yoast"},"youtube":{"search":{"terms":["film","video","youtube-play","youtube-square"]},"styles":["brands"],"unicode":"f167","label":"YouTube"},"youtube-square":{"search":{"terms":[]},"styles":["brands"],"unicode":"f431","label":"YouTube Square"},"zhihu":{"search":{"terms":[]},"styles":["brands"],"unicode":"f63f","label":"Zhihu"}}')},function(e,s){e.exports=window.wp.i18n},function(e,s){e.exports=window.wp.compose},function(e,s,a){var l;!function(){"use strict";var a={}.hasOwnProperty;function r(){for(var e=[],s=0;s{Object(l.useEffect)(()=>{let e=[];if(Object.keys(n).forEach(s=>{Object.keys(n[s].styles).forEach(a=>{let l="",r=n[s].search.terms;switch(n[s].styles[a]){case"brands":l="fab";break;case"solid":l="fas";break;case"regular":l="far";break;default:l="fas"}r.push(s,n[s].label),e.push({name:s,unicode:n[s].unicode,prefix:l,label:n[s].label,search:r})})}),b(e),a){const e=a.split(" "),s=e.find(e=>e.includes("fab")||e.includes("far")||e.includes("fas"))||"fas",l=e.find(e=>e.includes("fa-"));l&&(y(s),g(l))}},[]);const[i,d]=Object(l.useState)(!1),[u,m]=Object(l.useState)(""),[h,b]=Object(l.useState)(null),[f,y]=Object(l.useState)(""),[p,g]=Object(l.useState)("");return Object(l.createElement)(c.ToolbarGroup,null,Object(l.createElement)(c.Dropdown,{contentClassName:"wp-block-themeisle-blocks-menu-icon-picker-popover",position:"bottom center",renderToggle:({isOpen:e,onToggle:s})=>Object(l.createElement)(c.ToolbarButton,{label:Object(o.__)("Menu Icons","otter-blocks"),showTooltip:!0,onClick:()=>{s(),d(!0)}},f&&p?Object(l.createElement)("i",{className:t()(f,p,"fa-fw")}):Object(l.createElement)("i",{className:"fas fa-icons fa-fw"})),renderContent:({onToggle:e})=>Object(l.createElement)(c.MenuGroup,{label:Object(o.__)("Menu Icons by Otter","otter-blocks")},Object(l.createElement)(c.TextControl,{label:"otter-blocks",hideLabelFromVision:!0,placeholder:"otter-blocks",value:u,onChange:m}),Object(l.createElement)("div",{className:"components-popover__items"},p&&f&&!u&&Object(l.createElement)(c.MenuItem,{label:Object(o.__)("None","otter-blocks"),showTooltip:!0,onClick:()=>(e=>{e();let s=a?a.split(" "):[];s.splice(s.indexOf(f),1),s.splice(s.indexOf(p),1),s=s.join(" "),r({className:s}),y(""),g("")})(e)},Object(l.createElement)("i",{className:"fas fa-times fa-fw remove-icon"})),h.map(s=>{if(!u||s.search.some(e=>e.toLowerCase().match(u.toLowerCase())))return Object(l.createElement)(c.MenuItem,{label:s.label,showTooltip:!0,className:t()({"is-selected":"fa-"+s.name===p&&s.prefix===f}),onClick:()=>((e,s)=>{e();let l=a?a.split(" "):[];l.splice(l.indexOf(f),1),l.splice(l.indexOf(p),1),l.push(s.prefix,"fa-"+s.name),l=l.join(" "),r({className:l}),y(s.prefix),g("fa-"+s.name)})(e,s)},Object(l.createElement)("i",{className:t()(s.prefix,"fa-"+s.name,"fa-fw")}))})))}))}),u=a(6),m=a(7);const h=Object(i.createHigherOrderComponent)(e=>s=>"core/navigation-link"===s.name&&s.isSelected?Object(l.createElement)(l.Fragment,null,Object(l.createElement)(e,s),Object(l.createElement)(u.BlockControls,null,Object(l.createElement)(d,{label:Object(o.__)("Change Menu Icon","otter-blocks"),classes:s.attributes.className,setAttributes:s.setAttributes}))):Object(l.createElement)(e,s),"withInspectorControl");Object(m.addFilter)("editor.BlockEdit","themeisle-menu-icons/with-blocks-controls",h)}]);
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/style-frontend.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/style-frontend.css
new file mode 100644
index 00000000..57334a16
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/build/style-frontend.css
@@ -0,0 +1 @@
+.fas.wp-block-navigation-link:before,.fab.wp-block-navigation-link:before,.far.wp-block-navigation-link:before{display:none}.fas.wp-block-navigation-link__content,.fab.wp-block-navigation-link__content,.far.wp-block-navigation-link__content{font-family:inherit;display:flex;align-items:center;font-weight:inherit;-moz-osx-font-smoothing:inherit;-webkit-font-smoothing:inherit;line-height:inherit}.fas.wp-block-navigation-link__content:before,.fab.wp-block-navigation-link__content:before,.far.wp-block-navigation-link__content:before{font-family:"Font Awesome 5 Free";margin-right:5px}.fab.wp-block-navigation-link__content:before,.far.wp-block-navigation-link__content:before{font-weight:400}.fas.wp-block-navigation-link__content:before{font-weight:900}.fab.wp-block-navigation-link__content:before{font-family:"Font Awesome 5 Brands"}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/class-gutenberg-menu-icons.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/class-gutenberg-menu-icons.php
new file mode 100644
index 00000000..3e572d23
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/class-gutenberg-menu-icons.php
@@ -0,0 +1,169 @@
+is_registered( 'core/navigation' );
+
+ if ( ! $block_registered ) {
+ return;
+ }
+
+ $asset_file = include plugin_dir_path( __FILE__ ) . 'build/index.asset.php';
+
+ wp_enqueue_script(
+ 'themeisle-gutenberg-menu-icons',
+ plugin_dir_url( $this->get_dir() ) . $this->slug . '/build/index.js',
+ $asset_file['dependencies'],
+ $asset_file['version'],
+ true
+ );
+
+ wp_enqueue_style(
+ 'themeisle-gutenberg-menu-icons',
+ plugin_dir_url( $this->get_dir() ) . $this->slug . '/build/index.css',
+ array( 'font-awesome-5' ),
+ $asset_file['version']
+ );
+
+ wp_enqueue_style(
+ 'themeisle-gutenberg-menu-icons-font-awesome',
+ plugins_url( '/', __FILE__ ) . 'assets/css/font-awesome.min.css',
+ array( 'font-awesome-5' ),
+ $asset_file['version']
+ );
+
+ wp_set_script_translations( 'themeisle-gutenberg-menu-icons', 'otter-blocks' );
+ }
+
+ /**
+ * Load Gutenberg assets.
+ *
+ * @since 1.0.0
+ * @access public
+ */
+ public function enqueue_block_frontend_assets() {
+ if ( ! has_block( 'core/navigation' ) ) {
+ return;
+ }
+
+ if ( is_admin() ) {
+ return;
+ }
+
+ $asset_file = include plugin_dir_path( __FILE__ ) . 'build/frontend.asset.php';
+
+ wp_enqueue_script(
+ 'themeisle-gutenberg-menu-icons-frontend',
+ plugin_dir_url( $this->get_dir() ) . $this->slug . '/build/frontend.js',
+ $asset_file['dependencies'],
+ $asset_file['version'],
+ true
+ );
+
+ wp_enqueue_style(
+ 'themeisle-gutenberg-menu-icons-frontend',
+ plugin_dir_url( $this->get_dir() ) . $this->slug . '/build/style-frontend.css',
+ array( 'font-awesome-5' ),
+ $asset_file['version']
+ );
+ }
+
+ /**
+ * Method to return path to child class in a Reflective Way.
+ *
+ * @since 1.0.0
+ * @access protected
+ * @return string
+ */
+ protected function get_dir() {
+ return dirname( __FILE__ );
+ }
+
+ /**
+ * The instance method for the static class.
+ * Defines and returns the instance of the static class.
+ *
+ * @static
+ * @since 1.0.0
+ * @access public
+ * @return GutenbergMenuIcons
+ */
+ public static function instance() {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new self();
+ self::$instance->init();
+ }
+
+ return self::$instance;
+ }
+
+ /**
+ * Throw error on object clone
+ *
+ * The whole idea of the singleton design pattern is that there is a single
+ * object therefore, we don't want the object to be cloned.
+ *
+ * @access public
+ * @since 1.0.0
+ * @return void
+ */
+ public function __clone() {
+ // Cloning instances of the class is forbidden.
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' );
+ }
+
+ /**
+ * Disable unserializing of the class
+ *
+ * @access public
+ * @since 1.0.0
+ * @return void
+ */
+ public function __wakeup() {
+ // Unserializing instances of the class is forbidden.
+ _doing_it_wrong( __FUNCTION__, esc_html__( 'Cheatin’ huh?', 'otter-blocks' ), '1.0.0' );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/load.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/load.php
new file mode 100644
index 00000000..f6fe329c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/gutenberg-menu-icons/load.php
@@ -0,0 +1,23 @@
+
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {description}
+ Copyright (C) {year} {fullname}
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ {signature of Ty Coon}, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.css
new file mode 100644
index 00000000..18eed04b
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.css
@@ -0,0 +1,79 @@
+.iconpicker-fonts-browser .media-toolbar-secondary {
+ min-width: 40%;
+}
+.iconpicker-item ._icon {
+ display: inline-block;
+ margin-top: 8px;
+ color: #555;
+}
+.iconpicker-items .selected ._icon {
+ color: #222;
+}
+
+.iconpicker-item ._icon i {
+ font-size: 100px;
+ width: 100%;
+ height: 100%;
+ vertical-align: middle;
+}
+
+.attachment .svg-icon img {
+ min-width: 80%;
+ max-width: 100%;
+}
+
+/** Field **/
+.ipf-select {
+ cursor: pointer;
+}
+.ipf .has-icon {
+ display: block;
+ width: 100px;
+ height: 100px;
+ line-height: 100px;
+ margin-bottom: 1em;
+ text-align: center;
+ padding: 12px;
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.1) inset, 0 0 0 1px rgba(0, 0, 0, .05) inset;
+ background: #eee;
+}
+.ipf ._icon {
+ display: inline-block;
+ color: #333;
+ font-size: 6em;
+ width: 100%;
+ height: 100%;
+}
+.ipf ._icon::before {
+ line-height: 100px;
+}
+
+/** CMB **/
+.cmb_metabox .Icon_Picker_Field_Cmb.repeatable > .field-item {
+ float: left;
+ height: 100px;
+ line-height: 100px;
+ margin-right: 12px;
+ margin-bottom: 12px;
+ padding: 12px;
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.1) inset, 0 0 0 1px rgba(0, 0, 0, .05) inset;
+ background: #eee;
+ min-width: 100px;
+ text-align: center;
+}
+.Icon_Picker_Field_Cmb.repeatable .button {
+ display: inline-block;
+ vertical-align: middle;
+}
+.Icon_Picker_Field_Cmb.repeatable .has-icon {
+ margin-bottom: 0;
+ padding: 0;
+ box-shadow: none;
+ background: none;
+}
+.Icon_Picker_Field_Cmb.repeatable .ipf-remove {
+ display: none;
+}
+.Icon_Picker_Field_Cmb .cmb-delete-field {
+ right: 3px;
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.min.css
new file mode 100644
index 00000000..c5804836
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/icon-picker.min.css
@@ -0,0 +1 @@
+.cmb_metabox .Icon_Picker_Field_Cmb.repeatable>.field-item,.ipf .has-icon{line-height:100px;padding:12px;box-shadow:0 0 15px rgba(0,0,0,.1) inset,0 0 0 1px rgba(0,0,0,.05) inset;background:#eee;text-align:center}.iconpicker-fonts-browser .media-toolbar-secondary{min-width:40%}.iconpicker-item ._icon{display:inline-block;margin-top:8px;color:#555}.iconpicker-items .selected ._icon{color:#222}.iconpicker-item ._icon i{font-size:100px;width:100%;height:100%;vertical-align:middle}.attachment .svg-icon img{min-width:80%;max-width:100%}.ipf-select{cursor:pointer}.ipf .has-icon{display:block;width:100px;height:100px;margin-bottom:1em}.ipf ._icon{display:inline-block;color:#333;font-size:6em;width:100%;height:100%}.ipf ._icon::before{line-height:100px}.cmb_metabox .Icon_Picker_Field_Cmb.repeatable>.field-item{float:left;height:100px;margin-right:12px;margin-bottom:12px;min-width:100px}.Icon_Picker_Field_Cmb.repeatable .button{display:inline-block;vertical-align:middle}.Icon_Picker_Field_Cmb.repeatable .has-icon{margin-bottom:0;padding:0;box-shadow:none;background:0 0}.Icon_Picker_Field_Cmb.repeatable .ipf-remove{display:none}.Icon_Picker_Field_Cmb .cmb-delete-field{right:3px}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.eot b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.eot
new file mode 100644
index 00000000..822d1819
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.eot differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.svg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.svg
new file mode 100644
index 00000000..1dc2e76d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.svg
@@ -0,0 +1,309 @@
+
+
+
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.ttf b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.ttf
new file mode 100644
index 00000000..ba2bafe7
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.ttf differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.woff b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.woff
new file mode 100644
index 00000000..0d9e2740
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Elusive-Icons.woff differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.eot b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.eot
new file mode 100644
index 00000000..7322565a
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.eot differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.svg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.svg
new file mode 100644
index 00000000..47406858
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.svg
@@ -0,0 +1,537 @@
+
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.ttf b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.ttf
new file mode 100644
index 00000000..01744385
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.ttf differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.woff b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.woff
new file mode 100644
index 00000000..0e7212af
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/Genericons.woff differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.css
new file mode 100644
index 00000000..f9874f47
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.css
@@ -0,0 +1,922 @@
+@font-face {
+ font-family: 'Elusive-Icons';
+ src:url('./Elusive-Icons.eot');
+ src:url('./Elusive-Icons.eot?#iefix') format('embedded-opentype'),
+ url('./Elusive-Icons.ttf') format('truetype'),
+ url('./Elusive-Icons.woff') format('woff'),
+ url('./Elusive-Icons.svg#Elusive-Icons') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+[class*="el-icon-"] {
+ font-family: 'Elusive-Icons';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+
+ /* Better Font Rendering =========== */
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.el-icon-zoom-out:before {
+ content: "\e600";
+}
+.el-icon-zoom-in:before {
+ content: "\e601";
+}
+.el-icon-youtube:before {
+ content: "\e602";
+}
+.el-icon-wrench-alt:before {
+ content: "\e603";
+}
+.el-icon-wrench:before {
+ content: "\e604";
+}
+.el-icon-wordpress:before {
+ content: "\e605";
+}
+.el-icon-wheelchair:before {
+ content: "\e606";
+}
+.el-icon-website-alt:before {
+ content: "\e607";
+}
+.el-icon-website:before {
+ content: "\e608";
+}
+.el-icon-warning-sign:before {
+ content: "\e609";
+}
+.el-icon-w3c:before {
+ content: "\e60a";
+}
+.el-icon-volume-up:before {
+ content: "\e60b";
+}
+.el-icon-volume-off:before {
+ content: "\e60c";
+}
+.el-icon-volume-down:before {
+ content: "\e60d";
+}
+.el-icon-vkontakte:before {
+ content: "\e60e";
+}
+.el-icon-vimeo:before {
+ content: "\e60f";
+}
+.el-icon-view-mode:before {
+ content: "\e610";
+}
+.el-icon-video-chat:before {
+ content: "\e611";
+}
+.el-icon-video-alt:before {
+ content: "\e612";
+}
+.el-icon-video:before {
+ content: "\e613";
+}
+.el-icon-viadeo:before {
+ content: "\e614";
+}
+.el-icon-user:before {
+ content: "\e615";
+}
+.el-icon-usd:before {
+ content: "\e616";
+}
+.el-icon-upload:before {
+ content: "\e617";
+}
+.el-icon-unlock-alt:before {
+ content: "\e618";
+}
+.el-icon-unlock:before {
+ content: "\e619";
+}
+.el-icon-universal-access:before {
+ content: "\e61a";
+}
+.el-icon-twitter:before {
+ content: "\e61b";
+}
+.el-icon-tumblr:before {
+ content: "\e61c";
+}
+.el-icon-trash-alt:before {
+ content: "\e61d";
+}
+.el-icon-trash:before {
+ content: "\e61e";
+}
+.el-icon-torso:before {
+ content: "\e61f";
+}
+.el-icon-tint:before {
+ content: "\e620";
+}
+.el-icon-time-alt:before {
+ content: "\e621";
+}
+.el-icon-time:before {
+ content: "\e622";
+}
+.el-icon-thumbs-up:before {
+ content: "\e623";
+}
+.el-icon-thumbs-down:before {
+ content: "\e624";
+}
+.el-icon-th-list:before {
+ content: "\e625";
+}
+.el-icon-th-large:before {
+ content: "\e626";
+}
+.el-icon-th:before {
+ content: "\e627";
+}
+.el-icon-text-width:before {
+ content: "\e628";
+}
+.el-icon-text-height:before {
+ content: "\e629";
+}
+.el-icon-tasks:before {
+ content: "\e62a";
+}
+.el-icon-tags:before {
+ content: "\e62b";
+}
+.el-icon-tag:before {
+ content: "\e62c";
+}
+.el-icon-stumbleupon:before {
+ content: "\e62d";
+}
+.el-icon-stop-alt:before {
+ content: "\e62e";
+}
+.el-icon-stop:before {
+ content: "\e62f";
+}
+.el-icon-step-forward:before {
+ content: "\e630";
+}
+.el-icon-step-backward:before {
+ content: "\e631";
+}
+.el-icon-star-empty:before {
+ content: "\e632";
+}
+.el-icon-star-alt:before {
+ content: "\e633";
+}
+.el-icon-star:before {
+ content: "\e634";
+}
+.el-icon-stackoverflow:before {
+ content: "\e635";
+}
+.el-icon-spotify:before {
+ content: "\e636";
+}
+.el-icon-speaker:before {
+ content: "\e637";
+}
+.el-icon-soundcloud:before {
+ content: "\e638";
+}
+.el-icon-smiley-alt:before {
+ content: "\e639";
+}
+.el-icon-smiley:before {
+ content: "\e63a";
+}
+.el-icon-slideshare:before {
+ content: "\e63b";
+}
+.el-icon-skype:before {
+ content: "\e63c";
+}
+.el-icon-signal:before {
+ content: "\e63d";
+}
+.el-icon-shopping-cart-sign:before {
+ content: "\e63e";
+}
+.el-icon-shopping-cart:before {
+ content: "\e63f";
+}
+.el-icon-share-alt:before {
+ content: "\e640";
+}
+.el-icon-share:before {
+ content: "\e641";
+}
+.el-icon-search-alt:before {
+ content: "\e642";
+}
+.el-icon-search:before {
+ content: "\e643";
+}
+.el-icon-screenshot:before {
+ content: "\e644";
+}
+.el-icon-screen-alt:before {
+ content: "\e645";
+}
+.el-icon-screen:before {
+ content: "\e646";
+}
+.el-icon-scissors:before {
+ content: "\e647";
+}
+.el-icon-rss:before {
+ content: "\e648";
+}
+.el-icon-road:before {
+ content: "\e649";
+}
+.el-icon-reverse-alt:before {
+ content: "\e64a";
+}
+.el-icon-retweet:before {
+ content: "\e64b";
+}
+.el-icon-return-key:before {
+ content: "\e64c";
+}
+.el-icon-resize-vertical:before {
+ content: "\e64d";
+}
+.el-icon-resize-small:before {
+ content: "\e64e";
+}
+.el-icon-resize-horizontal:before {
+ content: "\e64f";
+}
+.el-icon-resize-full:before {
+ content: "\e650";
+}
+.el-icon-repeat-alt:before {
+ content: "\e651";
+}
+.el-icon-repeat:before {
+ content: "\e652";
+}
+.el-icon-remove-sign:before {
+ content: "\e653";
+}
+.el-icon-remove-circle:before {
+ content: "\e654";
+}
+.el-icon-remove:before {
+ content: "\e655";
+}
+.el-icon-refresh:before {
+ content: "\e656";
+}
+.el-icon-reddit:before {
+ content: "\e657";
+}
+.el-icon-record:before {
+ content: "\e658";
+}
+.el-icon-random:before {
+ content: "\e659";
+}
+.el-icon-quotes-alt:before {
+ content: "\e65a";
+}
+.el-icon-quotes:before {
+ content: "\e65b";
+}
+.el-icon-question-sign:before {
+ content: "\e65c";
+}
+.el-icon-question:before {
+ content: "\e65d";
+}
+.el-icon-qrcode:before {
+ content: "\e65e";
+}
+.el-icon-puzzle:before {
+ content: "\e65f";
+}
+.el-icon-print:before {
+ content: "\e660";
+}
+.el-icon-podcast:before {
+ content: "\e661";
+}
+.el-icon-plus-sign:before {
+ content: "\e662";
+}
+.el-icon-plus:before {
+ content: "\e663";
+}
+.el-icon-play-circle:before {
+ content: "\e664";
+}
+.el-icon-play-alt:before {
+ content: "\e665";
+}
+.el-icon-play:before {
+ content: "\e666";
+}
+.el-icon-plane:before {
+ content: "\e667";
+}
+.el-icon-pinterest:before {
+ content: "\e668";
+}
+.el-icon-picture:before {
+ content: "\e669";
+}
+.el-icon-picasa:before {
+ content: "\e66a";
+}
+.el-icon-photo-alt:before {
+ content: "\e66b";
+}
+.el-icon-photo:before {
+ content: "\e66c";
+}
+.el-icon-phone-alt:before {
+ content: "\e66d";
+}
+.el-icon-phone:before {
+ content: "\e66e";
+}
+.el-icon-person:before {
+ content: "\e66f";
+}
+.el-icon-pencil-alt:before {
+ content: "\e670";
+}
+.el-icon-pencil:before {
+ content: "\e671";
+}
+.el-icon-pause-alt:before {
+ content: "\e672";
+}
+.el-icon-pause:before {
+ content: "\e673";
+}
+.el-icon-path:before {
+ content: "\e674";
+}
+.el-icon-paper-clip-alt:before {
+ content: "\e675";
+}
+.el-icon-paper-clip:before {
+ content: "\e676";
+}
+.el-icon-opensource:before {
+ content: "\e677";
+}
+.el-icon-ok-sign:before {
+ content: "\e678";
+}
+.el-icon-ok-circle:before {
+ content: "\e679";
+}
+.el-icon-ok:before {
+ content: "\e67a";
+}
+.el-icon-off:before {
+ content: "\e67b";
+}
+.el-icon-network:before {
+ content: "\e67c";
+}
+.el-icon-myspace:before {
+ content: "\e67d";
+}
+.el-icon-music:before {
+ content: "\e67e";
+}
+.el-icon-move:before {
+ content: "\e67f";
+}
+.el-icon-minus-sign:before {
+ content: "\e680";
+}
+.el-icon-minus:before {
+ content: "\e681";
+}
+.el-icon-mic-alt:before {
+ content: "\e682";
+}
+.el-icon-mic:before {
+ content: "\e683";
+}
+.el-icon-map-marker-alt:before {
+ content: "\e684";
+}
+.el-icon-map-marker:before {
+ content: "\e685";
+}
+.el-icon-male:before {
+ content: "\e686";
+}
+.el-icon-magnet:before {
+ content: "\e687";
+}
+.el-icon-magic:before {
+ content: "\e688";
+}
+.el-icon-lock-alt:before {
+ content: "\e689";
+}
+.el-icon-lock:before {
+ content: "\e68a";
+}
+.el-icon-livejournal:before {
+ content: "\e68b";
+}
+.el-icon-list-alt:before {
+ content: "\e68c";
+}
+.el-icon-list:before {
+ content: "\e68d";
+}
+.el-icon-linkedin:before {
+ content: "\e68e";
+}
+.el-icon-link:before {
+ content: "\e68f";
+}
+.el-icon-lines:before {
+ content: "\e690";
+}
+.el-icon-leaf:before {
+ content: "\e691";
+}
+.el-icon-lastfm:before {
+ content: "\e692";
+}
+.el-icon-laptop-alt:before {
+ content: "\e693";
+}
+.el-icon-laptop:before {
+ content: "\e694";
+}
+.el-icon-key:before {
+ content: "\e695";
+}
+.el-icon-italic:before {
+ content: "\e696";
+}
+.el-icon-iphone-home:before {
+ content: "\e697";
+}
+.el-icon-instagram:before {
+ content: "\e698";
+}
+.el-icon-info-sign:before {
+ content: "\e699";
+}
+.el-icon-indent-right:before {
+ content: "\e69a";
+}
+.el-icon-indent-left:before {
+ content: "\e69b";
+}
+.el-icon-inbox-box:before {
+ content: "\e69c";
+}
+.el-icon-inbox-alt:before {
+ content: "\e69d";
+}
+.el-icon-inbox:before {
+ content: "\e69e";
+}
+.el-icon-idea-alt:before {
+ content: "\e69f";
+}
+.el-icon-idea:before {
+ content: "\e6a0";
+}
+.el-icon-hourglass:before {
+ content: "\e6a1";
+}
+.el-icon-home-alt:before {
+ content: "\e6a2";
+}
+.el-icon-home:before {
+ content: "\e6a3";
+}
+.el-icon-heart-empty:before {
+ content: "\e6a4";
+}
+.el-icon-heart-alt:before {
+ content: "\e6a5";
+}
+.el-icon-heart:before {
+ content: "\e6a6";
+}
+.el-icon-hearing-impaired:before {
+ content: "\e6a7";
+}
+.el-icon-headphones:before {
+ content: "\e6a8";
+}
+.el-icon-hdd:before {
+ content: "\e6a9";
+}
+.el-icon-hand-up:before {
+ content: "\e6aa";
+}
+.el-icon-hand-right:before {
+ content: "\e6ab";
+}
+.el-icon-hand-left:before {
+ content: "\e6ac";
+}
+.el-icon-hand-down:before {
+ content: "\e6ad";
+}
+.el-icon-guidedog:before {
+ content: "\e6ae";
+}
+.el-icon-group-alt:before {
+ content: "\e6af";
+}
+.el-icon-group:before {
+ content: "\e6b0";
+}
+.el-icon-graph-alt:before {
+ content: "\e6b1";
+}
+.el-icon-graph:before {
+ content: "\e6b2";
+}
+.el-icon-googleplus:before {
+ content: "\e6b3";
+}
+.el-icon-globe-alt:before {
+ content: "\e6b4";
+}
+.el-icon-globe:before {
+ content: "\e6b5";
+}
+.el-icon-glasses:before {
+ content: "\e6b6";
+}
+.el-icon-glass:before {
+ content: "\e6b7";
+}
+.el-icon-github-text:before {
+ content: "\e6b8";
+}
+.el-icon-github:before {
+ content: "\e6b9";
+}
+.el-icon-gift:before {
+ content: "\e6ba";
+}
+.el-icon-gbp:before {
+ content: "\e6bb";
+}
+.el-icon-fullscreen:before {
+ content: "\e6bc";
+}
+.el-icon-friendfeed-rect:before {
+ content: "\e6bd";
+}
+.el-icon-friendfeed:before {
+ content: "\e6be";
+}
+.el-icon-foursquare:before {
+ content: "\e6bf";
+}
+.el-icon-forward-alt:before {
+ content: "\e6c0";
+}
+.el-icon-forward:before {
+ content: "\e6c1";
+}
+.el-icon-fork:before {
+ content: "\e6c2";
+}
+.el-icon-fontsize:before {
+ content: "\e6c3";
+}
+.el-icon-font:before {
+ content: "\e6c4";
+}
+.el-icon-folder-sign:before {
+ content: "\e6c5";
+}
+.el-icon-folder-open:before {
+ content: "\e6c6";
+}
+.el-icon-folder-close:before {
+ content: "\e6c7";
+}
+.el-icon-folder:before {
+ content: "\e6c8";
+}
+.el-icon-flickr:before {
+ content: "\e6c9";
+}
+.el-icon-flag-alt:before {
+ content: "\e6ca";
+}
+.el-icon-flag:before {
+ content: "\e6cb";
+}
+.el-icon-fire:before {
+ content: "\e6cc";
+}
+.el-icon-filter:before {
+ content: "\e6cd";
+}
+.el-icon-film:before {
+ content: "\e6ce";
+}
+.el-icon-file-new-alt:before {
+ content: "\e6cf";
+}
+.el-icon-file-new:before {
+ content: "\e6d0";
+}
+.el-icon-file-edit-alt:before {
+ content: "\e6d1";
+}
+.el-icon-file-edit:before {
+ content: "\e6d2";
+}
+.el-icon-file-alt:before {
+ content: "\e6d3";
+}
+.el-icon-file:before {
+ content: "\e6d4";
+}
+.el-icon-female:before {
+ content: "\e6d5";
+}
+.el-icon-fast-forward:before {
+ content: "\e6d6";
+}
+.el-icon-fast-backward:before {
+ content: "\e6d7";
+}
+.el-icon-facetime-video:before {
+ content: "\e6d8";
+}
+.el-icon-facebook:before {
+ content: "\e6d9";
+}
+.el-icon-eye-open:before {
+ content: "\e6da";
+}
+.el-icon-eye-close:before {
+ content: "\e6db";
+}
+.el-icon-exclamation-sign:before {
+ content: "\e6dc";
+}
+.el-icon-eur:before {
+ content: "\e6dd";
+}
+.el-icon-error-alt:before {
+ content: "\e6de";
+}
+.el-icon-error:before {
+ content: "\e6df";
+}
+.el-icon-envelope-alt:before {
+ content: "\e6e0";
+}
+.el-icon-envelope:before {
+ content: "\e6e1";
+}
+.el-icon-eject:before {
+ content: "\e6e2";
+}
+.el-icon-edit:before {
+ content: "\e6e3";
+}
+.el-icon-dribbble:before {
+ content: "\e6e4";
+}
+.el-icon-download-alt:before {
+ content: "\e6e5";
+}
+.el-icon-download:before {
+ content: "\e6e6";
+}
+.el-icon-digg:before {
+ content: "\e6e7";
+}
+.el-icon-deviantart:before {
+ content: "\e6e8";
+}
+.el-icon-delicious:before {
+ content: "\e6e9";
+}
+.el-icon-dashboard:before {
+ content: "\e6ea";
+}
+.el-icon-css:before {
+ content: "\e6eb";
+}
+.el-icon-credit-card:before {
+ content: "\e6ec";
+}
+.el-icon-compass-alt:before {
+ content: "\e6ed";
+}
+.el-icon-compass:before {
+ content: "\e6ee";
+}
+.el-icon-comment-alt:before {
+ content: "\e6ef";
+}
+.el-icon-comment:before {
+ content: "\e6f0";
+}
+.el-icon-cogs:before {
+ content: "\e6f1";
+}
+.el-icon-cog-alt:before {
+ content: "\e6f2";
+}
+.el-icon-cog:before {
+ content: "\e6f3";
+}
+.el-icon-cloud-alt:before {
+ content: "\e6f4";
+}
+.el-icon-cloud:before {
+ content: "\e6f5";
+}
+.el-icon-circle-arrow-up:before {
+ content: "\e6f6";
+}
+.el-icon-circle-arrow-right:before {
+ content: "\e6f7";
+}
+.el-icon-circle-arrow-left:before {
+ content: "\e6f8";
+}
+.el-icon-circle-arrow-down:before {
+ content: "\e6f9";
+}
+.el-icon-child:before {
+ content: "\e6fa";
+}
+.el-icon-chevron-up:before {
+ content: "\e6fb";
+}
+.el-icon-chevron-right:before {
+ content: "\e6fc";
+}
+.el-icon-chevron-left:before {
+ content: "\e6fd";
+}
+.el-icon-chevron-down:before {
+ content: "\e6fe";
+}
+.el-icon-check-empty:before {
+ content: "\e6ff";
+}
+.el-icon-check:before {
+ content: "\e700";
+}
+.el-icon-certificate:before {
+ content: "\e701";
+}
+.el-icon-cc:before {
+ content: "\e702";
+}
+.el-icon-caret-up:before {
+ content: "\e703";
+}
+.el-icon-caret-right:before {
+ content: "\e704";
+}
+.el-icon-caret-left:before {
+ content: "\e705";
+}
+.el-icon-caret-down:before {
+ content: "\e706";
+}
+.el-icon-car:before {
+ content: "\e707";
+}
+.el-icon-camera:before {
+ content: "\e708";
+}
+.el-icon-calendar-sign:before {
+ content: "\e709";
+}
+.el-icon-calendar:before {
+ content: "\e70a";
+}
+.el-icon-bullhorn:before {
+ content: "\e70b";
+}
+.el-icon-bulb:before {
+ content: "\e70c";
+}
+.el-icon-brush:before {
+ content: "\e70d";
+}
+.el-icon-broom:before {
+ content: "\e70e";
+}
+.el-icon-briefcase:before {
+ content: "\e70f";
+}
+.el-icon-braille:before {
+ content: "\e710";
+}
+.el-icon-bookmark-empty:before {
+ content: "\e711";
+}
+.el-icon-bookmark:before {
+ content: "\e712";
+}
+.el-icon-book:before {
+ content: "\e713";
+}
+.el-icon-bold:before {
+ content: "\e714";
+}
+.el-icon-blogger:before {
+ content: "\e715";
+}
+.el-icon-blind:before {
+ content: "\e716";
+}
+.el-icon-bell:before {
+ content: "\e717";
+}
+.el-icon-behance:before {
+ content: "\e718";
+}
+.el-icon-barcode:before {
+ content: "\e719";
+}
+.el-icon-ban-circle:before {
+ content: "\e71a";
+}
+.el-icon-backward:before {
+ content: "\e71b";
+}
+.el-icon-asl:before {
+ content: "\e71c";
+}
+.el-icon-arrow-up:before {
+ content: "\e71d";
+}
+.el-icon-arrow-right:before {
+ content: "\e71e";
+}
+.el-icon-arrow-left:before {
+ content: "\e71f";
+}
+.el-icon-arrow-down:before {
+ content: "\e720";
+}
+.el-icon-align-right:before {
+ content: "\e721";
+}
+.el-icon-align-left:before {
+ content: "\e722";
+}
+.el-icon-align-justify:before {
+ content: "\e723";
+}
+.el-icon-align-center:before {
+ content: "\e724";
+}
+.el-icon-adult:before {
+ content: "\e725";
+}
+.el-icon-adjust-alt:before {
+ content: "\e726";
+}
+.el-icon-adjust:before {
+ content: "\e727";
+}
+.el-icon-address-book-alt:before {
+ content: "\e728";
+}
+.el-icon-address-book:before {
+ content: "\e729";
+}
+.el-icon-asterisk:before {
+ content: "\e72a";
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.min.css
new file mode 100644
index 00000000..4c26257c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/elusive.min.css
@@ -0,0 +1 @@
+@font-face{font-family:Elusive-Icons;src:url(./Elusive-Icons.eot);src:url(./Elusive-Icons.eot?#iefix) format('embedded-opentype'),url(./Elusive-Icons.ttf) format('truetype'),url(./Elusive-Icons.woff) format('woff'),url(./Elusive-Icons.svg#Elusive-Icons) format('svg');font-weight:400;font-style:normal}[class*=el-icon-]{font-family:Elusive-Icons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-zoom-out:before{content:"\e600"}.el-icon-zoom-in:before{content:"\e601"}.el-icon-youtube:before{content:"\e602"}.el-icon-wrench-alt:before{content:"\e603"}.el-icon-wrench:before{content:"\e604"}.el-icon-wordpress:before{content:"\e605"}.el-icon-wheelchair:before{content:"\e606"}.el-icon-website-alt:before{content:"\e607"}.el-icon-website:before{content:"\e608"}.el-icon-warning-sign:before{content:"\e609"}.el-icon-w3c:before{content:"\e60a"}.el-icon-volume-up:before{content:"\e60b"}.el-icon-volume-off:before{content:"\e60c"}.el-icon-volume-down:before{content:"\e60d"}.el-icon-vkontakte:before{content:"\e60e"}.el-icon-vimeo:before{content:"\e60f"}.el-icon-view-mode:before{content:"\e610"}.el-icon-video-chat:before{content:"\e611"}.el-icon-video-alt:before{content:"\e612"}.el-icon-video:before{content:"\e613"}.el-icon-viadeo:before{content:"\e614"}.el-icon-user:before{content:"\e615"}.el-icon-usd:before{content:"\e616"}.el-icon-upload:before{content:"\e617"}.el-icon-unlock-alt:before{content:"\e618"}.el-icon-unlock:before{content:"\e619"}.el-icon-universal-access:before{content:"\e61a"}.el-icon-twitter:before{content:"\e61b"}.el-icon-tumblr:before{content:"\e61c"}.el-icon-trash-alt:before{content:"\e61d"}.el-icon-trash:before{content:"\e61e"}.el-icon-torso:before{content:"\e61f"}.el-icon-tint:before{content:"\e620"}.el-icon-time-alt:before{content:"\e621"}.el-icon-time:before{content:"\e622"}.el-icon-thumbs-up:before{content:"\e623"}.el-icon-thumbs-down:before{content:"\e624"}.el-icon-th-list:before{content:"\e625"}.el-icon-th-large:before{content:"\e626"}.el-icon-th:before{content:"\e627"}.el-icon-text-width:before{content:"\e628"}.el-icon-text-height:before{content:"\e629"}.el-icon-tasks:before{content:"\e62a"}.el-icon-tags:before{content:"\e62b"}.el-icon-tag:before{content:"\e62c"}.el-icon-stumbleupon:before{content:"\e62d"}.el-icon-stop-alt:before{content:"\e62e"}.el-icon-stop:before{content:"\e62f"}.el-icon-step-forward:before{content:"\e630"}.el-icon-step-backward:before{content:"\e631"}.el-icon-star-empty:before{content:"\e632"}.el-icon-star-alt:before{content:"\e633"}.el-icon-star:before{content:"\e634"}.el-icon-stackoverflow:before{content:"\e635"}.el-icon-spotify:before{content:"\e636"}.el-icon-speaker:before{content:"\e637"}.el-icon-soundcloud:before{content:"\e638"}.el-icon-smiley-alt:before{content:"\e639"}.el-icon-smiley:before{content:"\e63a"}.el-icon-slideshare:before{content:"\e63b"}.el-icon-skype:before{content:"\e63c"}.el-icon-signal:before{content:"\e63d"}.el-icon-shopping-cart-sign:before{content:"\e63e"}.el-icon-shopping-cart:before{content:"\e63f"}.el-icon-share-alt:before{content:"\e640"}.el-icon-share:before{content:"\e641"}.el-icon-search-alt:before{content:"\e642"}.el-icon-search:before{content:"\e643"}.el-icon-screenshot:before{content:"\e644"}.el-icon-screen-alt:before{content:"\e645"}.el-icon-screen:before{content:"\e646"}.el-icon-scissors:before{content:"\e647"}.el-icon-rss:before{content:"\e648"}.el-icon-road:before{content:"\e649"}.el-icon-reverse-alt:before{content:"\e64a"}.el-icon-retweet:before{content:"\e64b"}.el-icon-return-key:before{content:"\e64c"}.el-icon-resize-vertical:before{content:"\e64d"}.el-icon-resize-small:before{content:"\e64e"}.el-icon-resize-horizontal:before{content:"\e64f"}.el-icon-resize-full:before{content:"\e650"}.el-icon-repeat-alt:before{content:"\e651"}.el-icon-repeat:before{content:"\e652"}.el-icon-remove-sign:before{content:"\e653"}.el-icon-remove-circle:before{content:"\e654"}.el-icon-remove:before{content:"\e655"}.el-icon-refresh:before{content:"\e656"}.el-icon-reddit:before{content:"\e657"}.el-icon-record:before{content:"\e658"}.el-icon-random:before{content:"\e659"}.el-icon-quotes-alt:before{content:"\e65a"}.el-icon-quotes:before{content:"\e65b"}.el-icon-question-sign:before{content:"\e65c"}.el-icon-question:before{content:"\e65d"}.el-icon-qrcode:before{content:"\e65e"}.el-icon-puzzle:before{content:"\e65f"}.el-icon-print:before{content:"\e660"}.el-icon-podcast:before{content:"\e661"}.el-icon-plus-sign:before{content:"\e662"}.el-icon-plus:before{content:"\e663"}.el-icon-play-circle:before{content:"\e664"}.el-icon-play-alt:before{content:"\e665"}.el-icon-play:before{content:"\e666"}.el-icon-plane:before{content:"\e667"}.el-icon-pinterest:before{content:"\e668"}.el-icon-picture:before{content:"\e669"}.el-icon-picasa:before{content:"\e66a"}.el-icon-photo-alt:before{content:"\e66b"}.el-icon-photo:before{content:"\e66c"}.el-icon-phone-alt:before{content:"\e66d"}.el-icon-phone:before{content:"\e66e"}.el-icon-person:before{content:"\e66f"}.el-icon-pencil-alt:before{content:"\e670"}.el-icon-pencil:before{content:"\e671"}.el-icon-pause-alt:before{content:"\e672"}.el-icon-pause:before{content:"\e673"}.el-icon-path:before{content:"\e674"}.el-icon-paper-clip-alt:before{content:"\e675"}.el-icon-paper-clip:before{content:"\e676"}.el-icon-opensource:before{content:"\e677"}.el-icon-ok-sign:before{content:"\e678"}.el-icon-ok-circle:before{content:"\e679"}.el-icon-ok:before{content:"\e67a"}.el-icon-off:before{content:"\e67b"}.el-icon-network:before{content:"\e67c"}.el-icon-myspace:before{content:"\e67d"}.el-icon-music:before{content:"\e67e"}.el-icon-move:before{content:"\e67f"}.el-icon-minus-sign:before{content:"\e680"}.el-icon-minus:before{content:"\e681"}.el-icon-mic-alt:before{content:"\e682"}.el-icon-mic:before{content:"\e683"}.el-icon-map-marker-alt:before{content:"\e684"}.el-icon-map-marker:before{content:"\e685"}.el-icon-male:before{content:"\e686"}.el-icon-magnet:before{content:"\e687"}.el-icon-magic:before{content:"\e688"}.el-icon-lock-alt:before{content:"\e689"}.el-icon-lock:before{content:"\e68a"}.el-icon-livejournal:before{content:"\e68b"}.el-icon-list-alt:before{content:"\e68c"}.el-icon-list:before{content:"\e68d"}.el-icon-linkedin:before{content:"\e68e"}.el-icon-link:before{content:"\e68f"}.el-icon-lines:before{content:"\e690"}.el-icon-leaf:before{content:"\e691"}.el-icon-lastfm:before{content:"\e692"}.el-icon-laptop-alt:before{content:"\e693"}.el-icon-laptop:before{content:"\e694"}.el-icon-key:before{content:"\e695"}.el-icon-italic:before{content:"\e696"}.el-icon-iphone-home:before{content:"\e697"}.el-icon-instagram:before{content:"\e698"}.el-icon-info-sign:before{content:"\e699"}.el-icon-indent-right:before{content:"\e69a"}.el-icon-indent-left:before{content:"\e69b"}.el-icon-inbox-box:before{content:"\e69c"}.el-icon-inbox-alt:before{content:"\e69d"}.el-icon-inbox:before{content:"\e69e"}.el-icon-idea-alt:before{content:"\e69f"}.el-icon-idea:before{content:"\e6a0"}.el-icon-hourglass:before{content:"\e6a1"}.el-icon-home-alt:before{content:"\e6a2"}.el-icon-home:before{content:"\e6a3"}.el-icon-heart-empty:before{content:"\e6a4"}.el-icon-heart-alt:before{content:"\e6a5"}.el-icon-heart:before{content:"\e6a6"}.el-icon-hearing-impaired:before{content:"\e6a7"}.el-icon-headphones:before{content:"\e6a8"}.el-icon-hdd:before{content:"\e6a9"}.el-icon-hand-up:before{content:"\e6aa"}.el-icon-hand-right:before{content:"\e6ab"}.el-icon-hand-left:before{content:"\e6ac"}.el-icon-hand-down:before{content:"\e6ad"}.el-icon-guidedog:before{content:"\e6ae"}.el-icon-group-alt:before{content:"\e6af"}.el-icon-group:before{content:"\e6b0"}.el-icon-graph-alt:before{content:"\e6b1"}.el-icon-graph:before{content:"\e6b2"}.el-icon-googleplus:before{content:"\e6b3"}.el-icon-globe-alt:before{content:"\e6b4"}.el-icon-globe:before{content:"\e6b5"}.el-icon-glasses:before{content:"\e6b6"}.el-icon-glass:before{content:"\e6b7"}.el-icon-github-text:before{content:"\e6b8"}.el-icon-github:before{content:"\e6b9"}.el-icon-gift:before{content:"\e6ba"}.el-icon-gbp:before{content:"\e6bb"}.el-icon-fullscreen:before{content:"\e6bc"}.el-icon-friendfeed-rect:before{content:"\e6bd"}.el-icon-friendfeed:before{content:"\e6be"}.el-icon-foursquare:before{content:"\e6bf"}.el-icon-forward-alt:before{content:"\e6c0"}.el-icon-forward:before{content:"\e6c1"}.el-icon-fork:before{content:"\e6c2"}.el-icon-fontsize:before{content:"\e6c3"}.el-icon-font:before{content:"\e6c4"}.el-icon-folder-sign:before{content:"\e6c5"}.el-icon-folder-open:before{content:"\e6c6"}.el-icon-folder-close:before{content:"\e6c7"}.el-icon-folder:before{content:"\e6c8"}.el-icon-flickr:before{content:"\e6c9"}.el-icon-flag-alt:before{content:"\e6ca"}.el-icon-flag:before{content:"\e6cb"}.el-icon-fire:before{content:"\e6cc"}.el-icon-filter:before{content:"\e6cd"}.el-icon-film:before{content:"\e6ce"}.el-icon-file-new-alt:before{content:"\e6cf"}.el-icon-file-new:before{content:"\e6d0"}.el-icon-file-edit-alt:before{content:"\e6d1"}.el-icon-file-edit:before{content:"\e6d2"}.el-icon-file-alt:before{content:"\e6d3"}.el-icon-file:before{content:"\e6d4"}.el-icon-female:before{content:"\e6d5"}.el-icon-fast-forward:before{content:"\e6d6"}.el-icon-fast-backward:before{content:"\e6d7"}.el-icon-facetime-video:before{content:"\e6d8"}.el-icon-facebook:before{content:"\e6d9"}.el-icon-eye-open:before{content:"\e6da"}.el-icon-eye-close:before{content:"\e6db"}.el-icon-exclamation-sign:before{content:"\e6dc"}.el-icon-eur:before{content:"\e6dd"}.el-icon-error-alt:before{content:"\e6de"}.el-icon-error:before{content:"\e6df"}.el-icon-envelope-alt:before{content:"\e6e0"}.el-icon-envelope:before{content:"\e6e1"}.el-icon-eject:before{content:"\e6e2"}.el-icon-edit:before{content:"\e6e3"}.el-icon-dribbble:before{content:"\e6e4"}.el-icon-download-alt:before{content:"\e6e5"}.el-icon-download:before{content:"\e6e6"}.el-icon-digg:before{content:"\e6e7"}.el-icon-deviantart:before{content:"\e6e8"}.el-icon-delicious:before{content:"\e6e9"}.el-icon-dashboard:before{content:"\e6ea"}.el-icon-css:before{content:"\e6eb"}.el-icon-credit-card:before{content:"\e6ec"}.el-icon-compass-alt:before{content:"\e6ed"}.el-icon-compass:before{content:"\e6ee"}.el-icon-comment-alt:before{content:"\e6ef"}.el-icon-comment:before{content:"\e6f0"}.el-icon-cogs:before{content:"\e6f1"}.el-icon-cog-alt:before{content:"\e6f2"}.el-icon-cog:before{content:"\e6f3"}.el-icon-cloud-alt:before{content:"\e6f4"}.el-icon-cloud:before{content:"\e6f5"}.el-icon-circle-arrow-up:before{content:"\e6f6"}.el-icon-circle-arrow-right:before{content:"\e6f7"}.el-icon-circle-arrow-left:before{content:"\e6f8"}.el-icon-circle-arrow-down:before{content:"\e6f9"}.el-icon-child:before{content:"\e6fa"}.el-icon-chevron-up:before{content:"\e6fb"}.el-icon-chevron-right:before{content:"\e6fc"}.el-icon-chevron-left:before{content:"\e6fd"}.el-icon-chevron-down:before{content:"\e6fe"}.el-icon-check-empty:before{content:"\e6ff"}.el-icon-check:before{content:"\e700"}.el-icon-certificate:before{content:"\e701"}.el-icon-cc:before{content:"\e702"}.el-icon-caret-up:before{content:"\e703"}.el-icon-caret-right:before{content:"\e704"}.el-icon-caret-left:before{content:"\e705"}.el-icon-caret-down:before{content:"\e706"}.el-icon-car:before{content:"\e707"}.el-icon-camera:before{content:"\e708"}.el-icon-calendar-sign:before{content:"\e709"}.el-icon-calendar:before{content:"\e70a"}.el-icon-bullhorn:before{content:"\e70b"}.el-icon-bulb:before{content:"\e70c"}.el-icon-brush:before{content:"\e70d"}.el-icon-broom:before{content:"\e70e"}.el-icon-briefcase:before{content:"\e70f"}.el-icon-braille:before{content:"\e710"}.el-icon-bookmark-empty:before{content:"\e711"}.el-icon-bookmark:before{content:"\e712"}.el-icon-book:before{content:"\e713"}.el-icon-bold:before{content:"\e714"}.el-icon-blogger:before{content:"\e715"}.el-icon-blind:before{content:"\e716"}.el-icon-bell:before{content:"\e717"}.el-icon-behance:before{content:"\e718"}.el-icon-barcode:before{content:"\e719"}.el-icon-ban-circle:before{content:"\e71a"}.el-icon-backward:before{content:"\e71b"}.el-icon-asl:before{content:"\e71c"}.el-icon-arrow-up:before{content:"\e71d"}.el-icon-arrow-right:before{content:"\e71e"}.el-icon-arrow-left:before{content:"\e71f"}.el-icon-arrow-down:before{content:"\e720"}.el-icon-align-right:before{content:"\e721"}.el-icon-align-left:before{content:"\e722"}.el-icon-align-justify:before{content:"\e723"}.el-icon-align-center:before{content:"\e724"}.el-icon-adult:before{content:"\e725"}.el-icon-adjust-alt:before{content:"\e726"}.el-icon-adjust:before{content:"\e727"}.el-icon-address-book-alt:before{content:"\e728"}.el-icon-address-book:before{content:"\e729"}.el-icon-asterisk:before{content:"\e72a"}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.css
new file mode 100644
index 00000000..ef8c2b6a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.css
@@ -0,0 +1,2337 @@
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */
+/* FONT PATH
+ * -------------------------- */
+@font-face {
+ font-family: 'FontAwesome';
+ src: url('./fontawesome-webfont.eot?v=4.7.0');
+ src: url('./fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('./fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('./fontawesome-webfont.woff?v=4.7.0') format('woff'), url('./fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('./fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+.fa {
+ display: inline-block;
+ font: normal normal normal 14px/1 FontAwesome;
+ font-size: inherit;
+ text-rendering: auto;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+ font-size: 1.33333333em;
+ line-height: 0.75em;
+ vertical-align: -15%;
+}
+.fa-2x {
+ font-size: 2em;
+}
+.fa-3x {
+ font-size: 3em;
+}
+.fa-4x {
+ font-size: 4em;
+}
+.fa-5x {
+ font-size: 5em;
+}
+.fa-fw {
+ width: 1.28571429em;
+ text-align: center;
+}
+.fa-ul {
+ padding-left: 0;
+ margin-left: 2.14285714em;
+ list-style-type: none;
+}
+.fa-ul > li {
+ position: relative;
+}
+.fa-li {
+ position: absolute;
+ left: -2.14285714em;
+ width: 2.14285714em;
+ top: 0.14285714em;
+ text-align: center;
+}
+.fa-li.fa-lg {
+ left: -1.85714286em;
+}
+.fa-border {
+ padding: .2em .25em .15em;
+ border: solid 0.08em #eeeeee;
+ border-radius: .1em;
+}
+.fa-pull-left {
+ float: left;
+}
+.fa-pull-right {
+ float: right;
+}
+.fa.fa-pull-left {
+ margin-right: .3em;
+}
+.fa.fa-pull-right {
+ margin-left: .3em;
+}
+/* Deprecated as of 4.4.0 */
+.pull-right {
+ float: right;
+}
+.pull-left {
+ float: left;
+}
+.fa.pull-left {
+ margin-right: .3em;
+}
+.fa.pull-right {
+ margin-left: .3em;
+}
+.fa-spin {
+ -webkit-animation: fa-spin 2s infinite linear;
+ animation: fa-spin 2s infinite linear;
+}
+.fa-pulse {
+ -webkit-animation: fa-spin 1s infinite steps(8);
+ animation: fa-spin 1s infinite steps(8);
+}
+@-webkit-keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+@keyframes fa-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ 100% {
+ -webkit-transform: rotate(359deg);
+ transform: rotate(359deg);
+ }
+}
+.fa-rotate-90 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
+ -webkit-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ transform: rotate(90deg);
+}
+.fa-rotate-180 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+.fa-rotate-270 {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
+ -webkit-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ transform: rotate(270deg);
+}
+.fa-flip-horizontal {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
+ -webkit-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+.fa-flip-vertical {
+ -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
+ -webkit-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+:root .fa-rotate-90,
+:root .fa-rotate-180,
+:root .fa-rotate-270,
+:root .fa-flip-horizontal,
+:root .fa-flip-vertical {
+ filter: none;
+}
+.fa-stack {
+ position: relative;
+ display: inline-block;
+ width: 2em;
+ height: 2em;
+ line-height: 2em;
+ vertical-align: middle;
+}
+.fa-stack-1x,
+.fa-stack-2x {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ text-align: center;
+}
+.fa-stack-1x {
+ line-height: inherit;
+}
+.fa-stack-2x {
+ font-size: 2em;
+}
+.fa-inverse {
+ color: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.fa-glass:before {
+ content: "\f000";
+}
+.fa-music:before {
+ content: "\f001";
+}
+.fa-search:before {
+ content: "\f002";
+}
+.fa-envelope-o:before {
+ content: "\f003";
+}
+.fa-heart:before {
+ content: "\f004";
+}
+.fa-star:before {
+ content: "\f005";
+}
+.fa-star-o:before {
+ content: "\f006";
+}
+.fa-user:before {
+ content: "\f007";
+}
+.fa-film:before {
+ content: "\f008";
+}
+.fa-th-large:before {
+ content: "\f009";
+}
+.fa-th:before {
+ content: "\f00a";
+}
+.fa-th-list:before {
+ content: "\f00b";
+}
+.fa-check:before {
+ content: "\f00c";
+}
+.fa-remove:before,
+.fa-close:before,
+.fa-times:before {
+ content: "\f00d";
+}
+.fa-search-plus:before {
+ content: "\f00e";
+}
+.fa-search-minus:before {
+ content: "\f010";
+}
+.fa-power-off:before {
+ content: "\f011";
+}
+.fa-signal:before {
+ content: "\f012";
+}
+.fa-gear:before,
+.fa-cog:before {
+ content: "\f013";
+}
+.fa-trash-o:before {
+ content: "\f014";
+}
+.fa-home:before {
+ content: "\f015";
+}
+.fa-file-o:before {
+ content: "\f016";
+}
+.fa-clock-o:before {
+ content: "\f017";
+}
+.fa-road:before {
+ content: "\f018";
+}
+.fa-download:before {
+ content: "\f019";
+}
+.fa-arrow-circle-o-down:before {
+ content: "\f01a";
+}
+.fa-arrow-circle-o-up:before {
+ content: "\f01b";
+}
+.fa-inbox:before {
+ content: "\f01c";
+}
+.fa-play-circle-o:before {
+ content: "\f01d";
+}
+.fa-rotate-right:before,
+.fa-repeat:before {
+ content: "\f01e";
+}
+.fa-refresh:before {
+ content: "\f021";
+}
+.fa-list-alt:before {
+ content: "\f022";
+}
+.fa-lock:before {
+ content: "\f023";
+}
+.fa-flag:before {
+ content: "\f024";
+}
+.fa-headphones:before {
+ content: "\f025";
+}
+.fa-volume-off:before {
+ content: "\f026";
+}
+.fa-volume-down:before {
+ content: "\f027";
+}
+.fa-volume-up:before {
+ content: "\f028";
+}
+.fa-qrcode:before {
+ content: "\f029";
+}
+.fa-barcode:before {
+ content: "\f02a";
+}
+.fa-tag:before {
+ content: "\f02b";
+}
+.fa-tags:before {
+ content: "\f02c";
+}
+.fa-book:before {
+ content: "\f02d";
+}
+.fa-bookmark:before {
+ content: "\f02e";
+}
+.fa-print:before {
+ content: "\f02f";
+}
+.fa-camera:before {
+ content: "\f030";
+}
+.fa-font:before {
+ content: "\f031";
+}
+.fa-bold:before {
+ content: "\f032";
+}
+.fa-italic:before {
+ content: "\f033";
+}
+.fa-text-height:before {
+ content: "\f034";
+}
+.fa-text-width:before {
+ content: "\f035";
+}
+.fa-align-left:before {
+ content: "\f036";
+}
+.fa-align-center:before {
+ content: "\f037";
+}
+.fa-align-right:before {
+ content: "\f038";
+}
+.fa-align-justify:before {
+ content: "\f039";
+}
+.fa-list:before {
+ content: "\f03a";
+}
+.fa-dedent:before,
+.fa-outdent:before {
+ content: "\f03b";
+}
+.fa-indent:before {
+ content: "\f03c";
+}
+.fa-video-camera:before {
+ content: "\f03d";
+}
+.fa-photo:before,
+.fa-image:before,
+.fa-picture-o:before {
+ content: "\f03e";
+}
+.fa-pencil:before {
+ content: "\f040";
+}
+.fa-map-marker:before {
+ content: "\f041";
+}
+.fa-adjust:before {
+ content: "\f042";
+}
+.fa-tint:before {
+ content: "\f043";
+}
+.fa-edit:before,
+.fa-pencil-square-o:before {
+ content: "\f044";
+}
+.fa-share-square-o:before {
+ content: "\f045";
+}
+.fa-check-square-o:before {
+ content: "\f046";
+}
+.fa-arrows:before {
+ content: "\f047";
+}
+.fa-step-backward:before {
+ content: "\f048";
+}
+.fa-fast-backward:before {
+ content: "\f049";
+}
+.fa-backward:before {
+ content: "\f04a";
+}
+.fa-play:before {
+ content: "\f04b";
+}
+.fa-pause:before {
+ content: "\f04c";
+}
+.fa-stop:before {
+ content: "\f04d";
+}
+.fa-forward:before {
+ content: "\f04e";
+}
+.fa-fast-forward:before {
+ content: "\f050";
+}
+.fa-step-forward:before {
+ content: "\f051";
+}
+.fa-eject:before {
+ content: "\f052";
+}
+.fa-chevron-left:before {
+ content: "\f053";
+}
+.fa-chevron-right:before {
+ content: "\f054";
+}
+.fa-plus-circle:before {
+ content: "\f055";
+}
+.fa-minus-circle:before {
+ content: "\f056";
+}
+.fa-times-circle:before {
+ content: "\f057";
+}
+.fa-check-circle:before {
+ content: "\f058";
+}
+.fa-question-circle:before {
+ content: "\f059";
+}
+.fa-info-circle:before {
+ content: "\f05a";
+}
+.fa-crosshairs:before {
+ content: "\f05b";
+}
+.fa-times-circle-o:before {
+ content: "\f05c";
+}
+.fa-check-circle-o:before {
+ content: "\f05d";
+}
+.fa-ban:before {
+ content: "\f05e";
+}
+.fa-arrow-left:before {
+ content: "\f060";
+}
+.fa-arrow-right:before {
+ content: "\f061";
+}
+.fa-arrow-up:before {
+ content: "\f062";
+}
+.fa-arrow-down:before {
+ content: "\f063";
+}
+.fa-mail-forward:before,
+.fa-share:before {
+ content: "\f064";
+}
+.fa-expand:before {
+ content: "\f065";
+}
+.fa-compress:before {
+ content: "\f066";
+}
+.fa-plus:before {
+ content: "\f067";
+}
+.fa-minus:before {
+ content: "\f068";
+}
+.fa-asterisk:before {
+ content: "\f069";
+}
+.fa-exclamation-circle:before {
+ content: "\f06a";
+}
+.fa-gift:before {
+ content: "\f06b";
+}
+.fa-leaf:before {
+ content: "\f06c";
+}
+.fa-fire:before {
+ content: "\f06d";
+}
+.fa-eye:before {
+ content: "\f06e";
+}
+.fa-eye-slash:before {
+ content: "\f070";
+}
+.fa-warning:before,
+.fa-exclamation-triangle:before {
+ content: "\f071";
+}
+.fa-plane:before {
+ content: "\f072";
+}
+.fa-calendar:before {
+ content: "\f073";
+}
+.fa-random:before {
+ content: "\f074";
+}
+.fa-comment:before {
+ content: "\f075";
+}
+.fa-magnet:before {
+ content: "\f076";
+}
+.fa-chevron-up:before {
+ content: "\f077";
+}
+.fa-chevron-down:before {
+ content: "\f078";
+}
+.fa-retweet:before {
+ content: "\f079";
+}
+.fa-shopping-cart:before {
+ content: "\f07a";
+}
+.fa-folder:before {
+ content: "\f07b";
+}
+.fa-folder-open:before {
+ content: "\f07c";
+}
+.fa-arrows-v:before {
+ content: "\f07d";
+}
+.fa-arrows-h:before {
+ content: "\f07e";
+}
+.fa-bar-chart-o:before,
+.fa-bar-chart:before {
+ content: "\f080";
+}
+.fa-twitter-square:before {
+ content: "\f081";
+}
+.fa-facebook-square:before {
+ content: "\f082";
+}
+.fa-camera-retro:before {
+ content: "\f083";
+}
+.fa-key:before {
+ content: "\f084";
+}
+.fa-gears:before,
+.fa-cogs:before {
+ content: "\f085";
+}
+.fa-comments:before {
+ content: "\f086";
+}
+.fa-thumbs-o-up:before {
+ content: "\f087";
+}
+.fa-thumbs-o-down:before {
+ content: "\f088";
+}
+.fa-star-half:before {
+ content: "\f089";
+}
+.fa-heart-o:before {
+ content: "\f08a";
+}
+.fa-sign-out:before {
+ content: "\f08b";
+}
+.fa-linkedin-square:before {
+ content: "\f08c";
+}
+.fa-thumb-tack:before {
+ content: "\f08d";
+}
+.fa-external-link:before {
+ content: "\f08e";
+}
+.fa-sign-in:before {
+ content: "\f090";
+}
+.fa-trophy:before {
+ content: "\f091";
+}
+.fa-github-square:before {
+ content: "\f092";
+}
+.fa-upload:before {
+ content: "\f093";
+}
+.fa-lemon-o:before {
+ content: "\f094";
+}
+.fa-phone:before {
+ content: "\f095";
+}
+.fa-square-o:before {
+ content: "\f096";
+}
+.fa-bookmark-o:before {
+ content: "\f097";
+}
+.fa-phone-square:before {
+ content: "\f098";
+}
+.fa-twitter:before {
+ content: "\f099";
+}
+.fa-facebook-f:before,
+.fa-facebook:before {
+ content: "\f09a";
+}
+.fa-github:before {
+ content: "\f09b";
+}
+.fa-unlock:before {
+ content: "\f09c";
+}
+.fa-credit-card:before {
+ content: "\f09d";
+}
+.fa-feed:before,
+.fa-rss:before {
+ content: "\f09e";
+}
+.fa-hdd-o:before {
+ content: "\f0a0";
+}
+.fa-bullhorn:before {
+ content: "\f0a1";
+}
+.fa-bell:before {
+ content: "\f0f3";
+}
+.fa-certificate:before {
+ content: "\f0a3";
+}
+.fa-hand-o-right:before {
+ content: "\f0a4";
+}
+.fa-hand-o-left:before {
+ content: "\f0a5";
+}
+.fa-hand-o-up:before {
+ content: "\f0a6";
+}
+.fa-hand-o-down:before {
+ content: "\f0a7";
+}
+.fa-arrow-circle-left:before {
+ content: "\f0a8";
+}
+.fa-arrow-circle-right:before {
+ content: "\f0a9";
+}
+.fa-arrow-circle-up:before {
+ content: "\f0aa";
+}
+.fa-arrow-circle-down:before {
+ content: "\f0ab";
+}
+.fa-globe:before {
+ content: "\f0ac";
+}
+.fa-wrench:before {
+ content: "\f0ad";
+}
+.fa-tasks:before {
+ content: "\f0ae";
+}
+.fa-filter:before {
+ content: "\f0b0";
+}
+.fa-briefcase:before {
+ content: "\f0b1";
+}
+.fa-arrows-alt:before {
+ content: "\f0b2";
+}
+.fa-group:before,
+.fa-users:before {
+ content: "\f0c0";
+}
+.fa-chain:before,
+.fa-link:before {
+ content: "\f0c1";
+}
+.fa-cloud:before {
+ content: "\f0c2";
+}
+.fa-flask:before {
+ content: "\f0c3";
+}
+.fa-cut:before,
+.fa-scissors:before {
+ content: "\f0c4";
+}
+.fa-copy:before,
+.fa-files-o:before {
+ content: "\f0c5";
+}
+.fa-paperclip:before {
+ content: "\f0c6";
+}
+.fa-save:before,
+.fa-floppy-o:before {
+ content: "\f0c7";
+}
+.fa-square:before {
+ content: "\f0c8";
+}
+.fa-navicon:before,
+.fa-reorder:before,
+.fa-bars:before {
+ content: "\f0c9";
+}
+.fa-list-ul:before {
+ content: "\f0ca";
+}
+.fa-list-ol:before {
+ content: "\f0cb";
+}
+.fa-strikethrough:before {
+ content: "\f0cc";
+}
+.fa-underline:before {
+ content: "\f0cd";
+}
+.fa-table:before {
+ content: "\f0ce";
+}
+.fa-magic:before {
+ content: "\f0d0";
+}
+.fa-truck:before {
+ content: "\f0d1";
+}
+.fa-pinterest:before {
+ content: "\f0d2";
+}
+.fa-pinterest-square:before {
+ content: "\f0d3";
+}
+.fa-google-plus-square:before {
+ content: "\f0d4";
+}
+.fa-google-plus:before {
+ content: "\f0d5";
+}
+.fa-money:before {
+ content: "\f0d6";
+}
+.fa-caret-down:before {
+ content: "\f0d7";
+}
+.fa-caret-up:before {
+ content: "\f0d8";
+}
+.fa-caret-left:before {
+ content: "\f0d9";
+}
+.fa-caret-right:before {
+ content: "\f0da";
+}
+.fa-columns:before {
+ content: "\f0db";
+}
+.fa-unsorted:before,
+.fa-sort:before {
+ content: "\f0dc";
+}
+.fa-sort-down:before,
+.fa-sort-desc:before {
+ content: "\f0dd";
+}
+.fa-sort-up:before,
+.fa-sort-asc:before {
+ content: "\f0de";
+}
+.fa-envelope:before {
+ content: "\f0e0";
+}
+.fa-linkedin:before {
+ content: "\f0e1";
+}
+.fa-rotate-left:before,
+.fa-undo:before {
+ content: "\f0e2";
+}
+.fa-legal:before,
+.fa-gavel:before {
+ content: "\f0e3";
+}
+.fa-dashboard:before,
+.fa-tachometer:before {
+ content: "\f0e4";
+}
+.fa-comment-o:before {
+ content: "\f0e5";
+}
+.fa-comments-o:before {
+ content: "\f0e6";
+}
+.fa-flash:before,
+.fa-bolt:before {
+ content: "\f0e7";
+}
+.fa-sitemap:before {
+ content: "\f0e8";
+}
+.fa-umbrella:before {
+ content: "\f0e9";
+}
+.fa-paste:before,
+.fa-clipboard:before {
+ content: "\f0ea";
+}
+.fa-lightbulb-o:before {
+ content: "\f0eb";
+}
+.fa-exchange:before {
+ content: "\f0ec";
+}
+.fa-cloud-download:before {
+ content: "\f0ed";
+}
+.fa-cloud-upload:before {
+ content: "\f0ee";
+}
+.fa-user-md:before {
+ content: "\f0f0";
+}
+.fa-stethoscope:before {
+ content: "\f0f1";
+}
+.fa-suitcase:before {
+ content: "\f0f2";
+}
+.fa-bell-o:before {
+ content: "\f0a2";
+}
+.fa-coffee:before {
+ content: "\f0f4";
+}
+.fa-cutlery:before {
+ content: "\f0f5";
+}
+.fa-file-text-o:before {
+ content: "\f0f6";
+}
+.fa-building-o:before {
+ content: "\f0f7";
+}
+.fa-hospital-o:before {
+ content: "\f0f8";
+}
+.fa-ambulance:before {
+ content: "\f0f9";
+}
+.fa-medkit:before {
+ content: "\f0fa";
+}
+.fa-fighter-jet:before {
+ content: "\f0fb";
+}
+.fa-beer:before {
+ content: "\f0fc";
+}
+.fa-h-square:before {
+ content: "\f0fd";
+}
+.fa-plus-square:before {
+ content: "\f0fe";
+}
+.fa-angle-double-left:before {
+ content: "\f100";
+}
+.fa-angle-double-right:before {
+ content: "\f101";
+}
+.fa-angle-double-up:before {
+ content: "\f102";
+}
+.fa-angle-double-down:before {
+ content: "\f103";
+}
+.fa-angle-left:before {
+ content: "\f104";
+}
+.fa-angle-right:before {
+ content: "\f105";
+}
+.fa-angle-up:before {
+ content: "\f106";
+}
+.fa-angle-down:before {
+ content: "\f107";
+}
+.fa-desktop:before {
+ content: "\f108";
+}
+.fa-laptop:before {
+ content: "\f109";
+}
+.fa-tablet:before {
+ content: "\f10a";
+}
+.fa-mobile-phone:before,
+.fa-mobile:before {
+ content: "\f10b";
+}
+.fa-circle-o:before {
+ content: "\f10c";
+}
+.fa-quote-left:before {
+ content: "\f10d";
+}
+.fa-quote-right:before {
+ content: "\f10e";
+}
+.fa-spinner:before {
+ content: "\f110";
+}
+.fa-circle:before {
+ content: "\f111";
+}
+.fa-mail-reply:before,
+.fa-reply:before {
+ content: "\f112";
+}
+.fa-github-alt:before {
+ content: "\f113";
+}
+.fa-folder-o:before {
+ content: "\f114";
+}
+.fa-folder-open-o:before {
+ content: "\f115";
+}
+.fa-smile-o:before {
+ content: "\f118";
+}
+.fa-frown-o:before {
+ content: "\f119";
+}
+.fa-meh-o:before {
+ content: "\f11a";
+}
+.fa-gamepad:before {
+ content: "\f11b";
+}
+.fa-keyboard-o:before {
+ content: "\f11c";
+}
+.fa-flag-o:before {
+ content: "\f11d";
+}
+.fa-flag-checkered:before {
+ content: "\f11e";
+}
+.fa-terminal:before {
+ content: "\f120";
+}
+.fa-code:before {
+ content: "\f121";
+}
+.fa-mail-reply-all:before,
+.fa-reply-all:before {
+ content: "\f122";
+}
+.fa-star-half-empty:before,
+.fa-star-half-full:before,
+.fa-star-half-o:before {
+ content: "\f123";
+}
+.fa-location-arrow:before {
+ content: "\f124";
+}
+.fa-crop:before {
+ content: "\f125";
+}
+.fa-code-fork:before {
+ content: "\f126";
+}
+.fa-unlink:before,
+.fa-chain-broken:before {
+ content: "\f127";
+}
+.fa-question:before {
+ content: "\f128";
+}
+.fa-info:before {
+ content: "\f129";
+}
+.fa-exclamation:before {
+ content: "\f12a";
+}
+.fa-superscript:before {
+ content: "\f12b";
+}
+.fa-subscript:before {
+ content: "\f12c";
+}
+.fa-eraser:before {
+ content: "\f12d";
+}
+.fa-puzzle-piece:before {
+ content: "\f12e";
+}
+.fa-microphone:before {
+ content: "\f130";
+}
+.fa-microphone-slash:before {
+ content: "\f131";
+}
+.fa-shield:before {
+ content: "\f132";
+}
+.fa-calendar-o:before {
+ content: "\f133";
+}
+.fa-fire-extinguisher:before {
+ content: "\f134";
+}
+.fa-rocket:before {
+ content: "\f135";
+}
+.fa-maxcdn:before {
+ content: "\f136";
+}
+.fa-chevron-circle-left:before {
+ content: "\f137";
+}
+.fa-chevron-circle-right:before {
+ content: "\f138";
+}
+.fa-chevron-circle-up:before {
+ content: "\f139";
+}
+.fa-chevron-circle-down:before {
+ content: "\f13a";
+}
+.fa-html5:before {
+ content: "\f13b";
+}
+.fa-css3:before {
+ content: "\f13c";
+}
+.fa-anchor:before {
+ content: "\f13d";
+}
+.fa-unlock-alt:before {
+ content: "\f13e";
+}
+.fa-bullseye:before {
+ content: "\f140";
+}
+.fa-ellipsis-h:before {
+ content: "\f141";
+}
+.fa-ellipsis-v:before {
+ content: "\f142";
+}
+.fa-rss-square:before {
+ content: "\f143";
+}
+.fa-play-circle:before {
+ content: "\f144";
+}
+.fa-ticket:before {
+ content: "\f145";
+}
+.fa-minus-square:before {
+ content: "\f146";
+}
+.fa-minus-square-o:before {
+ content: "\f147";
+}
+.fa-level-up:before {
+ content: "\f148";
+}
+.fa-level-down:before {
+ content: "\f149";
+}
+.fa-check-square:before {
+ content: "\f14a";
+}
+.fa-pencil-square:before {
+ content: "\f14b";
+}
+.fa-external-link-square:before {
+ content: "\f14c";
+}
+.fa-share-square:before {
+ content: "\f14d";
+}
+.fa-compass:before {
+ content: "\f14e";
+}
+.fa-toggle-down:before,
+.fa-caret-square-o-down:before {
+ content: "\f150";
+}
+.fa-toggle-up:before,
+.fa-caret-square-o-up:before {
+ content: "\f151";
+}
+.fa-toggle-right:before,
+.fa-caret-square-o-right:before {
+ content: "\f152";
+}
+.fa-euro:before,
+.fa-eur:before {
+ content: "\f153";
+}
+.fa-gbp:before {
+ content: "\f154";
+}
+.fa-dollar:before,
+.fa-usd:before {
+ content: "\f155";
+}
+.fa-rupee:before,
+.fa-inr:before {
+ content: "\f156";
+}
+.fa-cny:before,
+.fa-rmb:before,
+.fa-yen:before,
+.fa-jpy:before {
+ content: "\f157";
+}
+.fa-ruble:before,
+.fa-rouble:before,
+.fa-rub:before {
+ content: "\f158";
+}
+.fa-won:before,
+.fa-krw:before {
+ content: "\f159";
+}
+.fa-bitcoin:before,
+.fa-btc:before {
+ content: "\f15a";
+}
+.fa-file:before {
+ content: "\f15b";
+}
+.fa-file-text:before {
+ content: "\f15c";
+}
+.fa-sort-alpha-asc:before {
+ content: "\f15d";
+}
+.fa-sort-alpha-desc:before {
+ content: "\f15e";
+}
+.fa-sort-amount-asc:before {
+ content: "\f160";
+}
+.fa-sort-amount-desc:before {
+ content: "\f161";
+}
+.fa-sort-numeric-asc:before {
+ content: "\f162";
+}
+.fa-sort-numeric-desc:before {
+ content: "\f163";
+}
+.fa-thumbs-up:before {
+ content: "\f164";
+}
+.fa-thumbs-down:before {
+ content: "\f165";
+}
+.fa-youtube-square:before {
+ content: "\f166";
+}
+.fa-youtube:before {
+ content: "\f167";
+}
+.fa-xing:before {
+ content: "\f168";
+}
+.fa-xing-square:before {
+ content: "\f169";
+}
+.fa-youtube-play:before {
+ content: "\f16a";
+}
+.fa-dropbox:before {
+ content: "\f16b";
+}
+.fa-stack-overflow:before {
+ content: "\f16c";
+}
+.fa-instagram:before {
+ content: "\f16d";
+}
+.fa-flickr:before {
+ content: "\f16e";
+}
+.fa-adn:before {
+ content: "\f170";
+}
+.fa-bitbucket:before {
+ content: "\f171";
+}
+.fa-bitbucket-square:before {
+ content: "\f172";
+}
+.fa-tumblr:before {
+ content: "\f173";
+}
+.fa-tumblr-square:before {
+ content: "\f174";
+}
+.fa-long-arrow-down:before {
+ content: "\f175";
+}
+.fa-long-arrow-up:before {
+ content: "\f176";
+}
+.fa-long-arrow-left:before {
+ content: "\f177";
+}
+.fa-long-arrow-right:before {
+ content: "\f178";
+}
+.fa-apple:before {
+ content: "\f179";
+}
+.fa-windows:before {
+ content: "\f17a";
+}
+.fa-android:before {
+ content: "\f17b";
+}
+.fa-linux:before {
+ content: "\f17c";
+}
+.fa-dribbble:before {
+ content: "\f17d";
+}
+.fa-skype:before {
+ content: "\f17e";
+}
+.fa-foursquare:before {
+ content: "\f180";
+}
+.fa-trello:before {
+ content: "\f181";
+}
+.fa-female:before {
+ content: "\f182";
+}
+.fa-male:before {
+ content: "\f183";
+}
+.fa-gittip:before,
+.fa-gratipay:before {
+ content: "\f184";
+}
+.fa-sun-o:before {
+ content: "\f185";
+}
+.fa-moon-o:before {
+ content: "\f186";
+}
+.fa-archive:before {
+ content: "\f187";
+}
+.fa-bug:before {
+ content: "\f188";
+}
+.fa-vk:before {
+ content: "\f189";
+}
+.fa-weibo:before {
+ content: "\f18a";
+}
+.fa-renren:before {
+ content: "\f18b";
+}
+.fa-pagelines:before {
+ content: "\f18c";
+}
+.fa-stack-exchange:before {
+ content: "\f18d";
+}
+.fa-arrow-circle-o-right:before {
+ content: "\f18e";
+}
+.fa-arrow-circle-o-left:before {
+ content: "\f190";
+}
+.fa-toggle-left:before,
+.fa-caret-square-o-left:before {
+ content: "\f191";
+}
+.fa-dot-circle-o:before {
+ content: "\f192";
+}
+.fa-wheelchair:before {
+ content: "\f193";
+}
+.fa-vimeo-square:before {
+ content: "\f194";
+}
+.fa-turkish-lira:before,
+.fa-try:before {
+ content: "\f195";
+}
+.fa-plus-square-o:before {
+ content: "\f196";
+}
+.fa-space-shuttle:before {
+ content: "\f197";
+}
+.fa-slack:before {
+ content: "\f198";
+}
+.fa-envelope-square:before {
+ content: "\f199";
+}
+.fa-wordpress:before {
+ content: "\f19a";
+}
+.fa-openid:before {
+ content: "\f19b";
+}
+.fa-institution:before,
+.fa-bank:before,
+.fa-university:before {
+ content: "\f19c";
+}
+.fa-mortar-board:before,
+.fa-graduation-cap:before {
+ content: "\f19d";
+}
+.fa-yahoo:before {
+ content: "\f19e";
+}
+.fa-google:before {
+ content: "\f1a0";
+}
+.fa-reddit:before {
+ content: "\f1a1";
+}
+.fa-reddit-square:before {
+ content: "\f1a2";
+}
+.fa-stumbleupon-circle:before {
+ content: "\f1a3";
+}
+.fa-stumbleupon:before {
+ content: "\f1a4";
+}
+.fa-delicious:before {
+ content: "\f1a5";
+}
+.fa-digg:before {
+ content: "\f1a6";
+}
+.fa-pied-piper-pp:before {
+ content: "\f1a7";
+}
+.fa-pied-piper-alt:before {
+ content: "\f1a8";
+}
+.fa-drupal:before {
+ content: "\f1a9";
+}
+.fa-joomla:before {
+ content: "\f1aa";
+}
+.fa-language:before {
+ content: "\f1ab";
+}
+.fa-fax:before {
+ content: "\f1ac";
+}
+.fa-building:before {
+ content: "\f1ad";
+}
+.fa-child:before {
+ content: "\f1ae";
+}
+.fa-paw:before {
+ content: "\f1b0";
+}
+.fa-spoon:before {
+ content: "\f1b1";
+}
+.fa-cube:before {
+ content: "\f1b2";
+}
+.fa-cubes:before {
+ content: "\f1b3";
+}
+.fa-behance:before {
+ content: "\f1b4";
+}
+.fa-behance-square:before {
+ content: "\f1b5";
+}
+.fa-steam:before {
+ content: "\f1b6";
+}
+.fa-steam-square:before {
+ content: "\f1b7";
+}
+.fa-recycle:before {
+ content: "\f1b8";
+}
+.fa-automobile:before,
+.fa-car:before {
+ content: "\f1b9";
+}
+.fa-cab:before,
+.fa-taxi:before {
+ content: "\f1ba";
+}
+.fa-tree:before {
+ content: "\f1bb";
+}
+.fa-spotify:before {
+ content: "\f1bc";
+}
+.fa-deviantart:before {
+ content: "\f1bd";
+}
+.fa-soundcloud:before {
+ content: "\f1be";
+}
+.fa-database:before {
+ content: "\f1c0";
+}
+.fa-file-pdf-o:before {
+ content: "\f1c1";
+}
+.fa-file-word-o:before {
+ content: "\f1c2";
+}
+.fa-file-excel-o:before {
+ content: "\f1c3";
+}
+.fa-file-powerpoint-o:before {
+ content: "\f1c4";
+}
+.fa-file-photo-o:before,
+.fa-file-picture-o:before,
+.fa-file-image-o:before {
+ content: "\f1c5";
+}
+.fa-file-zip-o:before,
+.fa-file-archive-o:before {
+ content: "\f1c6";
+}
+.fa-file-sound-o:before,
+.fa-file-audio-o:before {
+ content: "\f1c7";
+}
+.fa-file-movie-o:before,
+.fa-file-video-o:before {
+ content: "\f1c8";
+}
+.fa-file-code-o:before {
+ content: "\f1c9";
+}
+.fa-vine:before {
+ content: "\f1ca";
+}
+.fa-codepen:before {
+ content: "\f1cb";
+}
+.fa-jsfiddle:before {
+ content: "\f1cc";
+}
+.fa-life-bouy:before,
+.fa-life-buoy:before,
+.fa-life-saver:before,
+.fa-support:before,
+.fa-life-ring:before {
+ content: "\f1cd";
+}
+.fa-circle-o-notch:before {
+ content: "\f1ce";
+}
+.fa-ra:before,
+.fa-resistance:before,
+.fa-rebel:before {
+ content: "\f1d0";
+}
+.fa-ge:before,
+.fa-empire:before {
+ content: "\f1d1";
+}
+.fa-git-square:before {
+ content: "\f1d2";
+}
+.fa-git:before {
+ content: "\f1d3";
+}
+.fa-y-combinator-square:before,
+.fa-yc-square:before,
+.fa-hacker-news:before {
+ content: "\f1d4";
+}
+.fa-tencent-weibo:before {
+ content: "\f1d5";
+}
+.fa-qq:before {
+ content: "\f1d6";
+}
+.fa-wechat:before,
+.fa-weixin:before {
+ content: "\f1d7";
+}
+.fa-send:before,
+.fa-paper-plane:before {
+ content: "\f1d8";
+}
+.fa-send-o:before,
+.fa-paper-plane-o:before {
+ content: "\f1d9";
+}
+.fa-history:before {
+ content: "\f1da";
+}
+.fa-circle-thin:before {
+ content: "\f1db";
+}
+.fa-header:before {
+ content: "\f1dc";
+}
+.fa-paragraph:before {
+ content: "\f1dd";
+}
+.fa-sliders:before {
+ content: "\f1de";
+}
+.fa-share-alt:before {
+ content: "\f1e0";
+}
+.fa-share-alt-square:before {
+ content: "\f1e1";
+}
+.fa-bomb:before {
+ content: "\f1e2";
+}
+.fa-soccer-ball-o:before,
+.fa-futbol-o:before {
+ content: "\f1e3";
+}
+.fa-tty:before {
+ content: "\f1e4";
+}
+.fa-binoculars:before {
+ content: "\f1e5";
+}
+.fa-plug:before {
+ content: "\f1e6";
+}
+.fa-slideshare:before {
+ content: "\f1e7";
+}
+.fa-twitch:before {
+ content: "\f1e8";
+}
+.fa-yelp:before {
+ content: "\f1e9";
+}
+.fa-newspaper-o:before {
+ content: "\f1ea";
+}
+.fa-wifi:before {
+ content: "\f1eb";
+}
+.fa-calculator:before {
+ content: "\f1ec";
+}
+.fa-paypal:before {
+ content: "\f1ed";
+}
+.fa-google-wallet:before {
+ content: "\f1ee";
+}
+.fa-cc-visa:before {
+ content: "\f1f0";
+}
+.fa-cc-mastercard:before {
+ content: "\f1f1";
+}
+.fa-cc-discover:before {
+ content: "\f1f2";
+}
+.fa-cc-amex:before {
+ content: "\f1f3";
+}
+.fa-cc-paypal:before {
+ content: "\f1f4";
+}
+.fa-cc-stripe:before {
+ content: "\f1f5";
+}
+.fa-bell-slash:before {
+ content: "\f1f6";
+}
+.fa-bell-slash-o:before {
+ content: "\f1f7";
+}
+.fa-trash:before {
+ content: "\f1f8";
+}
+.fa-copyright:before {
+ content: "\f1f9";
+}
+.fa-at:before {
+ content: "\f1fa";
+}
+.fa-eyedropper:before {
+ content: "\f1fb";
+}
+.fa-paint-brush:before {
+ content: "\f1fc";
+}
+.fa-birthday-cake:before {
+ content: "\f1fd";
+}
+.fa-area-chart:before {
+ content: "\f1fe";
+}
+.fa-pie-chart:before {
+ content: "\f200";
+}
+.fa-line-chart:before {
+ content: "\f201";
+}
+.fa-lastfm:before {
+ content: "\f202";
+}
+.fa-lastfm-square:before {
+ content: "\f203";
+}
+.fa-toggle-off:before {
+ content: "\f204";
+}
+.fa-toggle-on:before {
+ content: "\f205";
+}
+.fa-bicycle:before {
+ content: "\f206";
+}
+.fa-bus:before {
+ content: "\f207";
+}
+.fa-ioxhost:before {
+ content: "\f208";
+}
+.fa-angellist:before {
+ content: "\f209";
+}
+.fa-cc:before {
+ content: "\f20a";
+}
+.fa-shekel:before,
+.fa-sheqel:before,
+.fa-ils:before {
+ content: "\f20b";
+}
+.fa-meanpath:before {
+ content: "\f20c";
+}
+.fa-buysellads:before {
+ content: "\f20d";
+}
+.fa-connectdevelop:before {
+ content: "\f20e";
+}
+.fa-dashcube:before {
+ content: "\f210";
+}
+.fa-forumbee:before {
+ content: "\f211";
+}
+.fa-leanpub:before {
+ content: "\f212";
+}
+.fa-sellsy:before {
+ content: "\f213";
+}
+.fa-shirtsinbulk:before {
+ content: "\f214";
+}
+.fa-simplybuilt:before {
+ content: "\f215";
+}
+.fa-skyatlas:before {
+ content: "\f216";
+}
+.fa-cart-plus:before {
+ content: "\f217";
+}
+.fa-cart-arrow-down:before {
+ content: "\f218";
+}
+.fa-diamond:before {
+ content: "\f219";
+}
+.fa-ship:before {
+ content: "\f21a";
+}
+.fa-user-secret:before {
+ content: "\f21b";
+}
+.fa-motorcycle:before {
+ content: "\f21c";
+}
+.fa-street-view:before {
+ content: "\f21d";
+}
+.fa-heartbeat:before {
+ content: "\f21e";
+}
+.fa-venus:before {
+ content: "\f221";
+}
+.fa-mars:before {
+ content: "\f222";
+}
+.fa-mercury:before {
+ content: "\f223";
+}
+.fa-intersex:before,
+.fa-transgender:before {
+ content: "\f224";
+}
+.fa-transgender-alt:before {
+ content: "\f225";
+}
+.fa-venus-double:before {
+ content: "\f226";
+}
+.fa-mars-double:before {
+ content: "\f227";
+}
+.fa-venus-mars:before {
+ content: "\f228";
+}
+.fa-mars-stroke:before {
+ content: "\f229";
+}
+.fa-mars-stroke-v:before {
+ content: "\f22a";
+}
+.fa-mars-stroke-h:before {
+ content: "\f22b";
+}
+.fa-neuter:before {
+ content: "\f22c";
+}
+.fa-genderless:before {
+ content: "\f22d";
+}
+.fa-facebook-official:before {
+ content: "\f230";
+}
+.fa-pinterest-p:before {
+ content: "\f231";
+}
+.fa-whatsapp:before {
+ content: "\f232";
+}
+.fa-server:before {
+ content: "\f233";
+}
+.fa-user-plus:before {
+ content: "\f234";
+}
+.fa-user-times:before {
+ content: "\f235";
+}
+.fa-hotel:before,
+.fa-bed:before {
+ content: "\f236";
+}
+.fa-viacoin:before {
+ content: "\f237";
+}
+.fa-train:before {
+ content: "\f238";
+}
+.fa-subway:before {
+ content: "\f239";
+}
+.fa-medium:before {
+ content: "\f23a";
+}
+.fa-yc:before,
+.fa-y-combinator:before {
+ content: "\f23b";
+}
+.fa-optin-monster:before {
+ content: "\f23c";
+}
+.fa-opencart:before {
+ content: "\f23d";
+}
+.fa-expeditedssl:before {
+ content: "\f23e";
+}
+.fa-battery-4:before,
+.fa-battery:before,
+.fa-battery-full:before {
+ content: "\f240";
+}
+.fa-battery-3:before,
+.fa-battery-three-quarters:before {
+ content: "\f241";
+}
+.fa-battery-2:before,
+.fa-battery-half:before {
+ content: "\f242";
+}
+.fa-battery-1:before,
+.fa-battery-quarter:before {
+ content: "\f243";
+}
+.fa-battery-0:before,
+.fa-battery-empty:before {
+ content: "\f244";
+}
+.fa-mouse-pointer:before {
+ content: "\f245";
+}
+.fa-i-cursor:before {
+ content: "\f246";
+}
+.fa-object-group:before {
+ content: "\f247";
+}
+.fa-object-ungroup:before {
+ content: "\f248";
+}
+.fa-sticky-note:before {
+ content: "\f249";
+}
+.fa-sticky-note-o:before {
+ content: "\f24a";
+}
+.fa-cc-jcb:before {
+ content: "\f24b";
+}
+.fa-cc-diners-club:before {
+ content: "\f24c";
+}
+.fa-clone:before {
+ content: "\f24d";
+}
+.fa-balance-scale:before {
+ content: "\f24e";
+}
+.fa-hourglass-o:before {
+ content: "\f250";
+}
+.fa-hourglass-1:before,
+.fa-hourglass-start:before {
+ content: "\f251";
+}
+.fa-hourglass-2:before,
+.fa-hourglass-half:before {
+ content: "\f252";
+}
+.fa-hourglass-3:before,
+.fa-hourglass-end:before {
+ content: "\f253";
+}
+.fa-hourglass:before {
+ content: "\f254";
+}
+.fa-hand-grab-o:before,
+.fa-hand-rock-o:before {
+ content: "\f255";
+}
+.fa-hand-stop-o:before,
+.fa-hand-paper-o:before {
+ content: "\f256";
+}
+.fa-hand-scissors-o:before {
+ content: "\f257";
+}
+.fa-hand-lizard-o:before {
+ content: "\f258";
+}
+.fa-hand-spock-o:before {
+ content: "\f259";
+}
+.fa-hand-pointer-o:before {
+ content: "\f25a";
+}
+.fa-hand-peace-o:before {
+ content: "\f25b";
+}
+.fa-trademark:before {
+ content: "\f25c";
+}
+.fa-registered:before {
+ content: "\f25d";
+}
+.fa-creative-commons:before {
+ content: "\f25e";
+}
+.fa-gg:before {
+ content: "\f260";
+}
+.fa-gg-circle:before {
+ content: "\f261";
+}
+.fa-tripadvisor:before {
+ content: "\f262";
+}
+.fa-odnoklassniki:before {
+ content: "\f263";
+}
+.fa-odnoklassniki-square:before {
+ content: "\f264";
+}
+.fa-get-pocket:before {
+ content: "\f265";
+}
+.fa-wikipedia-w:before {
+ content: "\f266";
+}
+.fa-safari:before {
+ content: "\f267";
+}
+.fa-chrome:before {
+ content: "\f268";
+}
+.fa-firefox:before {
+ content: "\f269";
+}
+.fa-opera:before {
+ content: "\f26a";
+}
+.fa-internet-explorer:before {
+ content: "\f26b";
+}
+.fa-tv:before,
+.fa-television:before {
+ content: "\f26c";
+}
+.fa-contao:before {
+ content: "\f26d";
+}
+.fa-500px:before {
+ content: "\f26e";
+}
+.fa-amazon:before {
+ content: "\f270";
+}
+.fa-calendar-plus-o:before {
+ content: "\f271";
+}
+.fa-calendar-minus-o:before {
+ content: "\f272";
+}
+.fa-calendar-times-o:before {
+ content: "\f273";
+}
+.fa-calendar-check-o:before {
+ content: "\f274";
+}
+.fa-industry:before {
+ content: "\f275";
+}
+.fa-map-pin:before {
+ content: "\f276";
+}
+.fa-map-signs:before {
+ content: "\f277";
+}
+.fa-map-o:before {
+ content: "\f278";
+}
+.fa-map:before {
+ content: "\f279";
+}
+.fa-commenting:before {
+ content: "\f27a";
+}
+.fa-commenting-o:before {
+ content: "\f27b";
+}
+.fa-houzz:before {
+ content: "\f27c";
+}
+.fa-vimeo:before {
+ content: "\f27d";
+}
+.fa-black-tie:before {
+ content: "\f27e";
+}
+.fa-fonticons:before {
+ content: "\f280";
+}
+.fa-reddit-alien:before {
+ content: "\f281";
+}
+.fa-edge:before {
+ content: "\f282";
+}
+.fa-credit-card-alt:before {
+ content: "\f283";
+}
+.fa-codiepie:before {
+ content: "\f284";
+}
+.fa-modx:before {
+ content: "\f285";
+}
+.fa-fort-awesome:before {
+ content: "\f286";
+}
+.fa-usb:before {
+ content: "\f287";
+}
+.fa-product-hunt:before {
+ content: "\f288";
+}
+.fa-mixcloud:before {
+ content: "\f289";
+}
+.fa-scribd:before {
+ content: "\f28a";
+}
+.fa-pause-circle:before {
+ content: "\f28b";
+}
+.fa-pause-circle-o:before {
+ content: "\f28c";
+}
+.fa-stop-circle:before {
+ content: "\f28d";
+}
+.fa-stop-circle-o:before {
+ content: "\f28e";
+}
+.fa-shopping-bag:before {
+ content: "\f290";
+}
+.fa-shopping-basket:before {
+ content: "\f291";
+}
+.fa-hashtag:before {
+ content: "\f292";
+}
+.fa-bluetooth:before {
+ content: "\f293";
+}
+.fa-bluetooth-b:before {
+ content: "\f294";
+}
+.fa-percent:before {
+ content: "\f295";
+}
+.fa-gitlab:before {
+ content: "\f296";
+}
+.fa-wpbeginner:before {
+ content: "\f297";
+}
+.fa-wpforms:before {
+ content: "\f298";
+}
+.fa-envira:before {
+ content: "\f299";
+}
+.fa-universal-access:before {
+ content: "\f29a";
+}
+.fa-wheelchair-alt:before {
+ content: "\f29b";
+}
+.fa-question-circle-o:before {
+ content: "\f29c";
+}
+.fa-blind:before {
+ content: "\f29d";
+}
+.fa-audio-description:before {
+ content: "\f29e";
+}
+.fa-volume-control-phone:before {
+ content: "\f2a0";
+}
+.fa-braille:before {
+ content: "\f2a1";
+}
+.fa-assistive-listening-systems:before {
+ content: "\f2a2";
+}
+.fa-asl-interpreting:before,
+.fa-american-sign-language-interpreting:before {
+ content: "\f2a3";
+}
+.fa-deafness:before,
+.fa-hard-of-hearing:before,
+.fa-deaf:before {
+ content: "\f2a4";
+}
+.fa-glide:before {
+ content: "\f2a5";
+}
+.fa-glide-g:before {
+ content: "\f2a6";
+}
+.fa-signing:before,
+.fa-sign-language:before {
+ content: "\f2a7";
+}
+.fa-low-vision:before {
+ content: "\f2a8";
+}
+.fa-viadeo:before {
+ content: "\f2a9";
+}
+.fa-viadeo-square:before {
+ content: "\f2aa";
+}
+.fa-snapchat:before {
+ content: "\f2ab";
+}
+.fa-snapchat-ghost:before {
+ content: "\f2ac";
+}
+.fa-snapchat-square:before {
+ content: "\f2ad";
+}
+.fa-pied-piper:before {
+ content: "\f2ae";
+}
+.fa-first-order:before {
+ content: "\f2b0";
+}
+.fa-yoast:before {
+ content: "\f2b1";
+}
+.fa-themeisle:before {
+ content: "\f2b2";
+}
+.fa-google-plus-circle:before,
+.fa-google-plus-official:before {
+ content: "\f2b3";
+}
+.fa-fa:before,
+.fa-font-awesome:before {
+ content: "\f2b4";
+}
+.fa-handshake-o:before {
+ content: "\f2b5";
+}
+.fa-envelope-open:before {
+ content: "\f2b6";
+}
+.fa-envelope-open-o:before {
+ content: "\f2b7";
+}
+.fa-linode:before {
+ content: "\f2b8";
+}
+.fa-address-book:before {
+ content: "\f2b9";
+}
+.fa-address-book-o:before {
+ content: "\f2ba";
+}
+.fa-vcard:before,
+.fa-address-card:before {
+ content: "\f2bb";
+}
+.fa-vcard-o:before,
+.fa-address-card-o:before {
+ content: "\f2bc";
+}
+.fa-user-circle:before {
+ content: "\f2bd";
+}
+.fa-user-circle-o:before {
+ content: "\f2be";
+}
+.fa-user-o:before {
+ content: "\f2c0";
+}
+.fa-id-badge:before {
+ content: "\f2c1";
+}
+.fa-drivers-license:before,
+.fa-id-card:before {
+ content: "\f2c2";
+}
+.fa-drivers-license-o:before,
+.fa-id-card-o:before {
+ content: "\f2c3";
+}
+.fa-quora:before {
+ content: "\f2c4";
+}
+.fa-free-code-camp:before {
+ content: "\f2c5";
+}
+.fa-telegram:before {
+ content: "\f2c6";
+}
+.fa-thermometer-4:before,
+.fa-thermometer:before,
+.fa-thermometer-full:before {
+ content: "\f2c7";
+}
+.fa-thermometer-3:before,
+.fa-thermometer-three-quarters:before {
+ content: "\f2c8";
+}
+.fa-thermometer-2:before,
+.fa-thermometer-half:before {
+ content: "\f2c9";
+}
+.fa-thermometer-1:before,
+.fa-thermometer-quarter:before {
+ content: "\f2ca";
+}
+.fa-thermometer-0:before,
+.fa-thermometer-empty:before {
+ content: "\f2cb";
+}
+.fa-shower:before {
+ content: "\f2cc";
+}
+.fa-bathtub:before,
+.fa-s15:before,
+.fa-bath:before {
+ content: "\f2cd";
+}
+.fa-podcast:before {
+ content: "\f2ce";
+}
+.fa-window-maximize:before {
+ content: "\f2d0";
+}
+.fa-window-minimize:before {
+ content: "\f2d1";
+}
+.fa-window-restore:before {
+ content: "\f2d2";
+}
+.fa-times-rectangle:before,
+.fa-window-close:before {
+ content: "\f2d3";
+}
+.fa-times-rectangle-o:before,
+.fa-window-close-o:before {
+ content: "\f2d4";
+}
+.fa-bandcamp:before {
+ content: "\f2d5";
+}
+.fa-grav:before {
+ content: "\f2d6";
+}
+.fa-etsy:before {
+ content: "\f2d7";
+}
+.fa-imdb:before {
+ content: "\f2d8";
+}
+.fa-ravelry:before {
+ content: "\f2d9";
+}
+.fa-eercast:before {
+ content: "\f2da";
+}
+.fa-microchip:before {
+ content: "\f2db";
+}
+.fa-snowflake-o:before {
+ content: "\f2dc";
+}
+.fa-superpowers:before {
+ content: "\f2dd";
+}
+.fa-wpexplorer:before {
+ content: "\f2de";
+}
+.fa-meetup:before {
+ content: "\f2e0";
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.min.css
new file mode 100644
index 00000000..346e8dcd
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */.fa.fa-pull-left,.fa.pull-left{margin-right:.3em}.fa,.fa-stack{display:inline-block}.fa-fw,.fa-li{text-align:center}@font-face{font-family:FontAwesome;src:url(./fontawesome-webfont.eot?v=4.7.0);src:url(./fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(./fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(./fontawesome-webfont.woff?v=4.7.0) format('woff'),url(./fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(./fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa.fa-pull-right,.fa.pull-right{margin-left:.3em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right,.pull-right{float:right}.pull-left{float:left}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-address-card:before,.fa-vcard:before{content:"\f2bb"}.fa-address-card-o:before,.fa-vcard-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.eot b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.eot
new file mode 100644
index 00000000..e9f60ca9
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.eot differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.svg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.svg
new file mode 100644
index 00000000..855c845e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.ttf b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.ttf
new file mode 100644
index 00000000..35acda2f
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.ttf differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff
new file mode 100644
index 00000000..400014a4
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff2 b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff2
new file mode 100644
index 00000000..4d13fc60
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/fontawesome-webfont.woff2 differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.css
new file mode 100644
index 00000000..032648e6
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.css
@@ -0,0 +1,594 @@
+/*
+ * Foundation Icons v 3.0
+ * Made by ZURB 2013 http://zurb.com/playground/foundation-icon-fonts-3
+ * MIT License
+ */
+
+@font-face {
+ font-family: "foundation-icons";
+ src: url("./foundation-icons.eot");
+ src: url("./foundation-icons.eot?#iefix") format("embedded-opentype"),
+ url("./foundation-icons.woff") format("woff"),
+ url("./foundation-icons.ttf") format("truetype"),
+ url("./foundation-icons.svg#fontcustom") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+.fi-address-book:before,
+.fi-alert:before,
+.fi-align-center:before,
+.fi-align-justify:before,
+.fi-align-left:before,
+.fi-align-right:before,
+.fi-anchor:before,
+.fi-annotate:before,
+.fi-archive:before,
+.fi-arrow-down:before,
+.fi-arrow-left:before,
+.fi-arrow-right:before,
+.fi-arrow-up:before,
+.fi-arrows-compress:before,
+.fi-arrows-expand:before,
+.fi-arrows-in:before,
+.fi-arrows-out:before,
+.fi-asl:before,
+.fi-asterisk:before,
+.fi-at-sign:before,
+.fi-background-color:before,
+.fi-battery-empty:before,
+.fi-battery-full:before,
+.fi-battery-half:before,
+.fi-bitcoin-circle:before,
+.fi-bitcoin:before,
+.fi-blind:before,
+.fi-bluetooth:before,
+.fi-bold:before,
+.fi-book-bookmark:before,
+.fi-book:before,
+.fi-bookmark:before,
+.fi-braille:before,
+.fi-burst-new:before,
+.fi-burst-sale:before,
+.fi-burst:before,
+.fi-calendar:before,
+.fi-camera:before,
+.fi-check:before,
+.fi-checkbox:before,
+.fi-clipboard-notes:before,
+.fi-clipboard-pencil:before,
+.fi-clipboard:before,
+.fi-clock:before,
+.fi-closed-caption:before,
+.fi-cloud:before,
+.fi-comment-minus:before,
+.fi-comment-quotes:before,
+.fi-comment-video:before,
+.fi-comment:before,
+.fi-comments:before,
+.fi-compass:before,
+.fi-contrast:before,
+.fi-credit-card:before,
+.fi-crop:before,
+.fi-crown:before,
+.fi-css3:before,
+.fi-database:before,
+.fi-die-five:before,
+.fi-die-four:before,
+.fi-die-one:before,
+.fi-die-six:before,
+.fi-die-three:before,
+.fi-die-two:before,
+.fi-dislike:before,
+.fi-dollar-bill:before,
+.fi-dollar:before,
+.fi-download:before,
+.fi-eject:before,
+.fi-elevator:before,
+.fi-euro:before,
+.fi-eye:before,
+.fi-fast-forward:before,
+.fi-female-symbol:before,
+.fi-female:before,
+.fi-filter:before,
+.fi-first-aid:before,
+.fi-flag:before,
+.fi-folder-add:before,
+.fi-folder-lock:before,
+.fi-folder:before,
+.fi-foot:before,
+.fi-foundation:before,
+.fi-graph-bar:before,
+.fi-graph-horizontal:before,
+.fi-graph-pie:before,
+.fi-graph-trend:before,
+.fi-guide-dog:before,
+.fi-hearing-aid:before,
+.fi-heart:before,
+.fi-home:before,
+.fi-html5:before,
+.fi-indent-less:before,
+.fi-indent-more:before,
+.fi-info:before,
+.fi-italic:before,
+.fi-key:before,
+.fi-laptop:before,
+.fi-layout:before,
+.fi-lightbulb:before,
+.fi-like:before,
+.fi-link:before,
+.fi-list-bullet:before,
+.fi-list-number:before,
+.fi-list-thumbnails:before,
+.fi-list:before,
+.fi-lock:before,
+.fi-loop:before,
+.fi-magnifying-glass:before,
+.fi-mail:before,
+.fi-male-female:before,
+.fi-male-symbol:before,
+.fi-male:before,
+.fi-map:before,
+.fi-marker:before,
+.fi-megaphone:before,
+.fi-microphone:before,
+.fi-minus-circle:before,
+.fi-minus:before,
+.fi-mobile-signal:before,
+.fi-mobile:before,
+.fi-monitor:before,
+.fi-mountains:before,
+.fi-music:before,
+.fi-next:before,
+.fi-no-dogs:before,
+.fi-no-smoking:before,
+.fi-page-add:before,
+.fi-page-copy:before,
+.fi-page-csv:before,
+.fi-page-delete:before,
+.fi-page-doc:before,
+.fi-page-edit:before,
+.fi-page-export-csv:before,
+.fi-page-export-doc:before,
+.fi-page-export-pdf:before,
+.fi-page-export:before,
+.fi-page-filled:before,
+.fi-page-multiple:before,
+.fi-page-pdf:before,
+.fi-page-remove:before,
+.fi-page-search:before,
+.fi-page:before,
+.fi-paint-bucket:before,
+.fi-paperclip:before,
+.fi-pause:before,
+.fi-paw:before,
+.fi-paypal:before,
+.fi-pencil:before,
+.fi-photo:before,
+.fi-play-circle:before,
+.fi-play-video:before,
+.fi-play:before,
+.fi-plus:before,
+.fi-pound:before,
+.fi-power:before,
+.fi-previous:before,
+.fi-price-tag:before,
+.fi-pricetag-multiple:before,
+.fi-print:before,
+.fi-prohibited:before,
+.fi-projection-screen:before,
+.fi-puzzle:before,
+.fi-quote:before,
+.fi-record:before,
+.fi-refresh:before,
+.fi-results-demographics:before,
+.fi-results:before,
+.fi-rewind-ten:before,
+.fi-rewind:before,
+.fi-rss:before,
+.fi-safety-cone:before,
+.fi-save:before,
+.fi-share:before,
+.fi-sheriff-badge:before,
+.fi-shield:before,
+.fi-shopping-bag:before,
+.fi-shopping-cart:before,
+.fi-shuffle:before,
+.fi-skull:before,
+.fi-social-500px:before,
+.fi-social-adobe:before,
+.fi-social-amazon:before,
+.fi-social-android:before,
+.fi-social-apple:before,
+.fi-social-behance:before,
+.fi-social-bing:before,
+.fi-social-blogger:before,
+.fi-social-delicious:before,
+.fi-social-designer-news:before,
+.fi-social-deviant-art:before,
+.fi-social-digg:before,
+.fi-social-dribbble:before,
+.fi-social-drive:before,
+.fi-social-dropbox:before,
+.fi-social-evernote:before,
+.fi-social-facebook:before,
+.fi-social-flickr:before,
+.fi-social-forrst:before,
+.fi-social-foursquare:before,
+.fi-social-game-center:before,
+.fi-social-github:before,
+.fi-social-google-plus:before,
+.fi-social-hacker-news:before,
+.fi-social-hi5:before,
+.fi-social-instagram:before,
+.fi-social-joomla:before,
+.fi-social-lastfm:before,
+.fi-social-linkedin:before,
+.fi-social-medium:before,
+.fi-social-myspace:before,
+.fi-social-orkut:before,
+.fi-social-path:before,
+.fi-social-picasa:before,
+.fi-social-pinterest:before,
+.fi-social-rdio:before,
+.fi-social-reddit:before,
+.fi-social-skillshare:before,
+.fi-social-skype:before,
+.fi-social-smashing-mag:before,
+.fi-social-snapchat:before,
+.fi-social-spotify:before,
+.fi-social-squidoo:before,
+.fi-social-stack-overflow:before,
+.fi-social-steam:before,
+.fi-social-stumbleupon:before,
+.fi-social-treehouse:before,
+.fi-social-tumblr:before,
+.fi-social-twitter:before,
+.fi-social-vimeo:before,
+.fi-social-windows:before,
+.fi-social-xbox:before,
+.fi-social-yahoo:before,
+.fi-social-yelp:before,
+.fi-social-youtube:before,
+.fi-social-zerply:before,
+.fi-social-zurb:before,
+.fi-sound:before,
+.fi-star:before,
+.fi-stop:before,
+.fi-strikethrough:before,
+.fi-subscript:before,
+.fi-superscript:before,
+.fi-tablet-landscape:before,
+.fi-tablet-portrait:before,
+.fi-target-two:before,
+.fi-target:before,
+.fi-telephone-accessible:before,
+.fi-telephone:before,
+.fi-text-color:before,
+.fi-thumbnails:before,
+.fi-ticket:before,
+.fi-torso-business:before,
+.fi-torso-female:before,
+.fi-torso:before,
+.fi-torsos-all-female:before,
+.fi-torsos-all:before,
+.fi-torsos-female-male:before,
+.fi-torsos-male-female:before,
+.fi-torsos:before,
+.fi-trash:before,
+.fi-trees:before,
+.fi-trophy:before,
+.fi-underline:before,
+.fi-universal-access:before,
+.fi-unlink:before,
+.fi-unlock:before,
+.fi-upload-cloud:before,
+.fi-upload:before,
+.fi-usb:before,
+.fi-video:before,
+.fi-volume-none:before,
+.fi-volume-strike:before,
+.fi-volume:before,
+.fi-web:before,
+.fi-wheelchair:before,
+.fi-widget:before,
+.fi-wrench:before,
+.fi-x-circle:before,
+.fi-x:before,
+.fi-yen:before,
+.fi-zoom-in:before,
+.fi-zoom-out:before {
+ font-family: "foundation-icons";
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ display: inline-block;
+ text-decoration: inherit;
+}
+
+.fi-address-book:before { content: "\f100"; }
+.fi-alert:before { content: "\f101"; }
+.fi-align-center:before { content: "\f102"; }
+.fi-align-justify:before { content: "\f103"; }
+.fi-align-left:before { content: "\f104"; }
+.fi-align-right:before { content: "\f105"; }
+.fi-anchor:before { content: "\f106"; }
+.fi-annotate:before { content: "\f107"; }
+.fi-archive:before { content: "\f108"; }
+.fi-arrow-down:before { content: "\f109"; }
+.fi-arrow-left:before { content: "\f10a"; }
+.fi-arrow-right:before { content: "\f10b"; }
+.fi-arrow-up:before { content: "\f10c"; }
+.fi-arrows-compress:before { content: "\f10d"; }
+.fi-arrows-expand:before { content: "\f10e"; }
+.fi-arrows-in:before { content: "\f10f"; }
+.fi-arrows-out:before { content: "\f110"; }
+.fi-asl:before { content: "\f111"; }
+.fi-asterisk:before { content: "\f112"; }
+.fi-at-sign:before { content: "\f113"; }
+.fi-background-color:before { content: "\f114"; }
+.fi-battery-empty:before { content: "\f115"; }
+.fi-battery-full:before { content: "\f116"; }
+.fi-battery-half:before { content: "\f117"; }
+.fi-bitcoin-circle:before { content: "\f118"; }
+.fi-bitcoin:before { content: "\f119"; }
+.fi-blind:before { content: "\f11a"; }
+.fi-bluetooth:before { content: "\f11b"; }
+.fi-bold:before { content: "\f11c"; }
+.fi-book-bookmark:before { content: "\f11d"; }
+.fi-book:before { content: "\f11e"; }
+.fi-bookmark:before { content: "\f11f"; }
+.fi-braille:before { content: "\f120"; }
+.fi-burst-new:before { content: "\f121"; }
+.fi-burst-sale:before { content: "\f122"; }
+.fi-burst:before { content: "\f123"; }
+.fi-calendar:before { content: "\f124"; }
+.fi-camera:before { content: "\f125"; }
+.fi-check:before { content: "\f126"; }
+.fi-checkbox:before { content: "\f127"; }
+.fi-clipboard-notes:before { content: "\f128"; }
+.fi-clipboard-pencil:before { content: "\f129"; }
+.fi-clipboard:before { content: "\f12a"; }
+.fi-clock:before { content: "\f12b"; }
+.fi-closed-caption:before { content: "\f12c"; }
+.fi-cloud:before { content: "\f12d"; }
+.fi-comment-minus:before { content: "\f12e"; }
+.fi-comment-quotes:before { content: "\f12f"; }
+.fi-comment-video:before { content: "\f130"; }
+.fi-comment:before { content: "\f131"; }
+.fi-comments:before { content: "\f132"; }
+.fi-compass:before { content: "\f133"; }
+.fi-contrast:before { content: "\f134"; }
+.fi-credit-card:before { content: "\f135"; }
+.fi-crop:before { content: "\f136"; }
+.fi-crown:before { content: "\f137"; }
+.fi-css3:before { content: "\f138"; }
+.fi-database:before { content: "\f139"; }
+.fi-die-five:before { content: "\f13a"; }
+.fi-die-four:before { content: "\f13b"; }
+.fi-die-one:before { content: "\f13c"; }
+.fi-die-six:before { content: "\f13d"; }
+.fi-die-three:before { content: "\f13e"; }
+.fi-die-two:before { content: "\f13f"; }
+.fi-dislike:before { content: "\f140"; }
+.fi-dollar-bill:before { content: "\f141"; }
+.fi-dollar:before { content: "\f142"; }
+.fi-download:before { content: "\f143"; }
+.fi-eject:before { content: "\f144"; }
+.fi-elevator:before { content: "\f145"; }
+.fi-euro:before { content: "\f146"; }
+.fi-eye:before { content: "\f147"; }
+.fi-fast-forward:before { content: "\f148"; }
+.fi-female-symbol:before { content: "\f149"; }
+.fi-female:before { content: "\f14a"; }
+.fi-filter:before { content: "\f14b"; }
+.fi-first-aid:before { content: "\f14c"; }
+.fi-flag:before { content: "\f14d"; }
+.fi-folder-add:before { content: "\f14e"; }
+.fi-folder-lock:before { content: "\f14f"; }
+.fi-folder:before { content: "\f150"; }
+.fi-foot:before { content: "\f151"; }
+.fi-foundation:before { content: "\f152"; }
+.fi-graph-bar:before { content: "\f153"; }
+.fi-graph-horizontal:before { content: "\f154"; }
+.fi-graph-pie:before { content: "\f155"; }
+.fi-graph-trend:before { content: "\f156"; }
+.fi-guide-dog:before { content: "\f157"; }
+.fi-hearing-aid:before { content: "\f158"; }
+.fi-heart:before { content: "\f159"; }
+.fi-home:before { content: "\f15a"; }
+.fi-html5:before { content: "\f15b"; }
+.fi-indent-less:before { content: "\f15c"; }
+.fi-indent-more:before { content: "\f15d"; }
+.fi-info:before { content: "\f15e"; }
+.fi-italic:before { content: "\f15f"; }
+.fi-key:before { content: "\f160"; }
+.fi-laptop:before { content: "\f161"; }
+.fi-layout:before { content: "\f162"; }
+.fi-lightbulb:before { content: "\f163"; }
+.fi-like:before { content: "\f164"; }
+.fi-link:before { content: "\f165"; }
+.fi-list-bullet:before { content: "\f166"; }
+.fi-list-number:before { content: "\f167"; }
+.fi-list-thumbnails:before { content: "\f168"; }
+.fi-list:before { content: "\f169"; }
+.fi-lock:before { content: "\f16a"; }
+.fi-loop:before { content: "\f16b"; }
+.fi-magnifying-glass:before { content: "\f16c"; }
+.fi-mail:before { content: "\f16d"; }
+.fi-male-female:before { content: "\f16e"; }
+.fi-male-symbol:before { content: "\f16f"; }
+.fi-male:before { content: "\f170"; }
+.fi-map:before { content: "\f171"; }
+.fi-marker:before { content: "\f172"; }
+.fi-megaphone:before { content: "\f173"; }
+.fi-microphone:before { content: "\f174"; }
+.fi-minus-circle:before { content: "\f175"; }
+.fi-minus:before { content: "\f176"; }
+.fi-mobile-signal:before { content: "\f177"; }
+.fi-mobile:before { content: "\f178"; }
+.fi-monitor:before { content: "\f179"; }
+.fi-mountains:before { content: "\f17a"; }
+.fi-music:before { content: "\f17b"; }
+.fi-next:before { content: "\f17c"; }
+.fi-no-dogs:before { content: "\f17d"; }
+.fi-no-smoking:before { content: "\f17e"; }
+.fi-page-add:before { content: "\f17f"; }
+.fi-page-copy:before { content: "\f180"; }
+.fi-page-csv:before { content: "\f181"; }
+.fi-page-delete:before { content: "\f182"; }
+.fi-page-doc:before { content: "\f183"; }
+.fi-page-edit:before { content: "\f184"; }
+.fi-page-export-csv:before { content: "\f185"; }
+.fi-page-export-doc:before { content: "\f186"; }
+.fi-page-export-pdf:before { content: "\f187"; }
+.fi-page-export:before { content: "\f188"; }
+.fi-page-filled:before { content: "\f189"; }
+.fi-page-multiple:before { content: "\f18a"; }
+.fi-page-pdf:before { content: "\f18b"; }
+.fi-page-remove:before { content: "\f18c"; }
+.fi-page-search:before { content: "\f18d"; }
+.fi-page:before { content: "\f18e"; }
+.fi-paint-bucket:before { content: "\f18f"; }
+.fi-paperclip:before { content: "\f190"; }
+.fi-pause:before { content: "\f191"; }
+.fi-paw:before { content: "\f192"; }
+.fi-paypal:before { content: "\f193"; }
+.fi-pencil:before { content: "\f194"; }
+.fi-photo:before { content: "\f195"; }
+.fi-play-circle:before { content: "\f196"; }
+.fi-play-video:before { content: "\f197"; }
+.fi-play:before { content: "\f198"; }
+.fi-plus:before { content: "\f199"; }
+.fi-pound:before { content: "\f19a"; }
+.fi-power:before { content: "\f19b"; }
+.fi-previous:before { content: "\f19c"; }
+.fi-price-tag:before { content: "\f19d"; }
+.fi-pricetag-multiple:before { content: "\f19e"; }
+.fi-print:before { content: "\f19f"; }
+.fi-prohibited:before { content: "\f1a0"; }
+.fi-projection-screen:before { content: "\f1a1"; }
+.fi-puzzle:before { content: "\f1a2"; }
+.fi-quote:before { content: "\f1a3"; }
+.fi-record:before { content: "\f1a4"; }
+.fi-refresh:before { content: "\f1a5"; }
+.fi-results-demographics:before { content: "\f1a6"; }
+.fi-results:before { content: "\f1a7"; }
+.fi-rewind-ten:before { content: "\f1a8"; }
+.fi-rewind:before { content: "\f1a9"; }
+.fi-rss:before { content: "\f1aa"; }
+.fi-safety-cone:before { content: "\f1ab"; }
+.fi-save:before { content: "\f1ac"; }
+.fi-share:before { content: "\f1ad"; }
+.fi-sheriff-badge:before { content: "\f1ae"; }
+.fi-shield:before { content: "\f1af"; }
+.fi-shopping-bag:before { content: "\f1b0"; }
+.fi-shopping-cart:before { content: "\f1b1"; }
+.fi-shuffle:before { content: "\f1b2"; }
+.fi-skull:before { content: "\f1b3"; }
+.fi-social-500px:before { content: "\f1b4"; }
+.fi-social-adobe:before { content: "\f1b5"; }
+.fi-social-amazon:before { content: "\f1b6"; }
+.fi-social-android:before { content: "\f1b7"; }
+.fi-social-apple:before { content: "\f1b8"; }
+.fi-social-behance:before { content: "\f1b9"; }
+.fi-social-bing:before { content: "\f1ba"; }
+.fi-social-blogger:before { content: "\f1bb"; }
+.fi-social-delicious:before { content: "\f1bc"; }
+.fi-social-designer-news:before { content: "\f1bd"; }
+.fi-social-deviant-art:before { content: "\f1be"; }
+.fi-social-digg:before { content: "\f1bf"; }
+.fi-social-dribbble:before { content: "\f1c0"; }
+.fi-social-drive:before { content: "\f1c1"; }
+.fi-social-dropbox:before { content: "\f1c2"; }
+.fi-social-evernote:before { content: "\f1c3"; }
+.fi-social-facebook:before { content: "\f1c4"; }
+.fi-social-flickr:before { content: "\f1c5"; }
+.fi-social-forrst:before { content: "\f1c6"; }
+.fi-social-foursquare:before { content: "\f1c7"; }
+.fi-social-game-center:before { content: "\f1c8"; }
+.fi-social-github:before { content: "\f1c9"; }
+.fi-social-google-plus:before { content: "\f1ca"; }
+.fi-social-hacker-news:before { content: "\f1cb"; }
+.fi-social-hi5:before { content: "\f1cc"; }
+.fi-social-instagram:before { content: "\f1cd"; }
+.fi-social-joomla:before { content: "\f1ce"; }
+.fi-social-lastfm:before { content: "\f1cf"; }
+.fi-social-linkedin:before { content: "\f1d0"; }
+.fi-social-medium:before { content: "\f1d1"; }
+.fi-social-myspace:before { content: "\f1d2"; }
+.fi-social-orkut:before { content: "\f1d3"; }
+.fi-social-path:before { content: "\f1d4"; }
+.fi-social-picasa:before { content: "\f1d5"; }
+.fi-social-pinterest:before { content: "\f1d6"; }
+.fi-social-rdio:before { content: "\f1d7"; }
+.fi-social-reddit:before { content: "\f1d8"; }
+.fi-social-skillshare:before { content: "\f1d9"; }
+.fi-social-skype:before { content: "\f1da"; }
+.fi-social-smashing-mag:before { content: "\f1db"; }
+.fi-social-snapchat:before { content: "\f1dc"; }
+.fi-social-spotify:before { content: "\f1dd"; }
+.fi-social-squidoo:before { content: "\f1de"; }
+.fi-social-stack-overflow:before { content: "\f1df"; }
+.fi-social-steam:before { content: "\f1e0"; }
+.fi-social-stumbleupon:before { content: "\f1e1"; }
+.fi-social-treehouse:before { content: "\f1e2"; }
+.fi-social-tumblr:before { content: "\f1e3"; }
+.fi-social-twitter:before { content: "\f1e4"; }
+.fi-social-vimeo:before { content: "\f1e5"; }
+.fi-social-windows:before { content: "\f1e6"; }
+.fi-social-xbox:before { content: "\f1e7"; }
+.fi-social-yahoo:before { content: "\f1e8"; }
+.fi-social-yelp:before { content: "\f1e9"; }
+.fi-social-youtube:before { content: "\f1ea"; }
+.fi-social-zerply:before { content: "\f1eb"; }
+.fi-social-zurb:before { content: "\f1ec"; }
+.fi-sound:before { content: "\f1ed"; }
+.fi-star:before { content: "\f1ee"; }
+.fi-stop:before { content: "\f1ef"; }
+.fi-strikethrough:before { content: "\f1f0"; }
+.fi-subscript:before { content: "\f1f1"; }
+.fi-superscript:before { content: "\f1f2"; }
+.fi-tablet-landscape:before { content: "\f1f3"; }
+.fi-tablet-portrait:before { content: "\f1f4"; }
+.fi-target-two:before { content: "\f1f5"; }
+.fi-target:before { content: "\f1f6"; }
+.fi-telephone-accessible:before { content: "\f1f7"; }
+.fi-telephone:before { content: "\f1f8"; }
+.fi-text-color:before { content: "\f1f9"; }
+.fi-thumbnails:before { content: "\f1fa"; }
+.fi-ticket:before { content: "\f1fb"; }
+.fi-torso-business:before { content: "\f1fc"; }
+.fi-torso-female:before { content: "\f1fd"; }
+.fi-torso:before { content: "\f1fe"; }
+.fi-torsos-all-female:before { content: "\f1ff"; }
+.fi-torsos-all:before { content: "\f200"; }
+.fi-torsos-female-male:before { content: "\f201"; }
+.fi-torsos-male-female:before { content: "\f202"; }
+.fi-torsos:before { content: "\f203"; }
+.fi-trash:before { content: "\f204"; }
+.fi-trees:before { content: "\f205"; }
+.fi-trophy:before { content: "\f206"; }
+.fi-underline:before { content: "\f207"; }
+.fi-universal-access:before { content: "\f208"; }
+.fi-unlink:before { content: "\f209"; }
+.fi-unlock:before { content: "\f20a"; }
+.fi-upload-cloud:before { content: "\f20b"; }
+.fi-upload:before { content: "\f20c"; }
+.fi-usb:before { content: "\f20d"; }
+.fi-video:before { content: "\f20e"; }
+.fi-volume-none:before { content: "\f20f"; }
+.fi-volume-strike:before { content: "\f210"; }
+.fi-volume:before { content: "\f211"; }
+.fi-web:before { content: "\f212"; }
+.fi-wheelchair:before { content: "\f213"; }
+.fi-widget:before { content: "\f214"; }
+.fi-wrench:before { content: "\f215"; }
+.fi-x-circle:before { content: "\f216"; }
+.fi-x:before { content: "\f217"; }
+.fi-yen:before { content: "\f218"; }
+.fi-zoom-in:before { content: "\f219"; }
+.fi-zoom-out:before { content: "\f21a"; }
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.eot b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.eot
new file mode 100644
index 00000000..1746ad40
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.eot differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.min.css
new file mode 100644
index 00000000..f20324b0
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.min.css
@@ -0,0 +1 @@
+@font-face{font-family:foundation-icons;src:url(./foundation-icons.eot);src:url(./foundation-icons.eot?#iefix) format("embedded-opentype"),url(./foundation-icons.woff) format("woff"),url(./foundation-icons.ttf) format("truetype"),url(./foundation-icons.svg#fontcustom) format("svg");font-weight:400;font-style:normal}.fi-address-book:before,.fi-alert:before,.fi-align-center:before,.fi-align-justify:before,.fi-align-left:before,.fi-align-right:before,.fi-anchor:before,.fi-annotate:before,.fi-archive:before,.fi-arrow-down:before,.fi-arrow-left:before,.fi-arrow-right:before,.fi-arrow-up:before,.fi-arrows-compress:before,.fi-arrows-expand:before,.fi-arrows-in:before,.fi-arrows-out:before,.fi-asl:before,.fi-asterisk:before,.fi-at-sign:before,.fi-background-color:before,.fi-battery-empty:before,.fi-battery-full:before,.fi-battery-half:before,.fi-bitcoin-circle:before,.fi-bitcoin:before,.fi-blind:before,.fi-bluetooth:before,.fi-bold:before,.fi-book-bookmark:before,.fi-book:before,.fi-bookmark:before,.fi-braille:before,.fi-burst-new:before,.fi-burst-sale:before,.fi-burst:before,.fi-calendar:before,.fi-camera:before,.fi-check:before,.fi-checkbox:before,.fi-clipboard-notes:before,.fi-clipboard-pencil:before,.fi-clipboard:before,.fi-clock:before,.fi-closed-caption:before,.fi-cloud:before,.fi-comment-minus:before,.fi-comment-quotes:before,.fi-comment-video:before,.fi-comment:before,.fi-comments:before,.fi-compass:before,.fi-contrast:before,.fi-credit-card:before,.fi-crop:before,.fi-crown:before,.fi-css3:before,.fi-database:before,.fi-die-five:before,.fi-die-four:before,.fi-die-one:before,.fi-die-six:before,.fi-die-three:before,.fi-die-two:before,.fi-dislike:before,.fi-dollar-bill:before,.fi-dollar:before,.fi-download:before,.fi-eject:before,.fi-elevator:before,.fi-euro:before,.fi-eye:before,.fi-fast-forward:before,.fi-female-symbol:before,.fi-female:before,.fi-filter:before,.fi-first-aid:before,.fi-flag:before,.fi-folder-add:before,.fi-folder-lock:before,.fi-folder:before,.fi-foot:before,.fi-foundation:before,.fi-graph-bar:before,.fi-graph-horizontal:before,.fi-graph-pie:before,.fi-graph-trend:before,.fi-guide-dog:before,.fi-hearing-aid:before,.fi-heart:before,.fi-home:before,.fi-html5:before,.fi-indent-less:before,.fi-indent-more:before,.fi-info:before,.fi-italic:before,.fi-key:before,.fi-laptop:before,.fi-layout:before,.fi-lightbulb:before,.fi-like:before,.fi-link:before,.fi-list-bullet:before,.fi-list-number:before,.fi-list-thumbnails:before,.fi-list:before,.fi-lock:before,.fi-loop:before,.fi-magnifying-glass:before,.fi-mail:before,.fi-male-female:before,.fi-male-symbol:before,.fi-male:before,.fi-map:before,.fi-marker:before,.fi-megaphone:before,.fi-microphone:before,.fi-minus-circle:before,.fi-minus:before,.fi-mobile-signal:before,.fi-mobile:before,.fi-monitor:before,.fi-mountains:before,.fi-music:before,.fi-next:before,.fi-no-dogs:before,.fi-no-smoking:before,.fi-page-add:before,.fi-page-copy:before,.fi-page-csv:before,.fi-page-delete:before,.fi-page-doc:before,.fi-page-edit:before,.fi-page-export-csv:before,.fi-page-export-doc:before,.fi-page-export-pdf:before,.fi-page-export:before,.fi-page-filled:before,.fi-page-multiple:before,.fi-page-pdf:before,.fi-page-remove:before,.fi-page-search:before,.fi-page:before,.fi-paint-bucket:before,.fi-paperclip:before,.fi-pause:before,.fi-paw:before,.fi-paypal:before,.fi-pencil:before,.fi-photo:before,.fi-play-circle:before,.fi-play-video:before,.fi-play:before,.fi-plus:before,.fi-pound:before,.fi-power:before,.fi-previous:before,.fi-price-tag:before,.fi-pricetag-multiple:before,.fi-print:before,.fi-prohibited:before,.fi-projection-screen:before,.fi-puzzle:before,.fi-quote:before,.fi-record:before,.fi-refresh:before,.fi-results-demographics:before,.fi-results:before,.fi-rewind-ten:before,.fi-rewind:before,.fi-rss:before,.fi-safety-cone:before,.fi-save:before,.fi-share:before,.fi-sheriff-badge:before,.fi-shield:before,.fi-shopping-bag:before,.fi-shopping-cart:before,.fi-shuffle:before,.fi-skull:before,.fi-social-500px:before,.fi-social-adobe:before,.fi-social-amazon:before,.fi-social-android:before,.fi-social-apple:before,.fi-social-behance:before,.fi-social-bing:before,.fi-social-blogger:before,.fi-social-delicious:before,.fi-social-designer-news:before,.fi-social-deviant-art:before,.fi-social-digg:before,.fi-social-dribbble:before,.fi-social-drive:before,.fi-social-dropbox:before,.fi-social-evernote:before,.fi-social-facebook:before,.fi-social-flickr:before,.fi-social-forrst:before,.fi-social-foursquare:before,.fi-social-game-center:before,.fi-social-github:before,.fi-social-google-plus:before,.fi-social-hacker-news:before,.fi-social-hi5:before,.fi-social-instagram:before,.fi-social-joomla:before,.fi-social-lastfm:before,.fi-social-linkedin:before,.fi-social-medium:before,.fi-social-myspace:before,.fi-social-orkut:before,.fi-social-path:before,.fi-social-picasa:before,.fi-social-pinterest:before,.fi-social-rdio:before,.fi-social-reddit:before,.fi-social-skillshare:before,.fi-social-skype:before,.fi-social-smashing-mag:before,.fi-social-snapchat:before,.fi-social-spotify:before,.fi-social-squidoo:before,.fi-social-stack-overflow:before,.fi-social-steam:before,.fi-social-stumbleupon:before,.fi-social-treehouse:before,.fi-social-tumblr:before,.fi-social-twitter:before,.fi-social-vimeo:before,.fi-social-windows:before,.fi-social-xbox:before,.fi-social-yahoo:before,.fi-social-yelp:before,.fi-social-youtube:before,.fi-social-zerply:before,.fi-social-zurb:before,.fi-sound:before,.fi-star:before,.fi-stop:before,.fi-strikethrough:before,.fi-subscript:before,.fi-superscript:before,.fi-tablet-landscape:before,.fi-tablet-portrait:before,.fi-target-two:before,.fi-target:before,.fi-telephone-accessible:before,.fi-telephone:before,.fi-text-color:before,.fi-thumbnails:before,.fi-ticket:before,.fi-torso-business:before,.fi-torso-female:before,.fi-torso:before,.fi-torsos-all-female:before,.fi-torsos-all:before,.fi-torsos-female-male:before,.fi-torsos-male-female:before,.fi-torsos:before,.fi-trash:before,.fi-trees:before,.fi-trophy:before,.fi-underline:before,.fi-universal-access:before,.fi-unlink:before,.fi-unlock:before,.fi-upload-cloud:before,.fi-upload:before,.fi-usb:before,.fi-video:before,.fi-volume-none:before,.fi-volume-strike:before,.fi-volume:before,.fi-web:before,.fi-wheelchair:before,.fi-widget:before,.fi-wrench:before,.fi-x-circle:before,.fi-x:before,.fi-yen:before,.fi-zoom-in:before,.fi-zoom-out:before{font-family:foundation-icons;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;display:inline-block;text-decoration:inherit}.fi-address-book:before{content:"\f100"}.fi-alert:before{content:"\f101"}.fi-align-center:before{content:"\f102"}.fi-align-justify:before{content:"\f103"}.fi-align-left:before{content:"\f104"}.fi-align-right:before{content:"\f105"}.fi-anchor:before{content:"\f106"}.fi-annotate:before{content:"\f107"}.fi-archive:before{content:"\f108"}.fi-arrow-down:before{content:"\f109"}.fi-arrow-left:before{content:"\f10a"}.fi-arrow-right:before{content:"\f10b"}.fi-arrow-up:before{content:"\f10c"}.fi-arrows-compress:before{content:"\f10d"}.fi-arrows-expand:before{content:"\f10e"}.fi-arrows-in:before{content:"\f10f"}.fi-arrows-out:before{content:"\f110"}.fi-asl:before{content:"\f111"}.fi-asterisk:before{content:"\f112"}.fi-at-sign:before{content:"\f113"}.fi-background-color:before{content:"\f114"}.fi-battery-empty:before{content:"\f115"}.fi-battery-full:before{content:"\f116"}.fi-battery-half:before{content:"\f117"}.fi-bitcoin-circle:before{content:"\f118"}.fi-bitcoin:before{content:"\f119"}.fi-blind:before{content:"\f11a"}.fi-bluetooth:before{content:"\f11b"}.fi-bold:before{content:"\f11c"}.fi-book-bookmark:before{content:"\f11d"}.fi-book:before{content:"\f11e"}.fi-bookmark:before{content:"\f11f"}.fi-braille:before{content:"\f120"}.fi-burst-new:before{content:"\f121"}.fi-burst-sale:before{content:"\f122"}.fi-burst:before{content:"\f123"}.fi-calendar:before{content:"\f124"}.fi-camera:before{content:"\f125"}.fi-check:before{content:"\f126"}.fi-checkbox:before{content:"\f127"}.fi-clipboard-notes:before{content:"\f128"}.fi-clipboard-pencil:before{content:"\f129"}.fi-clipboard:before{content:"\f12a"}.fi-clock:before{content:"\f12b"}.fi-closed-caption:before{content:"\f12c"}.fi-cloud:before{content:"\f12d"}.fi-comment-minus:before{content:"\f12e"}.fi-comment-quotes:before{content:"\f12f"}.fi-comment-video:before{content:"\f130"}.fi-comment:before{content:"\f131"}.fi-comments:before{content:"\f132"}.fi-compass:before{content:"\f133"}.fi-contrast:before{content:"\f134"}.fi-credit-card:before{content:"\f135"}.fi-crop:before{content:"\f136"}.fi-crown:before{content:"\f137"}.fi-css3:before{content:"\f138"}.fi-database:before{content:"\f139"}.fi-die-five:before{content:"\f13a"}.fi-die-four:before{content:"\f13b"}.fi-die-one:before{content:"\f13c"}.fi-die-six:before{content:"\f13d"}.fi-die-three:before{content:"\f13e"}.fi-die-two:before{content:"\f13f"}.fi-dislike:before{content:"\f140"}.fi-dollar-bill:before{content:"\f141"}.fi-dollar:before{content:"\f142"}.fi-download:before{content:"\f143"}.fi-eject:before{content:"\f144"}.fi-elevator:before{content:"\f145"}.fi-euro:before{content:"\f146"}.fi-eye:before{content:"\f147"}.fi-fast-forward:before{content:"\f148"}.fi-female-symbol:before{content:"\f149"}.fi-female:before{content:"\f14a"}.fi-filter:before{content:"\f14b"}.fi-first-aid:before{content:"\f14c"}.fi-flag:before{content:"\f14d"}.fi-folder-add:before{content:"\f14e"}.fi-folder-lock:before{content:"\f14f"}.fi-folder:before{content:"\f150"}.fi-foot:before{content:"\f151"}.fi-foundation:before{content:"\f152"}.fi-graph-bar:before{content:"\f153"}.fi-graph-horizontal:before{content:"\f154"}.fi-graph-pie:before{content:"\f155"}.fi-graph-trend:before{content:"\f156"}.fi-guide-dog:before{content:"\f157"}.fi-hearing-aid:before{content:"\f158"}.fi-heart:before{content:"\f159"}.fi-home:before{content:"\f15a"}.fi-html5:before{content:"\f15b"}.fi-indent-less:before{content:"\f15c"}.fi-indent-more:before{content:"\f15d"}.fi-info:before{content:"\f15e"}.fi-italic:before{content:"\f15f"}.fi-key:before{content:"\f160"}.fi-laptop:before{content:"\f161"}.fi-layout:before{content:"\f162"}.fi-lightbulb:before{content:"\f163"}.fi-like:before{content:"\f164"}.fi-link:before{content:"\f165"}.fi-list-bullet:before{content:"\f166"}.fi-list-number:before{content:"\f167"}.fi-list-thumbnails:before{content:"\f168"}.fi-list:before{content:"\f169"}.fi-lock:before{content:"\f16a"}.fi-loop:before{content:"\f16b"}.fi-magnifying-glass:before{content:"\f16c"}.fi-mail:before{content:"\f16d"}.fi-male-female:before{content:"\f16e"}.fi-male-symbol:before{content:"\f16f"}.fi-male:before{content:"\f170"}.fi-map:before{content:"\f171"}.fi-marker:before{content:"\f172"}.fi-megaphone:before{content:"\f173"}.fi-microphone:before{content:"\f174"}.fi-minus-circle:before{content:"\f175"}.fi-minus:before{content:"\f176"}.fi-mobile-signal:before{content:"\f177"}.fi-mobile:before{content:"\f178"}.fi-monitor:before{content:"\f179"}.fi-mountains:before{content:"\f17a"}.fi-music:before{content:"\f17b"}.fi-next:before{content:"\f17c"}.fi-no-dogs:before{content:"\f17d"}.fi-no-smoking:before{content:"\f17e"}.fi-page-add:before{content:"\f17f"}.fi-page-copy:before{content:"\f180"}.fi-page-csv:before{content:"\f181"}.fi-page-delete:before{content:"\f182"}.fi-page-doc:before{content:"\f183"}.fi-page-edit:before{content:"\f184"}.fi-page-export-csv:before{content:"\f185"}.fi-page-export-doc:before{content:"\f186"}.fi-page-export-pdf:before{content:"\f187"}.fi-page-export:before{content:"\f188"}.fi-page-filled:before{content:"\f189"}.fi-page-multiple:before{content:"\f18a"}.fi-page-pdf:before{content:"\f18b"}.fi-page-remove:before{content:"\f18c"}.fi-page-search:before{content:"\f18d"}.fi-page:before{content:"\f18e"}.fi-paint-bucket:before{content:"\f18f"}.fi-paperclip:before{content:"\f190"}.fi-pause:before{content:"\f191"}.fi-paw:before{content:"\f192"}.fi-paypal:before{content:"\f193"}.fi-pencil:before{content:"\f194"}.fi-photo:before{content:"\f195"}.fi-play-circle:before{content:"\f196"}.fi-play-video:before{content:"\f197"}.fi-play:before{content:"\f198"}.fi-plus:before{content:"\f199"}.fi-pound:before{content:"\f19a"}.fi-power:before{content:"\f19b"}.fi-previous:before{content:"\f19c"}.fi-price-tag:before{content:"\f19d"}.fi-pricetag-multiple:before{content:"\f19e"}.fi-print:before{content:"\f19f"}.fi-prohibited:before{content:"\f1a0"}.fi-projection-screen:before{content:"\f1a1"}.fi-puzzle:before{content:"\f1a2"}.fi-quote:before{content:"\f1a3"}.fi-record:before{content:"\f1a4"}.fi-refresh:before{content:"\f1a5"}.fi-results-demographics:before{content:"\f1a6"}.fi-results:before{content:"\f1a7"}.fi-rewind-ten:before{content:"\f1a8"}.fi-rewind:before{content:"\f1a9"}.fi-rss:before{content:"\f1aa"}.fi-safety-cone:before{content:"\f1ab"}.fi-save:before{content:"\f1ac"}.fi-share:before{content:"\f1ad"}.fi-sheriff-badge:before{content:"\f1ae"}.fi-shield:before{content:"\f1af"}.fi-shopping-bag:before{content:"\f1b0"}.fi-shopping-cart:before{content:"\f1b1"}.fi-shuffle:before{content:"\f1b2"}.fi-skull:before{content:"\f1b3"}.fi-social-500px:before{content:"\f1b4"}.fi-social-adobe:before{content:"\f1b5"}.fi-social-amazon:before{content:"\f1b6"}.fi-social-android:before{content:"\f1b7"}.fi-social-apple:before{content:"\f1b8"}.fi-social-behance:before{content:"\f1b9"}.fi-social-bing:before{content:"\f1ba"}.fi-social-blogger:before{content:"\f1bb"}.fi-social-delicious:before{content:"\f1bc"}.fi-social-designer-news:before{content:"\f1bd"}.fi-social-deviant-art:before{content:"\f1be"}.fi-social-digg:before{content:"\f1bf"}.fi-social-dribbble:before{content:"\f1c0"}.fi-social-drive:before{content:"\f1c1"}.fi-social-dropbox:before{content:"\f1c2"}.fi-social-evernote:before{content:"\f1c3"}.fi-social-facebook:before{content:"\f1c4"}.fi-social-flickr:before{content:"\f1c5"}.fi-social-forrst:before{content:"\f1c6"}.fi-social-foursquare:before{content:"\f1c7"}.fi-social-game-center:before{content:"\f1c8"}.fi-social-github:before{content:"\f1c9"}.fi-social-google-plus:before{content:"\f1ca"}.fi-social-hacker-news:before{content:"\f1cb"}.fi-social-hi5:before{content:"\f1cc"}.fi-social-instagram:before{content:"\f1cd"}.fi-social-joomla:before{content:"\f1ce"}.fi-social-lastfm:before{content:"\f1cf"}.fi-social-linkedin:before{content:"\f1d0"}.fi-social-medium:before{content:"\f1d1"}.fi-social-myspace:before{content:"\f1d2"}.fi-social-orkut:before{content:"\f1d3"}.fi-social-path:before{content:"\f1d4"}.fi-social-picasa:before{content:"\f1d5"}.fi-social-pinterest:before{content:"\f1d6"}.fi-social-rdio:before{content:"\f1d7"}.fi-social-reddit:before{content:"\f1d8"}.fi-social-skillshare:before{content:"\f1d9"}.fi-social-skype:before{content:"\f1da"}.fi-social-smashing-mag:before{content:"\f1db"}.fi-social-snapchat:before{content:"\f1dc"}.fi-social-spotify:before{content:"\f1dd"}.fi-social-squidoo:before{content:"\f1de"}.fi-social-stack-overflow:before{content:"\f1df"}.fi-social-steam:before{content:"\f1e0"}.fi-social-stumbleupon:before{content:"\f1e1"}.fi-social-treehouse:before{content:"\f1e2"}.fi-social-tumblr:before{content:"\f1e3"}.fi-social-twitter:before{content:"\f1e4"}.fi-social-vimeo:before{content:"\f1e5"}.fi-social-windows:before{content:"\f1e6"}.fi-social-xbox:before{content:"\f1e7"}.fi-social-yahoo:before{content:"\f1e8"}.fi-social-yelp:before{content:"\f1e9"}.fi-social-youtube:before{content:"\f1ea"}.fi-social-zerply:before{content:"\f1eb"}.fi-social-zurb:before{content:"\f1ec"}.fi-sound:before{content:"\f1ed"}.fi-star:before{content:"\f1ee"}.fi-stop:before{content:"\f1ef"}.fi-strikethrough:before{content:"\f1f0"}.fi-subscript:before{content:"\f1f1"}.fi-superscript:before{content:"\f1f2"}.fi-tablet-landscape:before{content:"\f1f3"}.fi-tablet-portrait:before{content:"\f1f4"}.fi-target-two:before{content:"\f1f5"}.fi-target:before{content:"\f1f6"}.fi-telephone-accessible:before{content:"\f1f7"}.fi-telephone:before{content:"\f1f8"}.fi-text-color:before{content:"\f1f9"}.fi-thumbnails:before{content:"\f1fa"}.fi-ticket:before{content:"\f1fb"}.fi-torso-business:before{content:"\f1fc"}.fi-torso-female:before{content:"\f1fd"}.fi-torso:before{content:"\f1fe"}.fi-torsos-all-female:before{content:"\f1ff"}.fi-torsos-all:before{content:"\f200"}.fi-torsos-female-male:before{content:"\f201"}.fi-torsos-male-female:before{content:"\f202"}.fi-torsos:before{content:"\f203"}.fi-trash:before{content:"\f204"}.fi-trees:before{content:"\f205"}.fi-trophy:before{content:"\f206"}.fi-underline:before{content:"\f207"}.fi-universal-access:before{content:"\f208"}.fi-unlink:before{content:"\f209"}.fi-unlock:before{content:"\f20a"}.fi-upload-cloud:before{content:"\f20b"}.fi-upload:before{content:"\f20c"}.fi-usb:before{content:"\f20d"}.fi-video:before{content:"\f20e"}.fi-volume-none:before{content:"\f20f"}.fi-volume-strike:before{content:"\f210"}.fi-volume:before{content:"\f211"}.fi-web:before{content:"\f212"}.fi-wheelchair:before{content:"\f213"}.fi-widget:before{content:"\f214"}.fi-wrench:before{content:"\f215"}.fi-x-circle:before{content:"\f216"}.fi-x:before{content:"\f217"}.fi-yen:before{content:"\f218"}.fi-zoom-in:before{content:"\f219"}.fi-zoom-out:before{content:"\f21a"}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.svg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.svg
new file mode 100644
index 00000000..4e014ff8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.svg
@@ -0,0 +1,970 @@
+
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.ttf b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.ttf
new file mode 100644
index 00000000..6cce217d
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.ttf differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.woff b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.woff
new file mode 100644
index 00000000..e2cfe25d
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/foundation-icons.woff differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.css
new file mode 100644
index 00000000..cb3185f8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.css
@@ -0,0 +1,262 @@
+/**
+
+ Genericons
+
+*/
+
+
+/* IE8 and below use EOT and allow cross-site embedding.
+ IE9 uses WOFF which is base64 encoded to allow cross-site embedding.
+ So unfortunately, IE9 will throw a console error, but it'll still work.
+ When the font is base64 encoded, cross-site embedding works in Firefox */
+@font-face {
+ font-family: "Genericons";
+ src: url("./Genericons.eot?") format("embedded-opentype");
+ font-weight: normal;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: "Genericons";
+ src: url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkSHja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q02qxIMlAewtuYWQVwLdsg6+fyNbcufpfRunw+CruicxZMm1JYsV4zGfIuUV9+8OH7VzTdfFV80IpSVVZBvMErLS2rHT140JxrJtYfGjRjrFIyl3liplFNkNDlFY6nTmwuKwx0fu6gZfL67aOrZ5W03Pn/SQNiZfrXlIfr62RfrVXeh9JvpoxY4FUt5/eRFm2bsvTy/YvzFdSDK5jq/F8DrrzMpglAxtSFekt2zZ/rmRZPr/WYl1JmVJxdEq6VcX3GhoGY7zaAUuoZ5pNwhrqF5WabyKXVZhW4l/MJZaHhoC28cdiIDKkJ4nxqIiZQittSTBJlKiL8+LogKUe3+mDleLrvAjLhidsRIPBDMAda9LsERkxwCsETlccHiVXx2S4sUD1SBWyIIewRxjzDgk8iBw54n/0w3db0rjt/1ViE9TY/nNXaeue+KFT+Cxz4uSNCP6Bp5+biD/9dsLw0qj8DEq51nG1+if695Cb68Zevjbs19yW+VvZO2LB9yLT1Er4JdsAEsP/85/ZxupEvw+PznPweLNhWq4MY2evS13r0roL03FCq+m/5W2Jx4iP5u/dsQm1SrddTDuw0Xd7lKw+05HqUYSuGfM+nhE/bxIXBCrGAf3Sc0ultay6/9qXZB5lggL5R1FyAeVyEef0Aa8EZR7Qi4kuRz++3helzyOL0wgJfhOL8YXsXtkgNnaIsQrrc7YvE8UGOqllwpVM/Vnvo9pdvoEdpfVTXzgZ+MuPJ5n99dV/vjhyfPTs6uvwVu+TCrcfGm5OQt4R+tsLY3rFJquycX25Yff/vwfT0jH5QDY+vEbavV3KI3b5QrxfqfXbS445E3s4dUtm1a3Dg8XpRILPfm6vUlKD9UjQQH0MGHKG3xDEcZEXbEAz4UIKUIiyg0zwMI+hHk5dCPKlv3yZOWX/TT2VWUpqrYAxUR4SxB6HwNpN6c5jj8Iyt28drRp2lfqmFHl4xPOLZjufLHWK6b4YPIBAMrI9IiYU+Ugejl5YrSbpiQT1+lvX/+s6N6/EXXtsW7nE51/pKKiNMofU2P9h0SJ0ANCJEFs8bHShVRpB+Z/NVeUTASRJ9M2yyIzB6yhKzi2GA3s0HxeXFFF5hjgDMXFKjHuZsNdgtYYvEWMRphQGBA6AjXOwLlPq+kqPXh+tgIiNkVVVHBIiKOxBz2c3F+HGpVjJmjEbENVsDEL7aN7Nn38idXH6T7v9i27Qv6pzNv0x+PFQO3XC8JX/+j+y/gmypIBXkW1VFoBYdslvMkVZjcCMZV9NN7b6H9R8YXF/lX+Lw2S561qhb8T13bbs23WjdOCVzm82GkrVLwycO/OvSeqmHu+w9e/cnL+3pGbvsCJvLSU3mn6YYlUul9fTUhWREeSo30SHv7dkOOklNXNzZcGJoT9Qp+gzu7JL/Qlt3QAUu6Ox9YJQsilHlFWei7SzDBbFXwuiErE6lWVN68M9XQBT3vH2FzXSC3wj9Rlm4ldWQ4G0W73q8hITOh1ZARh5FBLM5+Me7xh20+my/qi4ajYeE9IZAbGLPkmh3T1723++JF9797+do3WncKVqO9oMjucpWblz66ZMmjS0d2j48VSXS/uE9nVJIWDE/fcc2SMYGLd7+3bu37uy+ePPEeyFVzDdmqURIXP/rbRxeXx8Y0Fb3Nk2M9RZ13Kc8jJzFjXTkjCTJxx4YX4R/FPkZF2FQHFYWyxxz02FoUfCbYhPn0ILQ9KExbumxGvL0KqjrkAnpoWkfluKG52fSQJMGEbJvbUxNuLZ++eVkDEPG/bl40oW1h9aS62kmhszsF8/Ir/WF3cSz1n+L187eaSnzFxZbs+GWPr2ZcKT0/Gct0k+ZBKzC91Bg/saCYDoEPiYTVjhG8moIa9dgLbCrWOs672mbSVyVbeCiGHfSbG0ZPg6mto6ZPGyk1PbSpftowbwH9GgAMhixvg3fMyMwy1ZfkGSIW9X0sbpzS2DxpclPjlL4N8NqTB4sqg4XdHtpz4CAcrrQ5h5Re3E5nY2c+isJhGsqFqazGLkkf9kBQwJURDMQtbALEWKWsrD/ZGsFVEULemYdJkQSpeewvyOeJLNWt++MT2xZEqmdctePgksVPeicUeOffqZb+TMqzb71kxuxAc57j6iVrn1005obXfzT/0ZtXTQjOMKuqaBVUn33munj5xBV3/fIvBhJftGnvgfkbPnxx18rm+Qn6wbAN22MPXy08ZfQsj9x6+LLp4e3/0bD49l9B3cFLn76uLTSt+6a7p965yOYszJmSVWgy+u54rnvS7nu3rp9Vr+N4RvYtzvCJAiFPwGYGY3ELn8/AGiXqjbI77AgbEI8Fgmk0x6nD2CRS7TinOWxuYboywE5yBMiFXCIt5+/YliwZX7J12lW/u31a0+W73u5Zd3T3tVOGdC0zl8iCSZDlvNHjtN41Sx/oGjZ1x0XRdn9Odp1r3KjY3GiBwbjG4pAP0NO7BjMH+hn9iuU/dP1icEaTlx0G8c7Ox+9YnYhfdM3td7bdcmyoIc9iSGRZbaYpVy185uZpzctvm7n96zujndGaXVcObZ01+upk5TSLhfpnLNo8BRyw7sgAQRDIXmGBukDei4srn/PeAuS2BeXpq2yF2V9+SR/+MnVFOiDvZecv03d41eUlUW9Xc4gXbyQR+bkP0TuIkwWpYhx/FrPDjCITQxhlVjaAtSAHlaGfpu5bsco7bZ71qvaN1z0152hdxNo8YdiabkPBpsSYG1VioA/SFB1Oh0AZ3HYtlLWvuKLnboOV/p7+agr9+1NPzbu7FB5nbcjoT/mIDd9af0ZBIag27OnjZ+CanoKsl/J7Ac99nL0SgHeJplTgWvbqWgUqEw47kw9xEwoHnDaMeEZNvihvVFwaBb+gs0wF1c0TN93cM3/+ig0XXzSqNfJqVzIZqjapGm2iH9PIrqoqZ/ls+lHMbi8ra2i8boOwNuVLJObO2cKm52D8cJBqjsEX1J+4lQK7O1aANeKr0c05B9bNHkb2b8J5WQlepRSs9iaojw2GELGMvnSKqVBIzf/XvPk0/ez0ZjP932RUJtFkMqqlT+ejCCWn9Lf6TolkbCMqSKg7NY1JsVekA5l3knxp9QOooPSTbeSnZAe5h9xH7icPkoeZNodNsNUq7M+q1KHOoNQpqpWdFBsDFOxOJR9A8QahtgYCwdpANKB3byAYCfIVGIhiZAS7IFobi8bqIqzPo/VxftV/I6A2DrF6B9Ta62rtYbtj4GdjRy37szqsdXYwyXEjOPyyLQ4mv+qPB1UjBGV/VFVx1Pk/Af+E9BkvqVZThSnVCiLgdBZZrADn/RNgIDGKVuEFTC68AAIM5JHOCDArcH2cujJ19mNwpV59EO6kH34sjPv000+hUpA/ph8KjQ9K/5AlWi2oAkjsHVaowIpM54D5A63OzoFjLPt0TUX+HC+AL+GLEhyTZAFkEPCWHew1ngE7H8vOptXpFop6jqwMlgzfgCn07Rd3wmz68M4X9/5pVeoFiLx47+Rdu3ZhaPbOF+//06rz56oF5dwL5GM2V5GJFaCO5uaqVQsSYVTXBJQPDrsUV9I8AjEVgXUEMEzFFKiHWTgDUxiRRmStjdQhVQuUsyj+aoyBcAgUPUI4B8whIRjggocnY1Qcc2MP2T0TSiIqi0GO1w6XiLfsjfStAPXlOINQiAVZlojhEpYZDJjjMYyPK5KCcG+2SxI5yJgfI2T0Dkb8OAc8tpueWLlyidW075r14N4wIbn6rTtmlSdC2KNGEUb+/OVlD4Brodt/KX3/dnHo0I4tV6xrn7vgyWuT2V3tl9AvV14xvCXLsHPlqv9qanEkQxs3RTsstnBBVbS0am4gEDEYzEUFlfXFzki1udghK5VlFTWh8bmohxlt9jGBwFirTTYbi70V9spOj9cvCh0bW8Mza3Js5qmXrBtWPjJsKjaaHRsebp91+0y64TRsuqRp1o43eibdsNAZG9/TTQ899BD9dFxb7qzZUP2MyXwv/fSNdde9DyGdd+rNZLQzzUDvMqxdfRn945139E8Yn9dgm739re6xm9bWY1uzBEiuaLp1Q7j62jtTWaNuGtYz1FfiTV775ALhshdbJlmbWpZfds3637g80+d3fpgMV1uDwxcsnFlcWaZm5zkc44YMbfc4PBZByHGai9v8/haTXYFhlQKUTSh1eQSo9Pnag1aP0yIZi8rcc2pHXhYy5Yy5aHU00l5tsOfVDC+Pb2ieclU0P2flA303f/3WTTeuPXrvZVb3yq3T7qJPrN/QXer8rz27YOU99/7BJQk5t7xL/7x7H/3D+9f//8R1mT73Y3W4ej25BG9cuAjy5BAqSKY8A858HnIJsTiKJ5eI+ngspPiC3kAeJgOXWAZqSMLF0iK6RIe8Wy2aMGb26CZnXlnlitVXdl86K2E2I+waTFa3P1IaWdU+xmzxjB41rACGKdbEiNmTpo+oyxLKW6Z3zpsx0mKRCsKR5NgZ48aXFBeJJmeR0XhKdTQOKc0eP2rMww899bO7N8xzqkPEnKH1M+ffsO3QojmbZ8Qtcm6uqtD/EVS7w+3yuUqzzUKRKycXCr2VeeXV4jOpjwQ5W5It1aMuGzPx+s62Km++ASFJyS+sCCerqxdMm9hYlZP9htG9fNWD9786b/LlTW4hr6QoKz2GiEFXIAYNIddh79hVbgwNMqiRUCwy5iaivseUAtlmBWapCgz+YRqmD9rTgn3gORITJpusg2SINS3zB57bMnQgpo4Mw6QbDiy5auWUiZe//yukq6ZRdZ3r75y69cq2sYteeHB7z4wqekmT1ze8qX368g6Xu9xtKYjEOxdVDvWUOIpqIj5vkXPYsBkzu7ctXzGsIR7tnL1xXsswr6el9dLJ1aFCp8NWUlYV8/pikVlXHrxnVbfYuuzyJQdumNSYN3zFrmff62mfefnGqXeu76xL5lTN6Nn+4AuL5tPftl86e3hzRbDY6bAYjeZ8zCPkLXe7W0I2e3l5dai+FqmIMzhkQtuCS0a3BgMlVrPJ46ofMbTKbvN4orWFRagDJSdNrBkRCnH+jKyIKMzuGGESHXFX1wbwrFQiS+EcJSRUgomjOO94Zp1Gwe6ptyuaPVhkZ0cymmCsgSZGXjFu7lCtt27VwgSoiACeOWMLDAbYG01KpLiu3OAJ6mdM3ZWsqK0QtIvu/3qzbKr2lLTvnD5zrz+Q1Cn927BVDas93KIVJLVkBBmPesxmrGUMq6UPWwSJAY4VYC3TWqK9nKkzCrvzxzidV+0oE1iQWwesdgmsjhgzlyjEqzCzbsRi1e0/gBKO866MXoTpLCimHHILYgXrCtQSgn7R7mD3LpBezx/qyu949nBHvmto/rDbfkL/1hoKjRwZCrXC6HmtrfNaBU9lw5DqshmpLY+C75FH6AePPkY/eOQR8KU+rKiZWVo1pFGuxoEYUb1vWCjvilfoF/QE/eKVtQWllUXrZtTNKDn03/Nks9kGDYXT69qWL2+rmVIn0jOT/vxkycz62LyYaMh3VeZ3dORXuvKHgRJqxeJbW/VzKDS8rHZIQ3B4alnXgctWHOzqOnjiYJdwb03JxOHlDUJ7qCVUnUg9Fe8srq9b+uzGKVM2/mop6n/hkb4Z66oDC43whj07Rx4/pG75HcurJ4Wa6bU5CypCsXlsfSK/Znq6RnwkjuPBjDBM7RX5loUwHDw23VzOu81hU2VPRscKRh1x/aE0ze63e2sA5t03f4w2LwZqzega+bUtW16X7kMaoc7bPX/+7nmw/D6Mlo7Os/ttIS8tm3vPnGjnj0YfPeKpqfHAx5uef3HTZdU/Ptq5a+6cnZ1/qA0dZ/FEryPbP8B5nU/KM3ybb+Lo+jrbxkF+yPZyHBB3IamOOxRkxpn9GyTW7wWSXX76Hn3P35UMwHLZ1DC6wSSr3Kx+VN/iOcrs6Kl9LAF9H/z8hR1Sqc9XKhHdrvUCcqnWgT0WByFG0WTMiduMEHUIt8Ga1Od0O6wULBTDggVWpv4u5NPtqc9hDb0dLt+d+iL1xW61lb5FD0F56lnw0V/RtyAC4+kH9CFxL/0TTIDI2W/o28t66EvQ0rOMt10ghCpzsO0uMoa3XRUFNU9iKoQKeaBrOEwcMr6F65vtb8TNyLCYcqGzMKaZcMuiBxVo+dXZjdbIHFlWrEU1rjMGWaVX5g11Z1vL8suaK4RTXtlpSa2ylcr/dFpLyz6wFouCS5RcFvr3Yp+vGEZk2wtUsmgRpbTFarVV2MyCgTYU5IqyWlkh2xxVVSV09S/tZW5zn0GRcZ4U5jnzDLtyrT5vcbDYk2PhOMX2R9h+0GDtb9BmCPnezY/0bgfHOgFnLd9TYnsdqPw5PDaPGBZ6xd5+wjRETJ7i8jylIRPW+klmLmHJCmPHOdwqZYTMRqCESyFFKBHf7GKApmAwRdg+U5Ldk8weC5+HZcSftmtm2DQza+q7f4hNeCdZTKhsmcQ6cIH8XHf3c/Qs/ZCefX716ufhjrXv3NvZee87a3fRr3buhKw/wdBO+rRKVj+vJ2LJkefji8+fXd2588RnJ3Z27qRf0dcxuUToXPqfnTAV3tPnB9aJ8L1IE957GY7arSLrVQ/rTKmL72ZqTGs+tUfS+B4m/ezUnn7siD2nCBncrmxSTKp0W53JEw3b8LAw45c+rbj+mh4vNlQ+VlhYRqFzBg9NwM5ORvu4xiniOdXrRKYcSODZqWhn2RLStLOYjCVIsbNwIOCkhD2HXkx5fl1cZChpxLrUoqasioxHxS16iZ4mqK0PowJRAnU/VFUJy1JC4RJ1xRO8DMK0KYebmya/s8bSb0AwqFij4pxQETyNVRLcDtTnDn9X5QnJGajr4H3rYpwblaQJZdwohqdhm5g+MmFPOowc1Wb6oZ7OvHtuO5vVmF+/pwGU6GnYM37Q9DVzFsh3NQWi+qY5Xx8zYaZ6tXo1tseNCAcOQB2tRYA4qAFvPt+jUyFurx+BsAt/Fsrmpk6VNzUGvTnWYcLX+4WyA/6uwIFCs7lwf+rkgQCG/cIwnspfU5pnDIWnS88dSJ3c7/cfKGptLTwglGHwoL9rYG1ynC8gJdh3KqCUZjv15W7JjOyOIM9HBEMJhdhHNGq6+9n0+oFhkLVzdd/q9Ue+PLKenQAb/LfVmSe4dHY9eze8mX64fv2AfTpdFm/pBcWRdFGoXtgtUY9NNsHfvlVmauxAngZBE1dT07fKpd+cq5VhsG2cr7cSUsFtVza2FeOJMjj6gXqIOIw4UGzpCv+mOkomIb6S+jf14vKNQKWBKO+QXKxTKaJbNdv/Z9AWNEIMqyIagXe8EZi2FUNVI8aNjgLnXYifMpyl8hL6JfKeL5dSBc4shRwYCjl+WEu3Tnrl3Zcn0lvh8kmvrFjxypQUYWauU/SlhRxbZXyTypf09CyDM3BmWU9PXyVcAT2TZ0yfTG+lW/EKL+3RXzglRDk6n1dn5ofh46uOgDcIjDWyuiOtjDNLeByCFgcE46whqEtk8N7PmSM2KK7zTYkUeWC/ckoAWMBbcucvdm2/qH3FK0lY+8fQdWfJdRpt5M268//eSG3h1YC3u257eAVvWsuaEaf2rEDIgf2eoj2nhJN0L2vTlO3e6ZPhinfhQ54DvMoauDf1Fm/4V13LeRNfWrNgJQdjEBho6b4S2P/M7IX1MwIKo15IaLSX9mqQ4CdIyBfcayxNen+R29HPz8NA+nrFhNbX29eriQl+EhPqBfcaS8PmqJaWKxbEsyjzcLFVGqJ+ziLsKutBhlWIVHJ4wPgZPveTiQ44mo49ySgg0DCB4OxPA76mg4+eQuGJEYoOIOjiX2+KqyACXjMH5w1QirxhBzGy9WrBP5CLQSW0/BD1U/8hWi5M3L9f+jE9mPoUJtL9ggPaQHCkPmXYovMFDbs2i692BN4gMxqj1Ne0PqKJuGAUBpiUGahTvdBLE+f4MeMLRu6TZAT8M3kYi0jhT8TfGQxzF5pedmJVJRLvv16lF98zkDzGdIwCW90OHIoaQfXjfMQ+6u3TaELUUo8vEGak9moLEgs0mIThBQqW3qdBL7acPetbwJ/lskdp/oS5syE2Ztx8VOQ5jPYgDCVS/E1WFegdjDc5uLY5g+a+Gp6IUO4z1aMYcwLeZEGgCnxmphyhmAWi7zm09ZMjdPfvj8I2mAYlr67qJ/Me/Jx+TA880b23G//kjLvE72HREZGsepX+lT5JLz/6BCSh6PMH5/VpPB2X7f3fADEo6ovYG07uo+JCecJ1UlyiLcgsBpZmMXgs6luVeZErZnxzunVZs8PhE76u7L68u5L+H193f4zQj8LC3LHa/LgvMbNrmPTO2AkTxp45ylcVRNmeAQ5MZp/BhtgQ1nkNQwXUXeJc3+RIhqCG6Oth0GB3sMYH1ZAgcBqleJnHFv1tkv7mpVkPbm0E1AoC0S2TmIMOHqi+JmH4S9d/MofFg2/G4i95YyWcSo8dD7U3AWoT/tjwU0IZ28h47PiSOSwCyutLaS3vPd3fivsxVWa8mPLAyzg9Liu7m7sz+bwDTkt8rXGazJ2XOIJrLLRmytRuXDcauzLXpZR2NcP2qxk2MD8lQZuypntqmmy9TJvZnUA2snUBP1HY3Mgjhbp/HIKnyrA+GjGjClHAii+wi+VccsyZSpfT5VPn7IR9Nz733I2Ys0qYNFl7DB/AXVOPrd0FWSnnc2B4jjlTMTxbwPBMPsmWEJIJH8QdMucl9KR2Uj65IEVgr9aLY4Vz1EAGuBQpwsFi48WuBvI10Q82k3GZ4pHionAQZ7CQIZhHEFd1HrMLO0w4iKwJzALi8JjKcIJxDwMTTn34y18E7ZOa0f4/PnTz6UcXrZc3DVs69i8pzfLO+KlLnljF4pRSvP8k1L1xzNP0b1X0jH3zqyDeugvsdPKlrz48Dt+3vDP215euPbKtFBR8SFNMJxGxrZLGW8OWpcb87tL1ZPjDOoG1j89EfzrFWVRP+vC9PsKd3RjSzBASBtZnKtczy9gq5/wgfQGHlN7vM6fXizCM/gu2a9QCa6UH04HuvlE4Mdgw/H33mjW718j30zLEJyLsSZ3Sry0L2VOcPvTwGpbkPG6icj7L8IW7kg1emTL3HUNVCa+QPLceEYnTsSJ3IBu8GAnLisuUdN4ZphzXmTJJ4475gqs/7f2pM2Vd/Mhc8Hi4EEK1Ecmzz8TSCPu48Bj8B2nnRuZHmRFDNKGrA/ycwMqx5zgI/A3QX6T6ZZ9OjCVOm5lE0nM9yzVK5oTKCB0j4kRlumgJ12d1cRiJNUHajsVtTNw+OWizT1UPb2xdVxV67vI9pwolwvWyHWWejYfD1Us3nNrT0srXpqaCKqf9Ye1Wxr+DbGEEA5ERbCdNRFquHEwmP207mqQN9CS8Bm1tnyaPt83e20/2yruSx/ARjKcN4GaPjuNdW2rHXiAMkIHJLpnRKPVc/4t6RWS9Qtym+Af5f+UnuKwRsPCoByQCn1PLLJjFXFTpL+THqYVaOmCWBrO4HRIX2B8UTX8H1zySWyS1EplFf8G8UGHWLGqRH++gv8B3O+BzrssnFFYPxuiYgASEiFRvCllNr8xksYDUJsHTMSxJsHRYFyMm41YCIYE/jQlsDKZ6B3wJRKwe88bEGSxyd9o+Pg8BVyhWTX+Gc5st0syzNE+QNe6STIwiq7zGSBmbAWeJoDsecx5fwG5kTfm2/ucjQZzZNShz4lwTJBl9jx3xsM03+D48SB/8vnthgEylMqE+7cLAgAN0xgP6e0K8awRuB+G2DFbnb+1iZ5CF4ZisG2T4WbeNMEMJs5718TiJObNo6dUu4qM0jvD8GX4FLsg/zASuzRcdVI4YZYownCtKYxlpmQI5K2NWwEyZqOExxfhcwQeYituv2xAydnCGM8U6FjN5Lqev4LEKCiOAIRBEfIc3iF/6cJBv+vQn/eQnn96kcODglnD9mnrzbvqvX5bSf0Ju6S8hm9FEoq97Ja3FMXxOAwBDq8Eg4IIBFJCwesz1FnDe8NZi43SHX0U5vLGqfVypDgoCVk3HLmBmGyZH8OJ2bzzsqHSlMeIc9pQPYI9ej+8rPe1JSDJ10If1/JI5HOnQ+R1lCtxfn/EqI7fgmdjWlkfl8hqBGDECFy3zLmf6JzNHpN6bKwToXIGNEMV1xy1yKMD38Qfn2bDymZgo5c4cePJFue86MKjFNP2MZbNhuUpNsdXI8gaUm/q6TY+5iY84kxBNyGrTs5nVLRCJc41F4apFIjN1+4hYX1/fd4TZo9hU0vT5fBZLi/80zjRNAdFyj7pAXUCq+M6K6ldUixpkRDFoCQTlINMf48G4HIuLcQeictwh2h1+h2rHseaT216vLmikv6tptm95Y4Sz5Y0ttqZa+rvGTwyGTxqhrrbJtuWNkdaRb9xqb6qFOhZNN3H4FU7fam+uOZdSzyA3O4E5NNfoST/RM771dcy4jGM3ucDGYEV9/rwvH4Ab+VWI+fnOaRyUC7+BkOo3n96yaYNweHwf4aHUmPHf+iAidWTL6c3jU2M2bGJX4fCGb/GH4nNypTyjVyCgstXPlrusc4eUfmEsCGGYsEkj4ezRY/XF/SaTwWx1n5srOo8y6SyRxWZEvUx0qGbceoBz8ZTsyxH965GBbxIyOK+7D4n48AwrnmTwftD+QyYtkiELm576dyB6iSkuIAa+nyCDvp/A0tLfT4jAHbwN34u5ZBDm6kbwNNalQRc7x4AAeEZfsXj+OgO6vKoixyOWv4LaFcNcjqnG84rxpH+DihPS4CoMFAm82rj0M0XzL1Gw/0UtUzy+hO1mrR+oxoXzznLhvJMym3TI1zy2MDK3C+edsExH+720V9v7rQlXz4vpSzJooWk5dl55ju/+wodx1m995ZMazFsvKOjskfP0yPPKCH93GfrONa4qB9+uZkDLfqUQjnIPqO8pH170t7ffsf/n825aUlHkLCyKjC52vmUyj5n+fXUSGhqndSdGXrR/XEFBia+k2Du0umpkg7fUaquOpH3hdZ1Xn9Xsp+K8YYYKjrknqRuHzQ0nL0jLEhpZ2hSOvESYwZ6lZcyHupk9I2MHYUzHTOz4RhgVg7AFj6DPb0HNLlzMggqjGimWeQe00/85UamlPuvgtkitYwTeybwu3I7JE6bDvO7/xPrkKtvYTgbTQFsEexnEW8CF0horv35CU/DGZ1+YcP/9E1741caK5gk4ZZeO+c1r97YMHXP33WOGttz7+ktj2Jwgl8BJdafixhWsfw3F7F8iqBbRwQzaQeGyE/Qo1Jw4Kh09cfToCag52/U1kK/lhm3IoRu2QQO8to2+Rl/bBq/RshaJtDCdjOunaTtQEdv9MQpRFLSoxX3LgTjKtTREubBJNxIpiCqsnX0oqges7lEm33UTrcxhhFnz8IRU9lwKbtMfMPp+ux6lP1wP2w+Xn/p3JWvkO8os+4EyLSj+g+oPldoHL8+lOw50/lDJOH1e7mSJGIqm56iMcgzLNRkF5rRgCqIIY/Y0k8CtngyARYJyaEfbc0v6OR7LCWYdpb18CrMPyujxHW0Tqabfp/0ldFzP4z7Vg3OVL8iLfMf752wPIuuTjCzycgdl0Weq5w4WHD0kPsnHrk4mV48dt6Il3ODzNYRbVozjMcB7SsaVxzRSdogDoUEYx/lRNrPSQBrEeYnMv9kT5Fv1wC0jDLgljS2shmHdKdLtDxcxNS/FxaPE51EfSW6Nr1lTPvfiem0wd+K2hguHlDkEurFzZE+Uf1qncEW4j583nwb76c1slxR5h3TeGGq6J6rG6SbTNwQiz8I2FBAn99f1cJRUVBt3QfF5mCmOQWglFOlBH8qkZV+uXr1w6sqFf/0NnQbk+iVz6uouXbt96YK3FG3smHuW3ZinFt20+r6nhV8NH9daWkpb6PFJU28jaTs6kTP7wz4xrHriYYsv7pFna19oFTRRwS6oXnKFikvOtM1b49wim2EQ6+eMYwmYgswRk7MLOJCWxzhxe/s5Vko6Xel7U0j0phaAm00QI/ezZv3KeIOR5HB/ZxuOIMp+i8ljYR8asNk2BEC3DKt+I6BKr+nKDWjf8DHTzS2gm5i1bzROhPFeThNjiqVnDC9shEHjLErjagYztmnny0kz+Y/zZZgjqKgjuLtlMF4j5EONMEJ1jIAyCNRAvhQcAY54cIQQCKoO/MsXWSK8RVkXR3jmCeP5QhnGYaAM8iGuloEazzcEK/HGEccMJYdaIyvMXdNRI48QkDiPEPBtScWkIuboyMdZd6GIzBPFLNnkEsjLkGhT8n1FhcMiFUEAWXbkWnL9geJRzsJch5xX6nCGC8XcGkOhrSJ/Yo9k9Ug2Q/OkZqUgJ2R3j3FdtuidJwO1bl+NSynJrk2Wx3ODxV6Lx2MszbYmY0PlvOxQgbMsz+fMcjsNhaFgnVLamD8kWIUKowEMcpYMTtc1726SsrJHubPUPIMh35rbHBTyLaPrvEaDx1BTWyY4Suoryk2CRxr6LcH9L0mxIMPum/zHp7LCRQaLTSyNueOq2ZdndfogS/VnNcdkVbD7so0VTtHuNNqz1ycFk5wlGLN8pc0em9VkMIH/ZsgxGBTVLDrkItvQfHOJN+AwmbPiVos9x1SgWixyvsliLXQ2O2srKt2uSqfRPKW2oNWUZcpxlIcWz/gJ7X+mPOeWEa3DSgqiLXK2Uc01Fxepdq9FrjMWZEuWxpGjyzplh8mpcBm6V3SrC6SMDfJbPH6Az/t+fcMNv75BFAdfpJM38Ougv7SfJLO79DJUxzlvIF9rYq84YK/BGwNbKyRqArEXUb8vwd6REnwvC+ORa/BYA+lLcDtOIr3PJXD+wqL1PAfbACpILRmmf6+sey4hJ/Po3y2nv5YxIWOLDYd0VHl6wUtpYodI08i/Ru4njWOZLtwYuPqmrh083KfvRQrJtMPI2LXeB5jc6NIkn3fdGIZ8oY5WB7WP29H1gHftWIyw87QHMoRZGdAtzv/2PS1LMps7me+4gejSpI8wBV5EAU55jMhAgmlOeFCSCQHnYXqY41ucY4BGcvX9EKOIOjEEWyS+Y+rzBiEaDCj5oDBfLodubiyDcyYaAp9igf/0+8EP3MtP/G0M2xGjBxPOTv9Ef5c/X9Dy/RjKdya0p6KBQNSvatSBtDPX3xWAclG2jZu+8QyNTkx2xaBNSzjzMbH+VheGOp2J1L/wJX+UkMHfEo4mE0k7mUeW8D2jtE9gC8SZU6DHNBDDfGzZ8A6KiHLlf2C0mdUHrxlQH/D8ueCqDgx1Mpoe9rGN/Sjx0kG2m5MOMiealD4N+tJq2vmX+fq484nwAJKqD9L3Y9Z5wZeMPpCeJ3j7wJ5TkJk2OJPoB6f2pMXKmeQgZTiZmTsC9skpNaH08v00ou/Lh42CiGzXwbZHM2tWfsS3plXMFmh3v84k6fH/Hsc9A/Cnb0TJPdEWoe+kwGcPqoOzerYxkxi7F36W3sETYBWuqZ/imvLwvRYH9w6Iu8BhYh7XgzrZFrb5TC2Q6WaZ3rGMPkCX0AeW3TH2lR5NS/edpvW8Qn+kd9OROY/+9s1H5rRdYoF/aQ+c64UHNJptWSqm0o0W0nOCkMk4H3SLVyX75tdcCqytwyESZFt85UFlIMIcDwR9ujUsEg+YeC3xoUtwtwjML47dFah2m98bCOreoI48QeWbBG/neucuCkQC18+lX+28h/5rzg14s3iOJ+9t9rS39D68XfrY5yB9/thSDO4qSWk7U8Pn/mNT5+M/aarY8mu+qTCybRnt38rzS5x49MpbNl/52HH9bivAsgmtmGTqgiMg6HHXY1aY5fX6He0/0tmh/WLzwpXhzsTcWyZnbF3aoL1swZNGC1nTTXps3TOeInHGwMaQMgSAAQ7AuI09bPJWAclCLcHqUO3EIb9+371H6eX0SfrXV1cJpOv5S6D+sBgOU7LqVSiBabDt6Ocnnn+a/m06r8OrOBca+f8FUcr9zjhX5CTaGg8rAjOvBoRg2AXumDR1z5o1UyJzws/2Wr98up88/aW11/EOFB8XtTVTBDJlTXhOhJKpBYfoF0PoF1AwBAoObT50KO3TLGJLB++pySS9p3buO2pHxoLDDZ+mwWE13SeDzpxAZc6MOn1XPKTfy+gJvL+zM9+Z6T/mLsDwltnSGbHWQ6y/+TduhNfNyHbRQPTIoh//PCIKMe654JHIOroVqtahHh25Eqro1nXHhMdT77yTOpE68U7qHeFx+WN6zx/onvffh4V/EFENodekboRb6DrhGrgx8917poyMP4SnGFCFH5TJsWOo7g96Mb0ZN7h++YPfFnklL8zjWKaK386MVrD6wbK07x7X1ezI8CuZ/cmIs4vtZnOc9nBvczbv1EAQYZk9hfq43cFs1gof036udnWxweCBueOHzLphj77r20f0O8q4MQcyLpaBpP/TkKZrF3Xq8ZSH4cLv9arJBLLoO7029Z3hgId9i8x2j+3hWJhv3NnjulJSnv5M2Wp31PNHkqPebhl4xp+EM0/s4njohol/27r1b3Q/vZ3uZyGxy+LKN+bn/Z3+NXb1xNEmk6nI6cz95SU//uKiXK2kPLiJPvPIuFunjA6HyhSn0vPLn0OgK8epuWrCd9Dr3+l7JBEO5Lvlx359GGZfXaRqg7OGiby4s8vykRcX5qlbTWaTIbvYbHPlOpsacj6qcTVYJ8/GEk3NJZGs3GDbqFxwRvxh57xZYduYQDg3MCWZc15fidybtIjNdh//TwL4ZrzoyzARWxxn7y6hZFffxcpwWk3v/+yvlChLzpyFiz+Fx+THaDUcYwccP/s8HcUIiPR6apQ45+yOY8c4DqVtSen95cHaJhPPusJznmcmV3XYyuQx/Pz/AAfdhq542o2QsWrDMBCGfyVOSjOUDn4AdSlJiY1sMCTZ0hQHQqcM6RyMahsSKVj2EChd+wgd+wZ9s7xDz4pKl0IrkO7T3a+73wZwhU8wnNcNHhwzDPDiuIMLvDvu4hYnxx4G7M5xD9fsyXGf8q+kZN4l3e7tq5YZfDw77tDcN8ddPOLDsQef+Y574Cxx3Kd8gQU0DjiiQokcBWpwDJFhRDGGQIQEY+IV6SQU0RwGezR0GpvBQh+OVZkXNR9mIx6LKBnzlZaKz82+MUaSZGmV0k7JqJOit1hKJasy04p4TcWcmu6wJRHWMm92W4LUimsbK1JIayskYxwz2r81PlciTBBgSvv7M5BqVae6yiWPQ8Fn/McAXaJJMA1a8/9wu7FFQ2Vtf4mwE0IbW2fYyMqUWnEholAIwf/u+QXtVlqxAAAAeNpt0meTFVUUheH7DhkJEgQJgpIFhdvn7NM9gxKGCZKzKGZyUHJGySAgSq7i5wrFfYdPdFXX+tRP9V61Wl2tt8//rdbh1vueV29eWl2tYXQxjOGMYCSjGM0YxvIB4xjPBCbyIZOYzBSm8hHTmM7HzGAms5jNJ8xhLp/yGfOYzwIWsojFLOFzlrKML/iS5aygTUUiExRqGrrpYSVf8TWrWM0a1tLLOvroZ4BBvmE9G9jIJjazha1sYzs72MkudvMte/iO79nLD/zIT/zML/zKb+xjPwc4yCEOc4SjHOM4v/MHJzjJKU5zhrOc4zwXuMglLnOFq/zJX1zjOje4yS1uc4e73ONv7vOAh/zDI/7lPx7zhKc84zkveDnqwsljg1W7bVZmMrMZZjFrszG7zZ63mfSSXtJLekkv6SW9pJf00pBX6VV6lV6lV+lVepVepVfpVXpJL+klvaSX9JJe6njZu7J3Ze/K3pW9K3tXbg9915id/wid0Amd0Amd0Amd0Il3TueesJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn0h6SS/pZb2sl/WyXtbLelkv62W9rBd6oRd6oRd6oRd6oRd6oVf0il7RK3pFr+gVvaJX9IperVfr1Xq1Xq1X69V6tV6tV+s1eo1eo9foNXqNXtPxijsr7qy4s+LOijsr7qy0h75rzG6zx+w115l9Zr85YA520l0Wd1ncZXGXxV0Wd1ncZama1x+EcTsAAAAB//8AAnjaY2BgYGQAgosrjpwF0ZcUq9bCaABTzgdAAAA=") format("woff"),
+ url("./Genericons.ttf") format("truetype"),
+ url("./Genericons.svg#Genericons") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ @font-face {
+ font-family: "Genericons";
+ src: url("./Genericons.svg#Genericons") format("svg");
+ }
+}
+
+
+/**
+ * All Genericons
+ */
+
+.genericon {
+ font-size: 16px;
+ vertical-align: top;
+ text-align: center;
+ -moz-transition: color .1s ease-in 0;
+ -webkit-transition: color .1s ease-in 0;
+ display: inline-block;
+ font-family: "Genericons";
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ line-height: 1;
+ text-decoration: inherit;
+ text-transform: none;
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+ speak: none;
+}
+
+
+/**
+ * Helper classes
+ */
+
+.genericon-rotate-90 {
+ -webkit-transform: rotate(90deg);
+ -moz-transform: rotate(90deg);
+ -ms-transform: rotate(90deg);
+ -o-transform: rotate(90deg);
+ transform: rotate(90deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
+}
+
+.genericon-rotate-180 {
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+}
+
+.genericon-rotate-270 {
+ -webkit-transform: rotate(270deg);
+ -moz-transform: rotate(270deg);
+ -ms-transform: rotate(270deg);
+ -o-transform: rotate(270deg);
+ transform: rotate(270deg);
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
+}
+
+.genericon-flip-horizontal {
+ -webkit-transform: scale(-1, 1);
+ -moz-transform: scale(-1, 1);
+ -ms-transform: scale(-1, 1);
+ -o-transform: scale(-1, 1);
+ transform: scale(-1, 1);
+}
+
+.genericon-flip-vertical {
+ -webkit-transform: scale(1, -1);
+ -moz-transform: scale(1, -1);
+ -ms-transform: scale(1, -1);
+ -o-transform: scale(1, -1);
+ transform: scale(1, -1);
+}
+
+
+/**
+ * Individual icons
+ */
+
+.genericon-404:before { content: "\f423"; }
+.genericon-activity:before { content: "\f508"; }
+.genericon-anchor:before { content: "\f509"; }
+.genericon-aside:before { content: "\f101"; }
+.genericon-attachment:before { content: "\f416"; }
+.genericon-audio:before { content: "\f109"; }
+.genericon-bold:before { content: "\f471"; }
+.genericon-book:before { content: "\f444"; }
+.genericon-bug:before { content: "\f50a"; }
+.genericon-cart:before { content: "\f447"; }
+.genericon-category:before { content: "\f301"; }
+.genericon-chat:before { content: "\f108"; }
+.genericon-checkmark:before { content: "\f418"; }
+.genericon-close:before { content: "\f405"; }
+.genericon-close-alt:before { content: "\f406"; }
+.genericon-cloud:before { content: "\f426"; }
+.genericon-cloud-download:before { content: "\f440"; }
+.genericon-cloud-upload:before { content: "\f441"; }
+.genericon-code:before { content: "\f462"; }
+.genericon-codepen:before { content: "\f216"; }
+.genericon-cog:before { content: "\f445"; }
+.genericon-collapse:before { content: "\f432"; }
+.genericon-comment:before { content: "\f300"; }
+.genericon-day:before { content: "\f305"; }
+.genericon-digg:before { content: "\f221"; }
+.genericon-document:before { content: "\f443"; }
+.genericon-dot:before { content: "\f428"; }
+.genericon-downarrow:before { content: "\f502"; }
+.genericon-download:before { content: "\f50b"; }
+.genericon-draggable:before { content: "\f436"; }
+.genericon-dribbble:before { content: "\f201"; }
+.genericon-dropbox:before { content: "\f225"; }
+.genericon-dropdown:before { content: "\f433"; }
+.genericon-dropdown-left:before { content: "\f434"; }
+.genericon-edit:before { content: "\f411"; }
+.genericon-ellipsis:before { content: "\f476"; }
+.genericon-expand:before { content: "\f431"; }
+.genericon-external:before { content: "\f442"; }
+.genericon-facebook:before { content: "\f203"; }
+.genericon-facebook-alt:before { content: "\f204"; }
+.genericon-fastforward:before { content: "\f458"; }
+.genericon-feed:before { content: "\f413"; }
+.genericon-flag:before { content: "\f468"; }
+.genericon-flickr:before { content: "\f211"; }
+.genericon-foursquare:before { content: "\f226"; }
+.genericon-fullscreen:before { content: "\f474"; }
+.genericon-gallery:before { content: "\f103"; }
+.genericon-github:before { content: "\f200"; }
+.genericon-googleplus:before { content: "\f206"; }
+.genericon-googleplus-alt:before { content: "\f218"; }
+.genericon-handset:before { content: "\f50c"; }
+.genericon-heart:before { content: "\f461"; }
+.genericon-help:before { content: "\f457"; }
+.genericon-hide:before { content: "\f404"; }
+.genericon-hierarchy:before { content: "\f505"; }
+.genericon-home:before { content: "\f409"; }
+.genericon-image:before { content: "\f102"; }
+.genericon-info:before { content: "\f455"; }
+.genericon-instagram:before { content: "\f215"; }
+.genericon-italic:before { content: "\f472"; }
+.genericon-key:before { content: "\f427"; }
+.genericon-leftarrow:before { content: "\f503"; }
+.genericon-link:before { content: "\f107"; }
+.genericon-linkedin:before { content: "\f207"; }
+.genericon-linkedin-alt:before { content: "\f208"; }
+.genericon-location:before { content: "\f417"; }
+.genericon-lock:before { content: "\f470"; }
+.genericon-mail:before { content: "\f410"; }
+.genericon-maximize:before { content: "\f422"; }
+.genericon-menu:before { content: "\f419"; }
+.genericon-microphone:before { content: "\f50d"; }
+.genericon-minimize:before { content: "\f421"; }
+.genericon-minus:before { content: "\f50e"; }
+.genericon-month:before { content: "\f307"; }
+.genericon-move:before { content: "\f50f"; }
+.genericon-next:before { content: "\f429"; }
+.genericon-notice:before { content: "\f456"; }
+.genericon-paintbrush:before { content: "\f506"; }
+.genericon-path:before { content: "\f219"; }
+.genericon-pause:before { content: "\f448"; }
+.genericon-phone:before { content: "\f437"; }
+.genericon-picture:before { content: "\f473"; }
+.genericon-pinned:before { content: "\f308"; }
+.genericon-pinterest:before { content: "\f209"; }
+.genericon-pinterest-alt:before { content: "\f210"; }
+.genericon-play:before { content: "\f452"; }
+.genericon-plugin:before { content: "\f439"; }
+.genericon-plus:before { content: "\f510"; }
+.genericon-pocket:before { content: "\f224"; }
+.genericon-polldaddy:before { content: "\f217"; }
+.genericon-portfolio:before { content: "\f460"; }
+.genericon-previous:before { content: "\f430"; }
+.genericon-print:before { content: "\f469"; }
+.genericon-quote:before { content: "\f106"; }
+.genericon-rating-empty:before { content: "\f511"; }
+.genericon-rating-full:before { content: "\f512"; }
+.genericon-rating-half:before { content: "\f513"; }
+.genericon-reddit:before { content: "\f222"; }
+.genericon-refresh:before { content: "\f420"; }
+.genericon-reply:before { content: "\f412"; }
+.genericon-reply-alt:before { content: "\f466"; }
+.genericon-reply-single:before { content: "\f467"; }
+.genericon-rewind:before { content: "\f459"; }
+.genericon-rightarrow:before { content: "\f501"; }
+.genericon-search:before { content: "\f400"; }
+.genericon-send-to-phone:before { content: "\f438"; }
+.genericon-send-to-tablet:before { content: "\f454"; }
+.genericon-share:before { content: "\f415"; }
+.genericon-show:before { content: "\f403"; }
+.genericon-shuffle:before { content: "\f514"; }
+.genericon-sitemap:before { content: "\f507"; }
+.genericon-skip-ahead:before { content: "\f451"; }
+.genericon-skip-back:before { content: "\f450"; }
+.genericon-skype:before { content: "\f220"; }
+.genericon-spam:before { content: "\f424"; }
+.genericon-spotify:before { content: "\f515"; }
+.genericon-standard:before { content: "\f100"; }
+.genericon-star:before { content: "\f408"; }
+.genericon-status:before { content: "\f105"; }
+.genericon-stop:before { content: "\f449"; }
+.genericon-stumbleupon:before { content: "\f223"; }
+.genericon-subscribe:before { content: "\f463"; }
+.genericon-subscribed:before { content: "\f465"; }
+.genericon-summary:before { content: "\f425"; }
+.genericon-tablet:before { content: "\f453"; }
+.genericon-tag:before { content: "\f302"; }
+.genericon-time:before { content: "\f303"; }
+.genericon-top:before { content: "\f435"; }
+.genericon-trash:before { content: "\f407"; }
+.genericon-tumblr:before { content: "\f214"; }
+.genericon-twitch:before { content: "\f516"; }
+.genericon-twitter:before { content: "\f202"; }
+.genericon-unapprove:before { content: "\f446"; }
+.genericon-unsubscribe:before { content: "\f464"; }
+.genericon-unzoom:before { content: "\f401"; }
+.genericon-uparrow:before { content: "\f500"; }
+.genericon-user:before { content: "\f304"; }
+.genericon-video:before { content: "\f104"; }
+.genericon-videocamera:before { content: "\f517"; }
+.genericon-vimeo:before { content: "\f212"; }
+.genericon-warning:before { content: "\f414"; }
+.genericon-website:before { content: "\f475"; }
+.genericon-week:before { content: "\f306"; }
+.genericon-wordpress:before { content: "\f205"; }
+.genericon-xpost:before { content: "\f504"; }
+.genericon-youtube:before { content: "\f213"; }
+.genericon-zoom:before { content: "\f402"; }
+
+
+
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.min.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.min.css
new file mode 100644
index 00000000..cc2d6b98
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/css/types/genericons.min.css
@@ -0,0 +1 @@
+@font-face{font-family:Genericons;src:url(./Genericons.eot?) format("embedded-opentype");font-weight:400;font-style:normal}@font-face{font-family:Genericons;src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAADakAA0AAAAAVqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAA2iAAAABoAAAAcdeu6KE9TLzIAAAGgAAAARQAAAGBkLHXFY21hcAAAAogAAACWAAABsqlys6FjdnQgAAADIAAAAAQAAAAEAEQFEWdhc3AAADaAAAAACAAAAAj//wADZ2x5ZgAABFQAAC7AAABIkKrsSc5oZWFkAAABMAAAAC8AAAA2C2BCV2hoZWEAAAFgAAAAHQAAACQQuAgGaG10eAAAAegAAACfAAABOFjwU3Jsb2NhAAADJAAAATAAAAEwy4vdrm1heHAAAAGAAAAAIAAAACAA6QEZbmFtZQAAMxQAAAE5AAACN1KGf59wb3N0AAA0UAAAAjAAAAXo9iKXv3jaY2BkYGAAYqUtWvLx/DZfGbg5GEDgkmLVWhj9/ycDAwcbWJyDgQlEAQABJgkgAHjaY2BkYOBgAIIdHAz/fwLZbAyMDKiAFQBE7gLWAAAAAAEAAACXAOgAEAAAAAAAAgAAAAEAAQAAAEAALgAAAAB42mNgYf/MOIGBlYGB1Zh1JgMDoxyEZr7OkMYkxMDAxMDKzAADjAIMCBCQ5prC0MCg8FWcA8TdwQFVg6REgYERAPvTCMQAAAB42i1PsRXCUAg8SAprl7FN4QZqb2WZGRjAIVLrHj4be4ews7OJHAd54cMBd+Af7JHmt3RPYAOHAYFweFhmYE4jlj+uVb8nshCzd/qVeNUCLysG8lgwrojfSW/pcTK6o7rWX82En6HJwIEv+wbi28IwpndxRu/JaJGStHRDq5EB+OKCNumZLlSVl2TnOFVtl9nR5t7woR0QzVT+D7cKLeIAeNpjYGBgZoBgGQZGBhBYA+QxgvksDBOAtAIQsoDoj5yfOD9JflL7zPGF84vkF80vll88v0R+yfxS9lX8/3+wCoZPDJ8EPil8ZvjC8EXgi8IXgy8OXwK+JHwp+Mrw////x/wsfHx8HHxMvJo8Rjw6PGo8CjxSPCI8fDwc3PVQ2/ECRjYGuDJGJiDBhK4A4pXhDABtHClYAAAARAURAAAALAAsACwALABaAIQAzADyAQABHAFGAZQBzgIIArIDTAOkA+AEEgTCBRYFYgW+BjAGwgbkByQHSAeCB+AI2Ao4CowLGgvQDBwM6g08DX4Nug4kDkYOYg6ADsoO7A8yD4gP8hAwEGYQpBDuEUgRshHUEfYSQBJeEnoSlhLEEtwTIBNYE6oT6hQaFC4UShSQFJ4UtBTyFSAVjBW4FegV+hYUFiwWQBZWFmQWchaIFuYXFhdUF4gXyhgEGCwYThh8GNYZEhlCGVgZZhl8GZIZoBnQGhIaShp8GtIa6Br+GzAbVBt+G8Ib/Bw6HGgciBy8HOwdHh1WHXAdmB3eHvYfIB8uHzofSB9WH6of4CA4IMghACFCIcQh4CIGIjoiSCJ8IpYiyCLmIxAjWiPwJCQkSHja1Xx5YFTVvf/53nUm++zJJJnMkpkJJJkss5GFMIQ9w04IS0BZRSJLMIIo1l4XFETQFkVFBKwVrbuWpRaXPOtalZaCPKu1D2yf28NX21qfQubk9z3nzoSAS//+Mbn3nnvuuWc/n+/n+z3fCxHIaEKEJfJMIhKVhJ4GUtP8jCqRz+ufVuQ/NT8jChgkT4ssWmbRz6gK9DU/Ayw+bPKY/B6TZ7TgpuVwN71Unnnm0dHS24QQRSACUYis8XyzST6xEAch4LF5ZJsnKkc9NsDDj2ETXgUikT4iaClNJEBSGoZIP74qa+l//YRfKB5EAEyj4g/ztWBZbslcIEjucqHATOpjkYBXsYo18DNYeOQI3UMvonuOHIHXj+/YcXyHSs7FLGQp+o7sYA8IFq+BpmqKhtk6SDEZinWVWfMsHlLfIkRCgjdPsLpAtMlRUu8CmzVP8HlDEInJmkC+wcbihT54cN/6cePW79Mv/f1E+MUT2zvCM68cOWt7Rwc2pk8TNQ3IWW0gEbuI3yxI7KW9HdtnjbxyZrhj+xPbWX0EYhjcf9h3Jg9gldjBfhLm1af1ERF7BTAEmoxngQDeU35mB/YPsDiFtU0gxChgX2tn8S6FP3zG38O+zMWEVkU1yaYQRCMxt13WblvTT9bcdgpaTsnahlcqUp9owt0Vr2zYc+oUHwN8S2FjwMYV62PNA5+pPhaFc0EP4JhuPr2la4eQCVCsNRvnLac3A9nRNShIBFZPXpciEmHjareZsEbRWNTEBhVvHDasmyniwP7HJ+4AhlsgbmOP7PUsWVA8DFmHuzoSa3avSXR09XZ0HaZfHa7raOARKjm8kWoLdwfuamwHbcqaNVOo1t54V2D3QtA2nsQL1TYePrwRtMTaWUWYhvI0gGlYz5FeldWtgPiwvfW8bpVgAk/cwxqtR/hwhHxeVq9YWNG6duzo0miCHtBgy55TlN/jbYIHFGwyi6IJ6NVO7RG0c7c7ugBDRITMuMlYqovNAFYeuNg4BWPRSBCDBRhsEaKRQJCl5mOvSfmxpqbY3GQSCmYvXjy7s6bVP2WcjI/P4iEUxG7ddWt0brKrC5/P+Yz2fTans2bNjWMvPTwOi8B2Vhtw5pEr+cpyCWabVVAkVQngpGDFtChYcIsQCIYgT1ADQUUNifmQB7g4HIrN6pIdiponhCAYkoJDMd7ucEkOlxK32q02qxIMlAewtuYWQVwLdsg6+fyNbcufpfRunw+CruicxZMm1JYsV4zGfIuUV9+8OH7VzTdfFV80IpSVVZBvMErLS2rHT140JxrJtYfGjRjrFIyl3liplFNkNDlFY6nTmwuKwx0fu6gZfL67aOrZ5W03Pn/SQNiZfrXlIfr62RfrVXeh9JvpoxY4FUt5/eRFm2bsvTy/YvzFdSDK5jq/F8DrrzMpglAxtSFekt2zZ/rmRZPr/WYl1JmVJxdEq6VcX3GhoGY7zaAUuoZ5pNwhrqF5WabyKXVZhW4l/MJZaHhoC28cdiIDKkJ4nxqIiZQittSTBJlKiL8+LogKUe3+mDleLrvAjLhidsRIPBDMAda9LsERkxwCsETlccHiVXx2S4sUD1SBWyIIewRxjzDgk8iBw54n/0w3db0rjt/1ViE9TY/nNXaeue+KFT+Cxz4uSNCP6Bp5+biD/9dsLw0qj8DEq51nG1+if695Cb68Zevjbs19yW+VvZO2LB9yLT1Er4JdsAEsP/85/ZxupEvw+PznPweLNhWq4MY2evS13r0roL03FCq+m/5W2Jx4iP5u/dsQm1SrddTDuw0Xd7lKw+05HqUYSuGfM+nhE/bxIXBCrGAf3Sc0ultay6/9qXZB5lggL5R1FyAeVyEef0Aa8EZR7Qi4kuRz++3helzyOL0wgJfhOL8YXsXtkgNnaIsQrrc7YvE8UGOqllwpVM/Vnvo9pdvoEdpfVTXzgZ+MuPJ5n99dV/vjhyfPTs6uvwVu+TCrcfGm5OQt4R+tsLY3rFJquycX25Yff/vwfT0jH5QDY+vEbavV3KI3b5QrxfqfXbS445E3s4dUtm1a3Dg8XpRILPfm6vUlKD9UjQQH0MGHKG3xDEcZEXbEAz4UIKUIiyg0zwMI+hHk5dCPKlv3yZOWX/TT2VWUpqrYAxUR4SxB6HwNpN6c5jj8Iyt28drRp2lfqmFHl4xPOLZjufLHWK6b4YPIBAMrI9IiYU+Ugejl5YrSbpiQT1+lvX/+s6N6/EXXtsW7nE51/pKKiNMofU2P9h0SJ0ANCJEFs8bHShVRpB+Z/NVeUTASRJ9M2yyIzB6yhKzi2GA3s0HxeXFFF5hjgDMXFKjHuZsNdgtYYvEWMRphQGBA6AjXOwLlPq+kqPXh+tgIiNkVVVHBIiKOxBz2c3F+HGpVjJmjEbENVsDEL7aN7Nn38idXH6T7v9i27Qv6pzNv0x+PFQO3XC8JX/+j+y/gmypIBXkW1VFoBYdslvMkVZjcCMZV9NN7b6H9R8YXF/lX+Lw2S561qhb8T13bbs23WjdOCVzm82GkrVLwycO/OvSeqmHu+w9e/cnL+3pGbvsCJvLSU3mn6YYlUul9fTUhWREeSo30SHv7dkOOklNXNzZcGJoT9Qp+gzu7JL/Qlt3QAUu6Ox9YJQsilHlFWei7SzDBbFXwuiErE6lWVN68M9XQBT3vH2FzXSC3wj9Rlm4ldWQ4G0W73q8hITOh1ZARh5FBLM5+Me7xh20+my/qi4ajYeE9IZAbGLPkmh3T1723++JF9797+do3WncKVqO9oMjucpWblz66ZMmjS0d2j48VSXS/uE9nVJIWDE/fcc2SMYGLd7+3bu37uy+ePPEeyFVzDdmqURIXP/rbRxeXx8Y0Fb3Nk2M9RZ13Kc8jJzFjXTkjCTJxx4YX4R/FPkZF2FQHFYWyxxz02FoUfCbYhPn0ILQ9KExbumxGvL0KqjrkAnpoWkfluKG52fSQJMGEbJvbUxNuLZ++eVkDEPG/bl40oW1h9aS62kmhszsF8/Ir/WF3cSz1n+L187eaSnzFxZbs+GWPr2ZcKT0/Gct0k+ZBKzC91Bg/saCYDoEPiYTVjhG8moIa9dgLbCrWOs672mbSVyVbeCiGHfSbG0ZPg6mto6ZPGyk1PbSpftowbwH9GgAMhixvg3fMyMwy1ZfkGSIW9X0sbpzS2DxpclPjlL4N8NqTB4sqg4XdHtpz4CAcrrQ5h5Re3E5nY2c+isJhGsqFqazGLkkf9kBQwJURDMQtbALEWKWsrD/ZGsFVEULemYdJkQSpeewvyOeJLNWt++MT2xZEqmdctePgksVPeicUeOffqZb+TMqzb71kxuxAc57j6iVrn1005obXfzT/0ZtXTQjOMKuqaBVUn33munj5xBV3/fIvBhJftGnvgfkbPnxx18rm+Qn6wbAN22MPXy08ZfQsj9x6+LLp4e3/0bD49l9B3cFLn76uLTSt+6a7p965yOYszJmSVWgy+u54rnvS7nu3rp9Vr+N4RvYtzvCJAiFPwGYGY3ELn8/AGiXqjbI77AgbEI8Fgmk0x6nD2CRS7TinOWxuYboywE5yBMiFXCIt5+/YliwZX7J12lW/u31a0+W73u5Zd3T3tVOGdC0zl8iCSZDlvNHjtN41Sx/oGjZ1x0XRdn9Odp1r3KjY3GiBwbjG4pAP0NO7BjMH+hn9iuU/dP1icEaTlx0G8c7Ox+9YnYhfdM3td7bdcmyoIc9iSGRZbaYpVy185uZpzctvm7n96zujndGaXVcObZ01+upk5TSLhfpnLNo8BRyw7sgAQRDIXmGBukDei4srn/PeAuS2BeXpq2yF2V9+SR/+MnVFOiDvZecv03d41eUlUW9Xc4gXbyQR+bkP0TuIkwWpYhx/FrPDjCITQxhlVjaAtSAHlaGfpu5bsco7bZ71qvaN1z0152hdxNo8YdiabkPBpsSYG1VioA/SFB1Oh0AZ3HYtlLWvuKLnboOV/p7+agr9+1NPzbu7FB5nbcjoT/mIDd9af0ZBIag27OnjZ+CanoKsl/J7Ac99nL0SgHeJplTgWvbqWgUqEw47kw9xEwoHnDaMeEZNvihvVFwaBb+gs0wF1c0TN93cM3/+ig0XXzSqNfJqVzIZqjapGm2iH9PIrqoqZ/ls+lHMbi8ra2i8boOwNuVLJObO2cKm52D8cJBqjsEX1J+4lQK7O1aANeKr0c05B9bNHkb2b8J5WQlepRSs9iaojw2GELGMvnSKqVBIzf/XvPk0/ez0ZjP932RUJtFkMqqlT+ejCCWn9Lf6TolkbCMqSKg7NY1JsVekA5l3knxp9QOooPSTbeSnZAe5h9xH7icPkoeZNodNsNUq7M+q1KHOoNQpqpWdFBsDFOxOJR9A8QahtgYCwdpANKB3byAYCfIVGIhiZAS7IFobi8bqIqzPo/VxftV/I6A2DrF6B9Ta62rtYbtj4GdjRy37szqsdXYwyXEjOPyyLQ4mv+qPB1UjBGV/VFVx1Pk/Af+E9BkvqVZThSnVCiLgdBZZrADn/RNgIDGKVuEFTC68AAIM5JHOCDArcH2cujJ19mNwpV59EO6kH34sjPv000+hUpA/ph8KjQ9K/5AlWi2oAkjsHVaowIpM54D5A63OzoFjLPt0TUX+HC+AL+GLEhyTZAFkEPCWHew1ngE7H8vOptXpFop6jqwMlgzfgCn07Rd3wmz68M4X9/5pVeoFiLx47+Rdu3ZhaPbOF+//06rz56oF5dwL5GM2V5GJFaCO5uaqVQsSYVTXBJQPDrsUV9I8AjEVgXUEMEzFFKiHWTgDUxiRRmStjdQhVQuUsyj+aoyBcAgUPUI4B8whIRjggocnY1Qcc2MP2T0TSiIqi0GO1w6XiLfsjfStAPXlOINQiAVZlojhEpYZDJjjMYyPK5KCcG+2SxI5yJgfI2T0Dkb8OAc8tpueWLlyidW075r14N4wIbn6rTtmlSdC2KNGEUb+/OVlD4Brodt/KX3/dnHo0I4tV6xrn7vgyWuT2V3tl9AvV14xvCXLsHPlqv9qanEkQxs3RTsstnBBVbS0am4gEDEYzEUFlfXFzki1udghK5VlFTWh8bmohxlt9jGBwFirTTYbi70V9spOj9cvCh0bW8Mza3Js5qmXrBtWPjJsKjaaHRsebp91+0y64TRsuqRp1o43eibdsNAZG9/TTQ899BD9dFxb7qzZUP2MyXwv/fSNdde9DyGdd+rNZLQzzUDvMqxdfRn945139E8Yn9dgm739re6xm9bWY1uzBEiuaLp1Q7j62jtTWaNuGtYz1FfiTV775ALhshdbJlmbWpZfds3637g80+d3fpgMV1uDwxcsnFlcWaZm5zkc44YMbfc4PBZByHGai9v8/haTXYFhlQKUTSh1eQSo9Pnag1aP0yIZi8rcc2pHXhYy5Yy5aHU00l5tsOfVDC+Pb2ieclU0P2flA303f/3WTTeuPXrvZVb3yq3T7qJPrN/QXer8rz27YOU99/7BJQk5t7xL/7x7H/3D+9f//8R1mT73Y3W4ej25BG9cuAjy5BAqSKY8A858HnIJsTiKJ5eI+ngspPiC3kAeJgOXWAZqSMLF0iK6RIe8Wy2aMGb26CZnXlnlitVXdl86K2E2I+waTFa3P1IaWdU+xmzxjB41rACGKdbEiNmTpo+oyxLKW6Z3zpsx0mKRCsKR5NgZ48aXFBeJJmeR0XhKdTQOKc0eP2rMww899bO7N8xzqkPEnKH1M+ffsO3QojmbZ8Qtcm6uqtD/EVS7w+3yuUqzzUKRKycXCr2VeeXV4jOpjwQ5W5It1aMuGzPx+s62Km++ASFJyS+sCCerqxdMm9hYlZP9htG9fNWD9786b/LlTW4hr6QoKz2GiEFXIAYNIddh79hVbgwNMqiRUCwy5iaivseUAtlmBWapCgz+YRqmD9rTgn3gORITJpusg2SINS3zB57bMnQgpo4Mw6QbDiy5auWUiZe//yukq6ZRdZ3r75y69cq2sYteeHB7z4wqekmT1ze8qX368g6Xu9xtKYjEOxdVDvWUOIpqIj5vkXPYsBkzu7ctXzGsIR7tnL1xXsswr6el9dLJ1aFCp8NWUlYV8/pikVlXHrxnVbfYuuzyJQdumNSYN3zFrmff62mfefnGqXeu76xL5lTN6Nn+4AuL5tPftl86e3hzRbDY6bAYjeZ8zCPkLXe7W0I2e3l5dai+FqmIMzhkQtuCS0a3BgMlVrPJ46ofMbTKbvN4orWFRagDJSdNrBkRCnH+jKyIKMzuGGESHXFX1wbwrFQiS+EcJSRUgomjOO94Zp1Gwe6ptyuaPVhkZ0cymmCsgSZGXjFu7lCtt27VwgSoiACeOWMLDAbYG01KpLiu3OAJ6mdM3ZWsqK0QtIvu/3qzbKr2lLTvnD5zrz+Q1Cn927BVDas93KIVJLVkBBmPesxmrGUMq6UPWwSJAY4VYC3TWqK9nKkzCrvzxzidV+0oE1iQWwesdgmsjhgzlyjEqzCzbsRi1e0/gBKO866MXoTpLCimHHILYgXrCtQSgn7R7mD3LpBezx/qyu949nBHvmto/rDbfkL/1hoKjRwZCrXC6HmtrfNaBU9lw5DqshmpLY+C75FH6AePPkY/eOQR8KU+rKiZWVo1pFGuxoEYUb1vWCjvilfoF/QE/eKVtQWllUXrZtTNKDn03/Nks9kGDYXT69qWL2+rmVIn0jOT/vxkycz62LyYaMh3VeZ3dORXuvKHgRJqxeJbW/VzKDS8rHZIQ3B4alnXgctWHOzqOnjiYJdwb03JxOHlDUJ7qCVUnUg9Fe8srq9b+uzGKVM2/mop6n/hkb4Z66oDC43whj07Rx4/pG75HcurJ4Wa6bU5CypCsXlsfSK/Znq6RnwkjuPBjDBM7RX5loUwHDw23VzOu81hU2VPRscKRh1x/aE0ze63e2sA5t03f4w2LwZqzega+bUtW16X7kMaoc7bPX/+7nmw/D6Mlo7Os/ttIS8tm3vPnGjnj0YfPeKpqfHAx5uef3HTZdU/Ptq5a+6cnZ1/qA0dZ/FEryPbP8B5nU/KM3ybb+Lo+jrbxkF+yPZyHBB3IamOOxRkxpn9GyTW7wWSXX76Hn3P35UMwHLZ1DC6wSSr3Kx+VN/iOcrs6Kl9LAF9H/z8hR1Sqc9XKhHdrvUCcqnWgT0WByFG0WTMiduMEHUIt8Ga1Od0O6wULBTDggVWpv4u5NPtqc9hDb0dLt+d+iL1xW61lb5FD0F56lnw0V/RtyAC4+kH9CFxL/0TTIDI2W/o28t66EvQ0rOMt10ghCpzsO0uMoa3XRUFNU9iKoQKeaBrOEwcMr6F65vtb8TNyLCYcqGzMKaZcMuiBxVo+dXZjdbIHFlWrEU1rjMGWaVX5g11Z1vL8suaK4RTXtlpSa2ylcr/dFpLyz6wFouCS5RcFvr3Yp+vGEZk2wtUsmgRpbTFarVV2MyCgTYU5IqyWlkh2xxVVSV09S/tZW5zn0GRcZ4U5jnzDLtyrT5vcbDYk2PhOMX2R9h+0GDtb9BmCPnezY/0bgfHOgFnLd9TYnsdqPw5PDaPGBZ6xd5+wjRETJ7i8jylIRPW+klmLmHJCmPHOdwqZYTMRqCESyFFKBHf7GKApmAwRdg+U5Ldk8weC5+HZcSftmtm2DQza+q7f4hNeCdZTKhsmcQ6cIH8XHf3c/Qs/ZCefX716ufhjrXv3NvZee87a3fRr3buhKw/wdBO+rRKVj+vJ2LJkefji8+fXd2588RnJ3Z27qRf0dcxuUToXPqfnTAV3tPnB9aJ8L1IE957GY7arSLrVQ/rTKmL72ZqTGs+tUfS+B4m/ezUnn7siD2nCBncrmxSTKp0W53JEw3b8LAw45c+rbj+mh4vNlQ+VlhYRqFzBg9NwM5ORvu4xiniOdXrRKYcSODZqWhn2RLStLOYjCVIsbNwIOCkhD2HXkx5fl1cZChpxLrUoqasioxHxS16iZ4mqK0PowJRAnU/VFUJy1JC4RJ1xRO8DMK0KYebmya/s8bSb0AwqFij4pxQETyNVRLcDtTnDn9X5QnJGajr4H3rYpwblaQJZdwohqdhm5g+MmFPOowc1Wb6oZ7OvHtuO5vVmF+/pwGU6GnYM37Q9DVzFsh3NQWi+qY5Xx8zYaZ6tXo1tseNCAcOQB2tRYA4qAFvPt+jUyFurx+BsAt/Fsrmpk6VNzUGvTnWYcLX+4WyA/6uwIFCs7lwf+rkgQCG/cIwnspfU5pnDIWnS88dSJ3c7/cfKGptLTwglGHwoL9rYG1ynC8gJdh3KqCUZjv15W7JjOyOIM9HBEMJhdhHNGq6+9n0+oFhkLVzdd/q9Ue+PLKenQAb/LfVmSe4dHY9eze8mX64fv2AfTpdFm/pBcWRdFGoXtgtUY9NNsHfvlVmauxAngZBE1dT07fKpd+cq5VhsG2cr7cSUsFtVza2FeOJMjj6gXqIOIw4UGzpCv+mOkomIb6S+jf14vKNQKWBKO+QXKxTKaJbNdv/Z9AWNEIMqyIagXe8EZi2FUNVI8aNjgLnXYifMpyl8hL6JfKeL5dSBc4shRwYCjl+WEu3Tnrl3Zcn0lvh8kmvrFjxypQUYWauU/SlhRxbZXyTypf09CyDM3BmWU9PXyVcAT2TZ0yfTG+lW/EKL+3RXzglRDk6n1dn5ofh46uOgDcIjDWyuiOtjDNLeByCFgcE46whqEtk8N7PmSM2KK7zTYkUeWC/ckoAWMBbcucvdm2/qH3FK0lY+8fQdWfJdRpt5M268//eSG3h1YC3u257eAVvWsuaEaf2rEDIgf2eoj2nhJN0L2vTlO3e6ZPhinfhQ54DvMoauDf1Fm/4V13LeRNfWrNgJQdjEBho6b4S2P/M7IX1MwIKo15IaLSX9mqQ4CdIyBfcayxNen+R29HPz8NA+nrFhNbX29eriQl+EhPqBfcaS8PmqJaWKxbEsyjzcLFVGqJ+ziLsKutBhlWIVHJ4wPgZPveTiQ44mo49ySgg0DCB4OxPA76mg4+eQuGJEYoOIOjiX2+KqyACXjMH5w1QirxhBzGy9WrBP5CLQSW0/BD1U/8hWi5M3L9f+jE9mPoUJtL9ggPaQHCkPmXYovMFDbs2i692BN4gMxqj1Ne0PqKJuGAUBpiUGahTvdBLE+f4MeMLRu6TZAT8M3kYi0jhT8TfGQxzF5pedmJVJRLvv16lF98zkDzGdIwCW90OHIoaQfXjfMQ+6u3TaELUUo8vEGak9moLEgs0mIThBQqW3qdBL7acPetbwJ/lskdp/oS5syE2Ztx8VOQ5jPYgDCVS/E1WFegdjDc5uLY5g+a+Gp6IUO4z1aMYcwLeZEGgCnxmphyhmAWi7zm09ZMjdPfvj8I2mAYlr67qJ/Me/Jx+TA880b23G//kjLvE72HREZGsepX+lT5JLz/6BCSh6PMH5/VpPB2X7f3fADEo6ovYG07uo+JCecJ1UlyiLcgsBpZmMXgs6luVeZErZnxzunVZs8PhE76u7L68u5L+H193f4zQj8LC3LHa/LgvMbNrmPTO2AkTxp45ylcVRNmeAQ5MZp/BhtgQ1nkNQwXUXeJc3+RIhqCG6Oth0GB3sMYH1ZAgcBqleJnHFv1tkv7mpVkPbm0E1AoC0S2TmIMOHqi+JmH4S9d/MofFg2/G4i95YyWcSo8dD7U3AWoT/tjwU0IZ28h47PiSOSwCyutLaS3vPd3fivsxVWa8mPLAyzg9Liu7m7sz+bwDTkt8rXGazJ2XOIJrLLRmytRuXDcauzLXpZR2NcP2qxk2MD8lQZuypntqmmy9TJvZnUA2snUBP1HY3Mgjhbp/HIKnyrA+GjGjClHAii+wi+VccsyZSpfT5VPn7IR9Nz733I2Ys0qYNFl7DB/AXVOPrd0FWSnnc2B4jjlTMTxbwPBMPsmWEJIJH8QdMucl9KR2Uj65IEVgr9aLY4Vz1EAGuBQpwsFi48WuBvI10Q82k3GZ4pHionAQZ7CQIZhHEFd1HrMLO0w4iKwJzALi8JjKcIJxDwMTTn34y18E7ZOa0f4/PnTz6UcXrZc3DVs69i8pzfLO+KlLnljF4pRSvP8k1L1xzNP0b1X0jH3zqyDeugvsdPKlrz48Dt+3vDP215euPbKtFBR8SFNMJxGxrZLGW8OWpcb87tL1ZPjDOoG1j89EfzrFWVRP+vC9PsKd3RjSzBASBtZnKtczy9gq5/wgfQGHlN7vM6fXizCM/gu2a9QCa6UH04HuvlE4Mdgw/H33mjW718j30zLEJyLsSZ3Sry0L2VOcPvTwGpbkPG6icj7L8IW7kg1emTL3HUNVCa+QPLceEYnTsSJ3IBu8GAnLisuUdN4ZphzXmTJJ4475gqs/7f2pM2Vd/Mhc8Hi4EEK1Ecmzz8TSCPu48Bj8B2nnRuZHmRFDNKGrA/ycwMqx5zgI/A3QX6T6ZZ9OjCVOm5lE0nM9yzVK5oTKCB0j4kRlumgJ12d1cRiJNUHajsVtTNw+OWizT1UPb2xdVxV67vI9pwolwvWyHWWejYfD1Us3nNrT0srXpqaCKqf9Ye1Wxr+DbGEEA5ERbCdNRFquHEwmP207mqQN9CS8Bm1tnyaPt83e20/2yruSx/ARjKcN4GaPjuNdW2rHXiAMkIHJLpnRKPVc/4t6RWS9Qtym+Af5f+UnuKwRsPCoByQCn1PLLJjFXFTpL+THqYVaOmCWBrO4HRIX2B8UTX8H1zySWyS1EplFf8G8UGHWLGqRH++gv8B3O+BzrssnFFYPxuiYgASEiFRvCllNr8xksYDUJsHTMSxJsHRYFyMm41YCIYE/jQlsDKZ6B3wJRKwe88bEGSxyd9o+Pg8BVyhWTX+Gc5st0syzNE+QNe6STIwiq7zGSBmbAWeJoDsecx5fwG5kTfm2/ucjQZzZNShz4lwTJBl9jx3xsM03+D48SB/8vnthgEylMqE+7cLAgAN0xgP6e0K8awRuB+G2DFbnb+1iZ5CF4ZisG2T4WbeNMEMJs5718TiJObNo6dUu4qM0jvD8GX4FLsg/zASuzRcdVI4YZYownCtKYxlpmQI5K2NWwEyZqOExxfhcwQeYituv2xAydnCGM8U6FjN5Lqev4LEKCiOAIRBEfIc3iF/6cJBv+vQn/eQnn96kcODglnD9mnrzbvqvX5bSf0Ju6S8hm9FEoq97Ja3FMXxOAwBDq8Eg4IIBFJCwesz1FnDe8NZi43SHX0U5vLGqfVypDgoCVk3HLmBmGyZH8OJ2bzzsqHSlMeIc9pQPYI9ej+8rPe1JSDJ10If1/JI5HOnQ+R1lCtxfn/EqI7fgmdjWlkfl8hqBGDECFy3zLmf6JzNHpN6bKwToXIGNEMV1xy1yKMD38Qfn2bDymZgo5c4cePJFue86MKjFNP2MZbNhuUpNsdXI8gaUm/q6TY+5iY84kxBNyGrTs5nVLRCJc41F4apFIjN1+4hYX1/fd4TZo9hU0vT5fBZLi/80zjRNAdFyj7pAXUCq+M6K6ldUixpkRDFoCQTlINMf48G4HIuLcQeictwh2h1+h2rHseaT216vLmikv6tptm95Y4Sz5Y0ttqZa+rvGTwyGTxqhrrbJtuWNkdaRb9xqb6qFOhZNN3H4FU7fam+uOZdSzyA3O4E5NNfoST/RM771dcy4jGM3ucDGYEV9/rwvH4Ab+VWI+fnOaRyUC7+BkOo3n96yaYNweHwf4aHUmPHf+iAidWTL6c3jU2M2bGJX4fCGb/GH4nNypTyjVyCgstXPlrusc4eUfmEsCGGYsEkj4ezRY/XF/SaTwWx1n5srOo8y6SyRxWZEvUx0qGbceoBz8ZTsyxH965GBbxIyOK+7D4n48AwrnmTwftD+QyYtkiELm576dyB6iSkuIAa+nyCDvp/A0tLfT4jAHbwN34u5ZBDm6kbwNNalQRc7x4AAeEZfsXj+OgO6vKoixyOWv4LaFcNcjqnG84rxpH+DihPS4CoMFAm82rj0M0XzL1Gw/0UtUzy+hO1mrR+oxoXzznLhvJMym3TI1zy2MDK3C+edsExH+720V9v7rQlXz4vpSzJooWk5dl55ju/+wodx1m995ZMazFsvKOjskfP0yPPKCH93GfrONa4qB9+uZkDLfqUQjnIPqO8pH170t7ffsf/n825aUlHkLCyKjC52vmUyj5n+fXUSGhqndSdGXrR/XEFBia+k2Du0umpkg7fUaquOpH3hdZ1Xn9Xsp+K8YYYKjrknqRuHzQ0nL0jLEhpZ2hSOvESYwZ6lZcyHupk9I2MHYUzHTOz4RhgVg7AFj6DPb0HNLlzMggqjGimWeQe00/85UamlPuvgtkitYwTeybwu3I7JE6bDvO7/xPrkKtvYTgbTQFsEexnEW8CF0horv35CU/DGZ1+YcP/9E1741caK5gk4ZZeO+c1r97YMHXP33WOGttz7+ktj2Jwgl8BJdafixhWsfw3F7F8iqBbRwQzaQeGyE/Qo1Jw4Kh09cfToCag52/U1kK/lhm3IoRu2QQO8to2+Rl/bBq/RshaJtDCdjOunaTtQEdv9MQpRFLSoxX3LgTjKtTREubBJNxIpiCqsnX0oqges7lEm33UTrcxhhFnz8IRU9lwKbtMfMPp+ux6lP1wP2w+Xn/p3JWvkO8os+4EyLSj+g+oPldoHL8+lOw50/lDJOH1e7mSJGIqm56iMcgzLNRkF5rRgCqIIY/Y0k8CtngyARYJyaEfbc0v6OR7LCWYdpb18CrMPyujxHW0Tqabfp/0ldFzP4z7Vg3OVL8iLfMf752wPIuuTjCzycgdl0Weq5w4WHD0kPsnHrk4mV48dt6Il3ODzNYRbVozjMcB7SsaVxzRSdogDoUEYx/lRNrPSQBrEeYnMv9kT5Fv1wC0jDLgljS2shmHdKdLtDxcxNS/FxaPE51EfSW6Nr1lTPvfiem0wd+K2hguHlDkEurFzZE+Uf1qncEW4j583nwb76c1slxR5h3TeGGq6J6rG6SbTNwQiz8I2FBAn99f1cJRUVBt3QfF5mCmOQWglFOlBH8qkZV+uXr1w6sqFf/0NnQbk+iVz6uouXbt96YK3FG3smHuW3ZinFt20+r6nhV8NH9daWkpb6PFJU28jaTs6kTP7wz4xrHriYYsv7pFna19oFTRRwS6oXnKFikvOtM1b49wim2EQ6+eMYwmYgswRk7MLOJCWxzhxe/s5Vko6Xel7U0j0phaAm00QI/ezZv3KeIOR5HB/ZxuOIMp+i8ljYR8asNk2BEC3DKt+I6BKr+nKDWjf8DHTzS2gm5i1bzROhPFeThNjiqVnDC9shEHjLErjagYztmnny0kz+Y/zZZgjqKgjuLtlMF4j5EONMEJ1jIAyCNRAvhQcAY54cIQQCKoO/MsXWSK8RVkXR3jmCeP5QhnGYaAM8iGuloEazzcEK/HGEccMJYdaIyvMXdNRI48QkDiPEPBtScWkIuboyMdZd6GIzBPFLNnkEsjLkGhT8n1FhcMiFUEAWXbkWnL9geJRzsJch5xX6nCGC8XcGkOhrSJ/Yo9k9Ug2Q/OkZqUgJ2R3j3FdtuidJwO1bl+NSynJrk2Wx3ODxV6Lx2MszbYmY0PlvOxQgbMsz+fMcjsNhaFgnVLamD8kWIUKowEMcpYMTtc1726SsrJHubPUPIMh35rbHBTyLaPrvEaDx1BTWyY4Suoryk2CRxr6LcH9L0mxIMPum/zHp7LCRQaLTSyNueOq2ZdndfogS/VnNcdkVbD7so0VTtHuNNqz1ycFk5wlGLN8pc0em9VkMIH/ZsgxGBTVLDrkItvQfHOJN+AwmbPiVos9x1SgWixyvsliLXQ2O2srKt2uSqfRPKW2oNWUZcpxlIcWz/gJ7X+mPOeWEa3DSgqiLXK2Uc01Fxepdq9FrjMWZEuWxpGjyzplh8mpcBm6V3SrC6SMDfJbPH6Az/t+fcMNv75BFAdfpJM38Ougv7SfJLO79DJUxzlvIF9rYq84YK/BGwNbKyRqArEXUb8vwd6REnwvC+ORa/BYA+lLcDtOIr3PJXD+wqL1PAfbACpILRmmf6+sey4hJ/Po3y2nv5YxIWOLDYd0VHl6wUtpYodI08i/Ru4njWOZLtwYuPqmrh083KfvRQrJtMPI2LXeB5jc6NIkn3fdGIZ8oY5WB7WP29H1gHftWIyw87QHMoRZGdAtzv/2PS1LMps7me+4gejSpI8wBV5EAU55jMhAgmlOeFCSCQHnYXqY41ucY4BGcvX9EKOIOjEEWyS+Y+rzBiEaDCj5oDBfLodubiyDcyYaAp9igf/0+8EP3MtP/G0M2xGjBxPOTv9Ef5c/X9Dy/RjKdya0p6KBQNSvatSBtDPX3xWAclG2jZu+8QyNTkx2xaBNSzjzMbH+VheGOp2J1L/wJX+UkMHfEo4mE0k7mUeW8D2jtE9gC8SZU6DHNBDDfGzZ8A6KiHLlf2C0mdUHrxlQH/D8ueCqDgx1Mpoe9rGN/Sjx0kG2m5MOMiealD4N+tJq2vmX+fq484nwAJKqD9L3Y9Z5wZeMPpCeJ3j7wJ5TkJk2OJPoB6f2pMXKmeQgZTiZmTsC9skpNaH08v00ou/Lh42CiGzXwbZHM2tWfsS3plXMFmh3v84k6fH/Hsc9A/Cnb0TJPdEWoe+kwGcPqoOzerYxkxi7F36W3sETYBWuqZ/imvLwvRYH9w6Iu8BhYh7XgzrZFrb5TC2Q6WaZ3rGMPkCX0AeW3TH2lR5NS/edpvW8Qn+kd9OROY/+9s1H5rRdYoF/aQ+c64UHNJptWSqm0o0W0nOCkMk4H3SLVyX75tdcCqytwyESZFt85UFlIMIcDwR9ujUsEg+YeC3xoUtwtwjML47dFah2m98bCOreoI48QeWbBG/neucuCkQC18+lX+28h/5rzg14s3iOJ+9t9rS39D68XfrY5yB9/thSDO4qSWk7U8Pn/mNT5+M/aarY8mu+qTCybRnt38rzS5x49MpbNl/52HH9bivAsgmtmGTqgiMg6HHXY1aY5fX6He0/0tmh/WLzwpXhzsTcWyZnbF3aoL1swZNGC1nTTXps3TOeInHGwMaQMgSAAQ7AuI09bPJWAclCLcHqUO3EIb9+371H6eX0SfrXV1cJpOv5S6D+sBgOU7LqVSiBabDt6Ocnnn+a/m06r8OrOBca+f8FUcr9zjhX5CTaGg8rAjOvBoRg2AXumDR1z5o1UyJzws/2Wr98up88/aW11/EOFB8XtTVTBDJlTXhOhJKpBYfoF0PoF1AwBAoObT50KO3TLGJLB++pySS9p3buO2pHxoLDDZ+mwWE13SeDzpxAZc6MOn1XPKTfy+gJvL+zM9+Z6T/mLsDwltnSGbHWQ6y/+TduhNfNyHbRQPTIoh//PCIKMe654JHIOroVqtahHh25Eqro1nXHhMdT77yTOpE68U7qHeFx+WN6zx/onvffh4V/EFENodekboRb6DrhGrgx8917poyMP4SnGFCFH5TJsWOo7g96Mb0ZN7h++YPfFnklL8zjWKaK386MVrD6wbK07x7X1ezI8CuZ/cmIs4vtZnOc9nBvczbv1EAQYZk9hfq43cFs1gof036udnWxweCBueOHzLphj77r20f0O8q4MQcyLpaBpP/TkKZrF3Xq8ZSH4cLv9arJBLLoO7029Z3hgId9i8x2j+3hWJhv3NnjulJSnv5M2Wp31PNHkqPebhl4xp+EM0/s4njohol/27r1b3Q/vZ3uZyGxy+LKN+bn/Z3+NXb1xNEmk6nI6cz95SU//uKiXK2kPLiJPvPIuFunjA6HyhSn0vPLn0OgK8epuWrCd9Dr3+l7JBEO5Lvlx359GGZfXaRqg7OGiby4s8vykRcX5qlbTWaTIbvYbHPlOpsacj6qcTVYJ8/GEk3NJZGs3GDbqFxwRvxh57xZYduYQDg3MCWZc15fidybtIjNdh//TwL4ZrzoyzARWxxn7y6hZFffxcpwWk3v/+yvlChLzpyFiz+Fx+THaDUcYwccP/s8HcUIiPR6apQ45+yOY8c4DqVtSen95cHaJhPPusJznmcmV3XYyuQx/Pz/AAfdhq542o2QsWrDMBCGfyVOSjOUDn4AdSlJiY1sMCTZ0hQHQqcM6RyMahsSKVj2EChd+wgd+wZ9s7xDz4pKl0IrkO7T3a+73wZwhU8wnNcNHhwzDPDiuIMLvDvu4hYnxx4G7M5xD9fsyXGf8q+kZN4l3e7tq5YZfDw77tDcN8ddPOLDsQef+Y574Cxx3Kd8gQU0DjiiQokcBWpwDJFhRDGGQIQEY+IV6SQU0RwGezR0GpvBQh+OVZkXNR9mIx6LKBnzlZaKz82+MUaSZGmV0k7JqJOit1hKJasy04p4TcWcmu6wJRHWMm92W4LUimsbK1JIayskYxwz2r81PlciTBBgSvv7M5BqVae6yiWPQ8Fn/McAXaJJMA1a8/9wu7FFQ2Vtf4mwE0IbW2fYyMqUWnEholAIwf/u+QXtVlqxAAAAeNpt0meTFVUUheH7DhkJEgQJgpIFhdvn7NM9gxKGCZKzKGZyUHJGySAgSq7i5wrFfYdPdFXX+tRP9V61Wl2tt8//rdbh1vueV29eWl2tYXQxjOGMYCSjGM0YxvIB4xjPBCbyIZOYzBSm8hHTmM7HzGAms5jNJ8xhLp/yGfOYzwIWsojFLOFzlrKML/iS5aygTUUiExRqGrrpYSVf8TWrWM0a1tLLOvroZ4BBvmE9G9jIJjazha1sYzs72MkudvMte/iO79nLD/zIT/zML/zKb+xjPwc4yCEOc4SjHOM4v/MHJzjJKU5zhrOc4zwXuMglLnOFq/zJX1zjOje4yS1uc4e73ONv7vOAh/zDI/7lPx7zhKc84zkveDnqwsljg1W7bVZmMrMZZjFrszG7zZ63mfSSXtJLekkv6SW9pJf00pBX6VV6lV6lV+lVepVepVfpVXpJL+klvaSX9JJe6njZu7J3Ze/K3pW9K3tXbg9915id/wid0Amd0Amd0Amd0Il3TueesJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn7CfsJ+wn0h6SS/pZb2sl/WyXtbLelkv62W9rBd6oRd6oRd6oRd6oRd6oVf0il7RK3pFr+gVvaJX9IperVfr1Xq1Xq1X69V6tV6tV+s1eo1eo9foNXqNXtPxijsr7qy4s+LOijsr7qy0h75rzG6zx+w115l9Zr85YA520l0Wd1ncZXGXxV0Wd1ncZama1x+EcTsAAAAB//8AAnjaY2BgYGQAgosrjpwF0ZcUq9bCaABTzgdAAAA=") format("woff"),url(./Genericons.ttf) format("truetype"),url(./Genericons.svg#Genericons) format("svg");font-weight:400;font-style:normal}@media screen and (-webkit-min-device-pixel-ratio:0){@font-face{font-family:Genericons;src:url(./Genericons.svg#Genericons) format("svg")}}.genericon{font-size:16px;vertical-align:top;text-align:center;-moz-transition:color .1s ease-in 0;-webkit-transition:color .1s ease-in 0;display:inline-block;font-family:Genericons;font-style:normal;font-weight:400;font-variant:normal;line-height:1;text-decoration:inherit;text-transform:none;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;speak:none}.genericon-rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1)}.genericon-rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2)}.genericon-rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg);filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3)}.genericon-flip-horizontal{-webkit-transform:scale(-1,1);-moz-transform:scale(-1,1);-ms-transform:scale(-1,1);-o-transform:scale(-1,1);transform:scale(-1,1)}.genericon-flip-vertical{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)}.genericon-404:before{content:"\f423"}.genericon-activity:before{content:"\f508"}.genericon-anchor:before{content:"\f509"}.genericon-aside:before{content:"\f101"}.genericon-attachment:before{content:"\f416"}.genericon-audio:before{content:"\f109"}.genericon-bold:before{content:"\f471"}.genericon-book:before{content:"\f444"}.genericon-bug:before{content:"\f50a"}.genericon-cart:before{content:"\f447"}.genericon-category:before{content:"\f301"}.genericon-chat:before{content:"\f108"}.genericon-checkmark:before{content:"\f418"}.genericon-close:before{content:"\f405"}.genericon-close-alt:before{content:"\f406"}.genericon-cloud:before{content:"\f426"}.genericon-cloud-download:before{content:"\f440"}.genericon-cloud-upload:before{content:"\f441"}.genericon-code:before{content:"\f462"}.genericon-codepen:before{content:"\f216"}.genericon-cog:before{content:"\f445"}.genericon-collapse:before{content:"\f432"}.genericon-comment:before{content:"\f300"}.genericon-day:before{content:"\f305"}.genericon-digg:before{content:"\f221"}.genericon-document:before{content:"\f443"}.genericon-dot:before{content:"\f428"}.genericon-downarrow:before{content:"\f502"}.genericon-download:before{content:"\f50b"}.genericon-draggable:before{content:"\f436"}.genericon-dribbble:before{content:"\f201"}.genericon-dropbox:before{content:"\f225"}.genericon-dropdown:before{content:"\f433"}.genericon-dropdown-left:before{content:"\f434"}.genericon-edit:before{content:"\f411"}.genericon-ellipsis:before{content:"\f476"}.genericon-expand:before{content:"\f431"}.genericon-external:before{content:"\f442"}.genericon-facebook:before{content:"\f203"}.genericon-facebook-alt:before{content:"\f204"}.genericon-fastforward:before{content:"\f458"}.genericon-feed:before{content:"\f413"}.genericon-flag:before{content:"\f468"}.genericon-flickr:before{content:"\f211"}.genericon-foursquare:before{content:"\f226"}.genericon-fullscreen:before{content:"\f474"}.genericon-gallery:before{content:"\f103"}.genericon-github:before{content:"\f200"}.genericon-googleplus:before{content:"\f206"}.genericon-googleplus-alt:before{content:"\f218"}.genericon-handset:before{content:"\f50c"}.genericon-heart:before{content:"\f461"}.genericon-help:before{content:"\f457"}.genericon-hide:before{content:"\f404"}.genericon-hierarchy:before{content:"\f505"}.genericon-home:before{content:"\f409"}.genericon-image:before{content:"\f102"}.genericon-info:before{content:"\f455"}.genericon-instagram:before{content:"\f215"}.genericon-italic:before{content:"\f472"}.genericon-key:before{content:"\f427"}.genericon-leftarrow:before{content:"\f503"}.genericon-link:before{content:"\f107"}.genericon-linkedin:before{content:"\f207"}.genericon-linkedin-alt:before{content:"\f208"}.genericon-location:before{content:"\f417"}.genericon-lock:before{content:"\f470"}.genericon-mail:before{content:"\f410"}.genericon-maximize:before{content:"\f422"}.genericon-menu:before{content:"\f419"}.genericon-microphone:before{content:"\f50d"}.genericon-minimize:before{content:"\f421"}.genericon-minus:before{content:"\f50e"}.genericon-month:before{content:"\f307"}.genericon-move:before{content:"\f50f"}.genericon-next:before{content:"\f429"}.genericon-notice:before{content:"\f456"}.genericon-paintbrush:before{content:"\f506"}.genericon-path:before{content:"\f219"}.genericon-pause:before{content:"\f448"}.genericon-phone:before{content:"\f437"}.genericon-picture:before{content:"\f473"}.genericon-pinned:before{content:"\f308"}.genericon-pinterest:before{content:"\f209"}.genericon-pinterest-alt:before{content:"\f210"}.genericon-play:before{content:"\f452"}.genericon-plugin:before{content:"\f439"}.genericon-plus:before{content:"\f510"}.genericon-pocket:before{content:"\f224"}.genericon-polldaddy:before{content:"\f217"}.genericon-portfolio:before{content:"\f460"}.genericon-previous:before{content:"\f430"}.genericon-print:before{content:"\f469"}.genericon-quote:before{content:"\f106"}.genericon-rating-empty:before{content:"\f511"}.genericon-rating-full:before{content:"\f512"}.genericon-rating-half:before{content:"\f513"}.genericon-reddit:before{content:"\f222"}.genericon-refresh:before{content:"\f420"}.genericon-reply:before{content:"\f412"}.genericon-reply-alt:before{content:"\f466"}.genericon-reply-single:before{content:"\f467"}.genericon-rewind:before{content:"\f459"}.genericon-rightarrow:before{content:"\f501"}.genericon-search:before{content:"\f400"}.genericon-send-to-phone:before{content:"\f438"}.genericon-send-to-tablet:before{content:"\f454"}.genericon-share:before{content:"\f415"}.genericon-show:before{content:"\f403"}.genericon-shuffle:before{content:"\f514"}.genericon-sitemap:before{content:"\f507"}.genericon-skip-ahead:before{content:"\f451"}.genericon-skip-back:before{content:"\f450"}.genericon-skype:before{content:"\f220"}.genericon-spam:before{content:"\f424"}.genericon-spotify:before{content:"\f515"}.genericon-standard:before{content:"\f100"}.genericon-star:before{content:"\f408"}.genericon-status:before{content:"\f105"}.genericon-stop:before{content:"\f449"}.genericon-stumbleupon:before{content:"\f223"}.genericon-subscribe:before{content:"\f463"}.genericon-subscribed:before{content:"\f465"}.genericon-summary:before{content:"\f425"}.genericon-tablet:before{content:"\f453"}.genericon-tag:before{content:"\f302"}.genericon-time:before{content:"\f303"}.genericon-top:before{content:"\f435"}.genericon-trash:before{content:"\f407"}.genericon-tumblr:before{content:"\f214"}.genericon-twitch:before{content:"\f516"}.genericon-twitter:before{content:"\f202"}.genericon-unapprove:before{content:"\f446"}.genericon-unsubscribe:before{content:"\f464"}.genericon-unzoom:before{content:"\f401"}.genericon-uparrow:before{content:"\f500"}.genericon-user:before{content:"\f304"}.genericon-video:before{content:"\f104"}.genericon-videocamera:before{content:"\f517"}.genericon-vimeo:before{content:"\f212"}.genericon-warning:before{content:"\f414"}.genericon-website:before{content:"\f475"}.genericon-week:before{content:"\f306"}.genericon-wordpress:before{content:"\f205"}.genericon-xpost:before{content:"\f504"}.genericon-youtube:before{content:"\f213"}.genericon-zoom:before{content:"\f402"}
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/icon-picker.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/icon-picker.php
new file mode 100644
index 00000000..8196de94
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/icon-picker.php
@@ -0,0 +1,342 @@
+
+ *
+ *
+ * Plugin Name: Icon Picker
+ * Plugin URI: http://kucrut.org/
+ * Description: Pick an icon of your choice.
+ * Version: 0.5.0
+ * Author: Dzikri Aziz
+ * Author URI: http://kucrut.org/
+ * License: GPLv2
+ * Text Domain: icon-picker
+ * Domain Path: /languages
+ */
+
+final class Icon_Picker {
+
+ const VERSION = '0.5.0';
+
+ /**
+ * Icon_Picker singleton
+ *
+ * @static
+ * @since 0.1.0
+ * @access protected
+ * @var Icon_Picker
+ */
+ protected static $instance;
+
+ /**
+ * Plugin directory path
+ *
+ * @access protected
+ * @since 0.1.0
+ * @var array
+ */
+ protected $dir;
+
+ /**
+ * Plugin directory url path
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var array
+ */
+ protected $url;
+
+ /**
+ * Icon types registry
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var Icon_Picker_Types_Registry
+ */
+ protected $registry;
+
+ /**
+ * Loader
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var Icon_Picker_Loader
+ */
+ protected $loader;
+
+ /**
+ * Whether the functionality is loaded on admin
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var bool
+ */
+ protected $is_admin_loaded = false;
+
+ /**
+ * Default icon types
+ *
+ * @since 0.1.0
+ * @access protected
+ * @var array
+ */
+ protected $default_types = array(
+ 'dashicons' => 'Dashicons',
+ 'elusive' => 'Elusive',
+ 'fa' => 'Font_Awesome',
+ 'foundation-icons' => 'Foundation',
+ 'genericon' => 'Genericons',
+ 'image' => 'Image',
+ 'svg' => 'Svg',
+ );
+
+
+ /**
+ * Setter magic
+ *
+ * @since 0.1.0
+ * @param string $name Property name.
+ * @return bool
+ */
+ public function __isset( $name ) {
+ return isset( $this->$name );
+ }
+
+
+ /**
+ * Getter magic
+ *
+ * @since 0.1.0
+ * @param string $name Property name.
+ * @return mixed NULL if attribute doesn't exist.
+ */
+ public function __get( $name ) {
+ if ( isset( $this->$name ) ) {
+ return $this->$name;
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Get instance
+ *
+ * @since 0.1.0
+ * @param array $args Arguments {@see Icon_Picker::__construct()}.
+ * @return Icon_Picker
+ */
+ public static function instance( $args = array() ) {
+ if ( is_null( self::$instance ) ) {
+ self::$instance = new self( $args );
+ }
+
+ return self::$instance;
+ }
+
+
+ /**
+ * Constructor
+ *
+ * @since 0.1.0
+ * @access protected
+ * @param array $args {
+ * Optional. Arguments to override class property defaults.
+ *
+ * @type string $dir Plugin directory path (without trailing slash).
+ * @type string $url Plugin directory url path (without trailing slash).
+ * }
+ * @return Icon_Picker
+ */
+ protected function __construct( $args = array() ) {
+ $defaults = array(
+ 'dir' => untrailingslashit( plugin_dir_path( __FILE__ ) ),
+ 'url' => untrailingslashit( plugin_dir_url( __FILE__ ) ),
+ );
+
+ $args = wp_parse_args( $args, $defaults );
+ $keys = array_keys( get_object_vars( $this ) );
+
+ // Disallow.
+ unset( $args['registry'] );
+ unset( $args['loader'] );
+ unset( $args['is_admin_loaded'] );
+
+ foreach ( $keys as $key ) {
+ if ( isset( $args[ $key ] ) ) {
+ $this->$key = $args[ $key ];
+ }
+ }
+
+ $locale = apply_filters( 'plugin_locale', get_locale(), 'icon-picker' );
+
+ load_textdomain( 'icon-picker', WP_LANG_DIR . "/icon-picker/icon-picker-{$locale}.mo" );
+ load_plugin_textdomain( 'icon-picker', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
+
+ add_action( 'wp_loaded', array( $this, 'init' ) );
+ }
+
+
+ /**
+ * Register icon types
+ *
+ * @since 0.1.0
+ * @wp_hook action wp_loaded
+ * @return void
+ */
+ public function init() {
+ // Initialize icon types registry.
+ $this->init_registry();
+
+ // Initialize loader.
+ $this->init_loader();
+
+ // Initialize field.
+ $this->init_field();
+
+ /**
+ * Fires when Icon Picker is ready
+ *
+ * @since 0.1.0
+ * @param Icon_Picker $this Icon_Picker instance.
+ */
+ do_action( 'icon_picker_init', $this );
+ }
+
+
+ /**
+ * Initialize icon types registry
+ *
+ * @since 0.1.0
+ * @access protected
+ * @return void
+ */
+ protected function init_registry() {
+ require_once "{$this->dir}/includes/registry.php";
+ $this->registry = Icon_Picker_Types_Registry::instance();
+
+ $this->register_default_types();
+
+ /**
+ * Fires when Icon Picker's Registry is ready and the default types are registered.
+ *
+ * @since 0.1.0
+ * @param Icon_Picker $this Icon_Picker instance.
+ */
+ do_action( 'icon_picker_types_registry_ready', $this );
+ }
+
+
+ /**
+ * Register default icon types
+ *
+ * @since 0.1.0
+ * @access protected
+ */
+ protected function register_default_types() {
+ require_once "{$this->dir}/includes/fontpack.php";
+ Icon_Picker_Fontpack::instance();
+
+ /**
+ * Allow themes/plugins to disable one or more default types
+ *
+ * @since 0.1.0
+ * @param array $default_types Default icon types.
+ */
+ $default_types = array_filter( (array) apply_filters( 'icon_picker_default_types', $this->default_types ) );
+
+ /**
+ * Validate filtered default types
+ */
+ $default_types = array_intersect( $this->default_types, $default_types );
+
+ if ( empty( $default_types ) ) {
+ return;
+ }
+
+ foreach ( $default_types as $filename => $class_suffix ) {
+ $class_name = "Icon_Picker_Type_{$class_suffix}";
+
+ require_once "{$this->dir}/includes/types/{$filename}.php";
+ $this->registry->add( new $class_name() );
+ }
+ }
+
+
+ /**
+ * Initialize loader
+ *
+ * @since 0.1.0
+ * @access protected
+ * @return void
+ */
+ protected function init_loader() {
+ require_once "{$this->dir}/includes/loader.php";
+ $this->loader = Icon_Picker_Loader::instance();
+
+ /**
+ * Fires when Icon Picker's Registry is ready and the default types are registered.
+ *
+ * @since 0.1.0
+ * @param Icon_Picker $this Icon_Picker instance.
+ */
+ do_action( 'icon_picker_loader_ready', $this );
+ }
+
+
+ /**
+ * Initialize field functionalities
+ *
+ * @since 0.2.0
+ * @access protected
+ */
+ protected function init_field() {
+ require_once "{$this->dir}/includes/fields/base.php";
+
+ add_filter( 'cmb_field_types', array( $this, 'register_cmb_field' ) );
+ }
+
+
+ /**
+ * Register the field for Custom Meta Boxes
+ *
+ * @since 0.2.0
+ * @wp_hook filter cmb_field_types
+ * @link https://github.com/humanmade/Custom-Meta-Boxes/ Custom Meta Boxes
+ *
+ * @param array $field_types Available CMB field types.
+ *
+ * @return array
+ */
+ public function register_cmb_field( $field_types ) {
+ require_once "{$this->dir}/includes/fields/cmb.php";
+
+ $field_types['icon'] = 'Icon_Picker_Field_Cmb';
+
+ return $field_types;
+ }
+
+
+ /**
+ * Load icon picker functionality on an admin page
+ *
+ * @since 0.1.0
+ * @return void
+ */
+ public function load() {
+ if ( true === $this->is_admin_loaded ) {
+ return;
+ }
+
+ $this->loader->load();
+ $this->is_admin_loaded = true;
+ }
+}
+if ( function_exists( 'add_action' ) ) {
+ add_action( 'plugins_loaded', array( 'Icon_Picker', 'instance' ), 7 );
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/includes/fields/base.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/includes/fields/base.php
new file mode 100644
index 00000000..2049dbaa
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/icon-picker/includes/fields/base.php
@@ -0,0 +1,104 @@
+ '',
+ 'name' => '',
+ 'value' => array(
+ 'type' => '',
+ 'icon' => '',
+ ),
+ 'select' => sprintf( '%s', esc_html__( 'Select Icon', 'icon-picker-field' ) ),
+ 'remove' => sprintf( '%s', esc_html__( 'Remove', 'icon-picker-field' ) ),
+ );
+
+ $args = wp_parse_args( $args, $defaults );
+ $args['value'] = wp_parse_args( $args['value'], $defaults['value'] );
+
+ $field = sprintf( '
+
+ *
+ * Plugin name: Menu Item Custom Fields
+ * Plugin URI: https://github.com/kucrut/wp-menu-item-custom-fields
+ * Description: Easily add custom fields to nav menu items.
+ * Version: 1.0.0
+ * Author: Dzikri Aziz
+ * Author URI: https://kucrut.org/
+ * License: GPLv2
+ * Text Domain: menu-item-custom-fields
+ */
+
+if ( ! class_exists( 'Menu_Item_Custom_Fields' ) && ( function_exists('get_bloginfo') && ! version_compare( get_bloginfo( 'version' ), '5.4', '>=' ) ) ) :
+ /**
+ * Menu Item Custom Fields Loader
+ */
+ class Menu_Item_Custom_Fields {
+
+ /**
+ * Add filter
+ *
+ * @wp_hook action wp_loaded
+ */
+ public static function load() {
+ add_filter( 'wp_edit_nav_menu_walker', array( __CLASS__, '_filter_walker' ), 99 );
+ }
+
+
+ /**
+ * Replace default menu editor walker with ours
+ *
+ * We don't actually replace the default walker. We're still using it and
+ * only injecting some HTMLs.
+ *
+ * @since 0.1.0
+ * @access private
+ * @wp_hook filter wp_edit_nav_menu_walker
+ * @param string $walker Walker class name
+ * @return string Walker class name
+ */
+ public static function _filter_walker( $walker ) {
+ $walker = 'Menu_Item_Custom_Fields_Walker';
+ if ( ! class_exists( $walker ) ) {
+ require_once dirname( __FILE__ ) . '/walker-nav-menu-edit.php';
+ }
+
+ return $walker;
+ }
+ }
+ add_action( 'wp_loaded', array( 'Menu_Item_Custom_Fields', 'load' ), 9 );
+endif; // class_exists( 'Menu_Item_Custom_Fields' )
+
+// Uncomment the following line to test this plugin
+#require_once dirname( __FILE__ ) . '/doc/menu-item-custom-fields-example.php';
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/readme.txt b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/readme.txt
new file mode 100644
index 00000000..88f3d7fe
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/readme.txt
@@ -0,0 +1,60 @@
+=== Menu Item Custom Fields ===
+Contributors: kucrut
+Donate Link: https://www.paypal.me/kucrut
+Tags: menu, nav-menu, custom-fields, metadata
+Requires at least: 3.8
+Tested up to: 4.7.2
+Stable tag: 1.0.0
+License: GPLv2
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+Easily add custom fields to nav menu items.
+
+
+== Description ==
+= Breaking Change =
+Since version `1.0.0`, the first parameter passed to the `wp_nav_menu_item_custom_fields` is the menu item ID, instead of the nav menu ID. This should not have a big impact, since the nav menu ID passed was always `0` (not used by core).
+
+This is a *library* plugin. It doesn't do anything visible on its own. It was written to allow other plugins/themes to add custom fields to menu items *easily*. See **Installation**.
+
+Development of this plugin is done on [GitHub](https://github.com/kucrut/wp-menu-item-custom-fields). **Pull requests welcome**. Please see [issues reported](https://github.com/kucrut/wp-menu-item-custom-fields/issues) there before going to the plugin forum.
+
+
+== Installation ==
+
+= As regular plugin =
+1. Upload `menu-item-custom-fields` to the `/wp-content/plugins/` directory
+1. Activate the plugin through the 'Plugins' menu in WordPress
+
+= As library in your plugin/theme =
+Simply copy `menu-item-custom-fields` to your plugin directory and require the main plugin file, eg:
+`
+require_once dirname( __FILE__ ) . '/menu-item-custom-fields/menu-item-custom-fields.php';
+`
+
+= Usage =
+Copy (and customize) and include the `menu-item-custom-fields-example.php` file found in the `doc/` directory of this plugin into your plugin/theme.
+
+
+== Changelog ==
+= 1.0.0 =
+* Pass correct parameters to the `wp_nav_menu_item_custom_fields` hook, props [@helgatheviking](https://github.com/helgatheviking).
+
+= 0.4.0 =
+* Support WordPress 4.7, props [rahulnever2far](https://github.com/rahulnever2far).
+
+= 0.3.0 =
+* Use `wp_nav_menu_item_custom_fields` as walker hook. See this [blog post](http://shazdeh.me/2014/06/25/custom-fields-nav-menu-items/).
+* Update example plugin
+
+= 0.2.1 =
+* Update compatibility info
+
+= 0.2.0 =
+* Improve walker class loader
+
+= 0.1.1 =
+* Move custom fields up (before ``)
+
+= 0.1.0 =
+* Initial public release
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/walker-nav-menu-edit.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/walker-nav-menu-edit.php
new file mode 100644
index 00000000..761a05f9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/menu-item-custom-fields/walker-nav-menu-edit.php
@@ -0,0 +1,81 @@
+
+ */
+class Menu_Item_Custom_Fields_Walker extends Walker_Nav_Menu_Edit {
+
+ /**
+ * Start the element output.
+ *
+ * We're injecting our custom fields after the div.submitbox
+ *
+ * @see Walker_Nav_Menu::start_el()
+ * @since 0.1.0
+ * @since 0.2.0 Update regex pattern to support WordPress 4.7's markup.
+ *
+ * @param string $output Passed by reference. Used to append additional content.
+ * @param object $item Menu item data object.
+ * @param int $depth Depth of menu item. Used for padding.
+ * @param array $args Menu item args.
+ * @param int $id Nav menu ID.
+ */
+ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
+ $item_output = '';
+
+ parent::start_el( $item_output, $item, $depth, $args, $id );
+
+ $output .= preg_replace(
+ // NOTE: Check this regex from time to time!
+ '/(?=<(fieldset|p)[^>]+class="[^"]*field-move)/',
+ $this->get_fields( $item, $depth, $args ),
+ $item_output
+ );
+ }
+
+
+ /**
+ * Get custom fields
+ *
+ * @access protected
+ * @since 0.1.0
+ * @uses add_action() Calls 'menu_item_custom_fields' hook
+ *
+ * @param object $item Menu item data object.
+ * @param int $depth Depth of menu item. Used for padding.
+ * @param array $args Menu item args.
+ * @param int $id Nav menu ID.
+ *
+ * @return string Form fields
+ */
+ protected function get_fields( $item, $depth, $args = array(), $id = 0 ) {
+ ob_start();
+
+ /**
+ * Get menu item custom fields from plugins/themes
+ *
+ * @since 0.1.0
+ * @since 1.0.0 Pass correct parameters.
+ *
+ * @param int $item_id Menu item ID.
+ * @param object $item Menu item data object.
+ * @param int $depth Depth of menu item. Used for padding.
+ * @param array $args Menu item args.
+ * @param int $id Nav menu ID.
+ *
+ * @return string Custom fields HTML.
+ */
+ do_action( 'wp_nav_menu_item_custom_fields', $item->ID, $item, $depth, $args, $id );
+
+ return ob_get_clean();
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/CHANGELOG.md b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/CHANGELOG.md
new file mode 100644
index 00000000..e7590111
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/CHANGELOG.md
@@ -0,0 +1,470 @@
+##### [Version 3.3.25](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.24...v3.3.25) (2024-07-08)
+
+improve upgrade link
+
+##### [Version 3.3.24](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.23...v3.3.24) (2024-06-25)
+
+- Feat: Allow affiliate url change via DB option.
+- Fix: Featured plugins displaying on some non-pro products.
+
+##### [Version 3.3.23](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.22...v3.3.23) (2024-06-19)
+
+- fix: compress images
+- fix: replace huge SVG logo with png version
+- fix: improve text on float widget
+
+##### [Version 3.3.22](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.21...v3.3.22) (2024-05-17)
+
+- Updated NPM packages
+- Fixed the default state of the telemetry logger flag for PRO users
+- Added floating widget functionality
+- Updated the remote get check for WordPress VIP env
+
+##### [Version 3.3.21](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.20...v3.3.21) (2024-04-29)
+
+- fixes non-existant string being used in Licenser
+
+##### [Version 3.3.20](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.19...v3.3.20) (2024-04-16)
+
+fix required params on sprintf
+
+##### [Version 3.3.19](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.18...v3.3.19) (2024-04-15)
+
+Add full translation support
+
+##### [Version 3.3.18](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.17...v3.3.18) (2024-04-05)
+
+### Big Fixes
+- Fix rollback for Themes
+
+##### [Version 3.3.17](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.16...v3.3.17) (2024-04-01)
+
+### Improvements
+- Add safeguard against type mutation for featured plugin results.
+
+##### [Version 3.3.16](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.15...v3.3.16) (2024-03-29)
+
+### Improvements
+- Formbricks on multiple products.
+- List Pro Products in featured tab.
+
+##### [Version 3.3.15](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.14...v3.3.15) (2024-03-26)
+
+### Improvements
+- Add a filter to disallow promotions on specific products.
+- Update Formbricks
+
+##### [Version 3.3.14](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.13...v3.3.14) (2024-02-27)
+
+- Add Announcement Module
+- Add Script Loader Module
+
+##### [Version 3.3.13](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.12...v3.3.13) (2024-02-01)
+
+- Updated nonce check
+
+##### [Version 3.3.12](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.11...v3.3.12) (2024-01-31)
+
+- fix: prevent reference key set for users with no capability
+
+##### [Version 3.3.11](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.10...v3.3.11) (2023-12-12)
+
+- fix: cached requests for wp options
+- fix: php notice on failed xml feed
+
+##### [Version 3.3.10](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.9...v3.3.10) (2023-12-11)
+
+feat: add new filter for tsdk_utmify query arguments
+
+##### [Version 3.3.9](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.8...v3.3.9) (2023-11-16)
+
+- Fix: a debugging error when you activate Neve Pro after installing Otter & Otter Pro without the license.
+
+##### [Version 3.3.8](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.7...v3.3.8) (2023-11-14)
+
+- Add Product Telemetry
+
+##### [Version 3.3.7](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.6...v3.3.7) (2023-10-31)
+
+- fix: deprecating notice in Dashboard Widget
+
+##### [Version 3.3.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.5...v3.3.6) (2023-10-05)
+
+- Fix duplicate notification in Neve FSE
+- Fix SDK breaking Enfold theme builder
+
+##### [Version 3.3.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.4...v3.3.5) (2023-09-29)
+
+Fix TPC message.
+Fix TPC typo.
+
+##### [Version 3.3.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.3...v3.3.4) (2023-09-18)
+
+- Allow users to activate plugins from the About page
+
+##### [Version 3.3.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.2...v3.3.3) (2023-08-22)
+
+- Disable install buttons on the About page if users can not install plugins
+
+##### [Version 3.3.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.1...v3.3.2) (2023-08-02)
+
+- Added a new product page for Otter
+
+##### [Version 3.3.1](https://github.com/Codeinwp/themeisle-sdk/compare/v3.3.0...v3.3.1) (2023-06-21)
+
+- Fix Neve FSE promo typo
+
+#### [Version 3.3.0](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.41...v3.3.0) (2023-05-30)
+
+- Adds About Page Integration
+- Adds promos for Neve FSE, Sparks & PPOM
+
+##### [Version 3.2.41](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.40...v3.2.41) (2023-05-10)
+
+- Delay product recommendation mentions
+- Allow upselling notifications for new users
+
+##### [Version 3.2.40](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.39...v3.2.40) (2023-03-30)
+
+- Add ROP upsell to all products
+
+##### [Version 3.2.39](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.38...v3.2.39) (2023-03-17)
+
+* Adds direct utility function for a direct support link.
+
+##### [Version 3.2.38](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.37...v3.2.38) (2023-03-10)
+
+Fix promotions path-breaking
+
+##### [Version 3.2.37](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.36...v3.2.37) (2023-03-01)
+
+Fix array casting
+
+##### [Version 3.2.36](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.35...v3.2.36) (2023-03-01)
+
+fix perfomance issues on attachments count https://github.com/Codeinwp/themeisle-sdk/issues/159
+
+##### [Version 3.2.35](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.34...v3.2.35) (2023-02-22)
+
+Added Codeinwp and wpshout feeds to dashboard widget
+
+##### [Version 3.2.34](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.33...v3.2.34) (2023-01-31)
+
+Improve promotions
+
+##### [Version 3.2.33](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.32...v3.2.33) (2023-01-30)
+
+* Adds PHP 8.2 compatibility
+* Update promotions
+
+##### [Version 3.2.32](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.31...v3.2.32) (2022-11-30)
+
+Release
+
+##### [Version 3.2.31](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.30...v3.2.31) (2022-11-23)
+
+- improve the promotions module
+
+##### [Version 3.2.30](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.29...v3.2.30) (2022-09-15)
+
+- fix filesystem wrong use - ref [#138](https://github.com/Codeinwp/themeisle-sdk/issues/138), props [@ethanclevenger91](https://github.com/ethanclevenger91) for reporting
+
+##### [Version 3.2.29](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.28...v3.2.29) (2022-09-08)
+
+* Adds compatibility mechanism
+* Adds content utms
+* Adds usage time on uninstall feedback
+
+##### [Version 3.2.28](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.27...v3.2.28) (2022-08-30)
+
+* Adds utm handler
+* Improve promotions
+
+##### [Version 3.2.27](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.26...v3.2.27) (2022-08-23)
+
+- Add Promotion Module
+Add the Promotion module for free plugins
+
+##### [Version 3.2.26](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.25...v3.2.26) (2022-05-12)
+
+- [Fix] Solve rollback sometimes not available
+
+##### [Version 3.2.25](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.24...v3.2.25) (2022-03-28)
+
+- Force update request after rollback
+
+##### [Version 3.2.24](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.23...v3.2.24) (2022-02-09)
+
+Fix edge case issue on dismiss
+Avoid issues with open_basedir restrictions
+
+##### [Version 3.2.23](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.22...v3.2.23) (2022-02-02)
+
+Fix php 8.1 issues
+Fix edge case when update_themes site transient was empty and a fatal error was thrown
+
+##### [Version 3.2.22](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.21...v3.2.22) (2021-10-27)
+
+Fix edge case when reset failed checks was not working properly
+
+##### [Version 3.2.21](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.20...v3.2.21) (2021-06-30)
+
+review and improve compatibility with auto-updates on custom updates endpoint
+
+##### [Version 3.2.20](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.19...v3.2.20) (2021-03-30)
+
+add wp-config support
+
+##### [Version 3.2.19](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.18...v3.2.19) (2021-03-12)
+
+* Adds compatibility with latest PHPCS coding standards.
+* Adds compatibility with core auto-update.
+
+##### [Version 3.2.18](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.17...v3.2.18) (2021-03-04)
+
+* Fix regression on rollback order
+
+##### [Version 3.2.17](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.16...v3.2.17) (2021-03-04)
+
+* Fix compatibility with PHP 8 due to usort
+
+##### [Version 3.2.16](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.15...v3.2.16) (2020-11-17)
+
+* Fix long texts on rollback.
+* Fix RTL mode for uninstall feedback.
+
+##### [Version 3.2.15](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.14...v3.2.15) (2020-07-23)
+
+* remove no redundant module
+
+##### [Version 3.2.14](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.13...v3.2.14) (2020-06-10)
+
+> Things are getting better every day. 🚀
+
+##### [Version 3.2.13](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.12...v3.2.13) (2020-06-10)
+
+Adds plan logic and expiration
+
+##### [Version 3.2.12](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.11...v3.2.12) (2020-06-10)
+
+Adds key filter
+
+##### [Version 3.2.11](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.10...v3.2.11) (2020-06-04)
+
+* remove non-printable chars
+
+##### [Version 3.2.10](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.9...v3.2.10) (2020-05-28)
+
+* Remove extra files on export
+
+##### [Version 3.2.9](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.8...v3.2.9) (2020-05-18)
+
+adds new endpoints
+
+##### [Version 3.2.8](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.7...v3.2.8) (2020-03-24)
+
+* change license handler method access
+
+##### [Version 3.2.7](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.6...v3.2.7) (2020-03-24)
+
+* fix callback for license processing hook
+
+##### [Version 3.2.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.5...v3.2.6) (2020-03-23)
+
+* Fix notice on license deactivation
+
+##### [Version 3.2.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.4...v3.2.5) (2020-03-23)
+
+* always load notification manager last
+
+##### [Version 3.2.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.3...v3.2.4) (2020-03-21)
+
+* Cast version response to array for icons
+
+##### [Version 3.2.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.2...v3.2.3) (2020-03-21)
+
+* use product slug instead of the one from api
+
+##### [Version 3.2.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.1...v3.2.2) (2020-03-13)
+
+* improve notice dismiss mechanism
+
+##### [Version 3.2.1](https://github.com/Codeinwp/themeisle-sdk/compare/v3.2.0...v3.2.1) (2020-03-05)
+
+Fix rollback call for private products
+
+#### [Version 3.2.0](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.9...v3.2.0) (2020-03-04)
+
+* adds license activation/deactivation handlers for wp cli
+* adds compatibility with the newest license API
+
+##### [Version 3.1.9](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.8...v3.1.9) (2020-02-24)
+
+* Add integration with GitHub actions
+
+## [3.1.8](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.7...v3.1.8) (2019-11-18)
+
+
+### Bug Fixes
+
+* update developers name ([6aca63e](https://github.com/Codeinwp/themeisle-sdk/commit/6aca63e))
+
+## [3.1.7](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.6...v3.1.7) (2019-11-07)
+
+
+### Bug Fixes
+
+* license field style on wp5.3 ([0239997](https://github.com/Codeinwp/themeisle-sdk/commit/0239997))
+* license field style on wp5.3 ([86d3a1b](https://github.com/Codeinwp/themeisle-sdk/commit/86d3a1b))
+
+## [3.1.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.5...v3.1.6) (2019-09-24)
+
+
+### Bug Fixes
+
+* remove license related options when deactivated ([02cd6ce](https://github.com/Codeinwp/themeisle-sdk/commit/02cd6ce))
+* remove license related options when deactivated ([d3c1a1f](https://github.com/Codeinwp/themeisle-sdk/commit/d3c1a1f))
+
+## [3.1.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.4...v3.1.5) (2019-09-11)
+
+
+### Bug Fixes
+
+* allow unloading certain module features ([2a2559a](https://github.com/Codeinwp/themeisle-sdk/commit/2a2559a))
+* license activation workflow, show error message when failed to a… ([ade795c](https://github.com/Codeinwp/themeisle-sdk/commit/ade795c))
+* license activation workflow, show error message when failed to activate ([2f5cbae](https://github.com/Codeinwp/themeisle-sdk/commit/2f5cbae))
+
+## [3.1.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.3...v3.1.4) (2019-08-23)
+
+
+### Bug Fixes
+
+* license key was missing on get_version call ([365cde6](https://github.com/Codeinwp/themeisle-sdk/commit/365cde6))
+* license key was missing on get_version call ([c02f225](https://github.com/Codeinwp/themeisle-sdk/commit/c02f225))
+
+## [3.1.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.2...v3.1.3) (2019-08-20)
+
+
+### Bug Fixes
+
+* license deactivation behaviour https://github.com/Codeinwp/visua… ([59c4afe](https://github.com/Codeinwp/themeisle-sdk/commit/59c4afe))
+* license deactivation behaviour https://github.com/Codeinwp/visualizer-pro/issues/192 ([f641e18](https://github.com/Codeinwp/themeisle-sdk/commit/f641e18))
+
+## [3.1.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.1...v3.1.2) (2019-08-12)
+
+
+### Bug Fixes
+
+* phpunit test case ([efe851c](https://github.com/Codeinwp/themeisle-sdk/commit/efe851c))
+* url format for license endpoint, improve changelog handling and license checks ([a492c68](https://github.com/Codeinwp/themeisle-sdk/commit/a492c68))
+
+## [3.1.1](https://github.com/Codeinwp/themeisle-sdk/compare/v3.1.0...v3.1.1) (2019-08-08)
+
+
+### Bug Fixes
+
+* adds is_file for file existence check ([d1205c4](https://github.com/Codeinwp/themeisle-sdk/commit/d1205c4))
+* adds is_file for file existence check ([be119c1](https://github.com/Codeinwp/themeisle-sdk/commit/be119c1))
+
+# [3.1.0](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.10...v3.1.0) (2019-08-05)
+
+
+### Bug Fixes
+
+* adds extra comments for rest of the options, fix [#64](https://github.com/Codeinwp/themeisle-sdk/issues/64) ([018b22f](https://github.com/Codeinwp/themeisle-sdk/commit/018b22f))
+* hide license key when active under a password mask, fix [#67](https://github.com/Codeinwp/themeisle-sdk/issues/67) ([c0633c2](https://github.com/Codeinwp/themeisle-sdk/commit/c0633c2))
+* new uninstall feedback popup issues ([5bda4bd](https://github.com/Codeinwp/themeisle-sdk/commit/5bda4bd))
+* phpcs indentation errors ([d59ed4f](https://github.com/Codeinwp/themeisle-sdk/commit/d59ed4f))
+* undefined notices on license check, fix [#60](https://github.com/Codeinwp/themeisle-sdk/issues/60) ([7f56a97](https://github.com/Codeinwp/themeisle-sdk/commit/7f56a97))
+* uninstall feedback popup placement [[#61](https://github.com/Codeinwp/themeisle-sdk/issues/61)] ([1102d6c](https://github.com/Codeinwp/themeisle-sdk/commit/1102d6c))
+
+
+### Features
+
+* new product feedback popup ([f0dbab3](https://github.com/Codeinwp/themeisle-sdk/commit/f0dbab3))
+* new uninstall feedback form for themes ([8a29f21](https://github.com/Codeinwp/themeisle-sdk/commit/8a29f21))
+
+## [3.0.10](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.9...v3.0.10) (2019-07-16)
+
+
+### Bug Fixes
+
+* compatibility with lower PHP versions ([065ac8e](https://github.com/Codeinwp/themeisle-sdk/commit/065ac8e))
+* not loading licenser when SDK comes from theme [[#62](https://github.com/Codeinwp/themeisle-sdk/issues/62)] ([b706ca7](https://github.com/Codeinwp/themeisle-sdk/commit/b706ca7))
+* not loading licenser when SDK comes from theme [[#65](https://github.com/Codeinwp/themeisle-sdk/issues/65) ([419d8e6](https://github.com/Codeinwp/themeisle-sdk/commit/419d8e6))
+* preserve loaded when adding the licenser one ([cd50434](https://github.com/Codeinwp/themeisle-sdk/commit/cd50434))
+
+## [3.0.9](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.8...v3.0.9) (2019-06-26)
+
+
+### Bug Fixes
+
+* adds new icon for dashboard widget ([de78068](https://github.com/Codeinwp/themeisle-sdk/commit/de78068))
+* anchor element on license activation message which should link to the license field, fix [#57](https://github.com/Codeinwp/themeisle-sdk/issues/57) ([2e78856](https://github.com/Codeinwp/themeisle-sdk/commit/2e78856))
+* change uninstall feedback logo with new version, fix [#58](https://github.com/Codeinwp/themeisle-sdk/issues/58) ([2554a4f](https://github.com/Codeinwp/themeisle-sdk/commit/2554a4f))
+* remove soon to expire notice, fix https://github.com/Codeinwp/themeisle/issues/752 ([a126225](https://github.com/Codeinwp/themeisle-sdk/commit/a126225))
+
+## [3.0.8](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.7...v3.0.8) (2019-05-28)
+
+
+### Bug Fixes
+
+* undefined class on diff module which should check the class on global namespace ([df6bb12](https://github.com/Codeinwp/themeisle-sdk/commit/df6bb12))
+
+## [3.0.7](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.6...v3.0.7) (2019-05-27)
+
+
+### Bug Fixes
+
+* change store url with the new domain ([6bdbe1e](https://github.com/Codeinwp/themeisle-sdk/commit/6bdbe1e))
+
+## [3.0.6](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.5...v3.0.6) (2019-05-21)
+
+
+### Bug Fixes
+
+* build php version for deployment stage ([a785699](https://github.com/Codeinwp/themeisle-sdk/commit/a785699))
+* uninstall feedback should load only on the proper pages ([259e78f](https://github.com/Codeinwp/themeisle-sdk/commit/259e78f))
+
+## [3.0.5](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.4...v3.0.5) (2019-03-07)
+
+
+### Bug Fixes
+
+* dashboard widget issues and recommended module inconsistency fix [#50](https://github.com/Codeinwp/themeisle-sdk/issues/50), [#49](https://github.com/Codeinwp/themeisle-sdk/issues/49), [#47](https://github.com/Codeinwp/themeisle-sdk/issues/47) ([757eb02](https://github.com/Codeinwp/themeisle-sdk/commit/757eb02))
+
+## [3.0.4](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.3...v3.0.4) (2019-01-28)
+
+
+### Bug Fixes
+
+* uninstall feedback disclosure issues when one of the feedback fields is open ([4631eef](https://github.com/Codeinwp/themeisle-sdk/commit/4631eef))
+
+## [3.0.3](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.2...v3.0.3) (2019-01-07)
+
+
+### Bug Fixes
+
+* **build:** fix exit code when is running outside wordpress context ([d298bb5](https://github.com/Codeinwp/themeisle-sdk/commit/d298bb5))
+
+## [3.0.2](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.1...v3.0.2) (2018-12-28)
+
+
+### Bug Fixes
+
+* remove composer/installers from package requirements ([a0ad543](https://github.com/Codeinwp/themeisle-sdk/commit/a0ad543))
+
+## [3.0.1](https://github.com/Codeinwp/themeisle-sdk/compare/v3.0.0...v3.0.1) (2018-12-24)
+
+
+### Bug Fixes
+
+* notifications setup triggers after all products register their n… ([999a944](https://github.com/Codeinwp/themeisle-sdk/commit/999a944))
+* notifications setup triggers after all products register their notices ([ec3cacc](https://github.com/Codeinwp/themeisle-sdk/commit/ec3cacc))
+
+# 1.0.0 (2018-12-21)
+
+
+### Features
+
+* adds uninstall feedback privacy policy info ([ed17943](https://github.com/Codeinwp/themeisle-sdk/commit/ed17943))
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/LICENSE b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/LICENSE
new file mode 100644
index 00000000..9cecc1d4
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/LICENSE
@@ -0,0 +1,674 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc.
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {one line to give the program's name and a brief idea of what it does.}
+ Copyright (C) {year} {name of author}
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+ {project} Copyright (C) {year} {fullname}
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+.
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/animation.jpg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/animation.jpg
new file mode 100644
index 00000000..0ba12f6d
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/animation.jpg differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/conditions.jpg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/conditions.jpg
new file mode 100644
index 00000000..f74b6f2f
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/conditions.jpg differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/css.jpg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/css.jpg
new file mode 100644
index 00000000..7b1356b6
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/css.jpg differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/neve.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/neve.png
new file mode 100644
index 00000000..3006122f
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/neve.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/optimole-logo.svg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/optimole-logo.svg
new file mode 100644
index 00000000..6510cf19
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/optimole-logo.svg
@@ -0,0 +1,31 @@
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-builder.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-builder.png
new file mode 100644
index 00000000..9b1b7901
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-builder.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-library.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-library.png
new file mode 100644
index 00000000..48b38fb6
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-library.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-patterns.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-patterns.png
new file mode 100644
index 00000000..4c73528a
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/otter/otter-patterns.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/sparks.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/sparks.png
new file mode 100644
index 00000000..7224af0d
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/sparks.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/team.jpg b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/team.jpg
new file mode 100644
index 00000000..42bf54ca
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/team.jpg differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/themeisle-logo.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/themeisle-logo.png
new file mode 100644
index 00000000..cb20f887
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/themeisle-logo.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/wplk.png b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/wplk.png
new file mode 100644
index 00000000..3b19a7fd
Binary files /dev/null and b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/images/wplk.png differ
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.asset.php
new file mode 100644
index 00000000..fb031746
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.asset.php
@@ -0,0 +1 @@
+ array('react', 'wp-components', 'wp-element'), 'version' => '2f7b01c785d210cc0a66');
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.css
new file mode 100644
index 00000000..90d73702
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.css
@@ -0,0 +1 @@
+#wpcontent{padding-left:0 !important}.ti-about{--border: 1px solid #ccc;--link-color: var(--wp-admin-theme-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:normal;display:grid;gap:30px}.ti-about .container{margin:0 auto;max-width:960px;padding:0 15px}.ti-about p{font-size:14px;line-height:1.6}.ti-about button{font-weight:600}.ti-about .spin{animation:spin 1s infinite linear}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ti-about .head{background:#fff;border-bottom:var(--border);padding:18px 0}.ti-about .head .container{padding:0 15px;display:flex;flex-wrap:wrap;align-items:center}.ti-about .head img{max-height:55px}.ti-about .head p{margin-left:10px}.ti-about .head a{font-style:italic;font-weight:bold}.ti-about .nav{border-bottom:var(--border);display:flex;flex-wrap:wrap;font-size:16px;margin:0;font-weight:600;-moz-column-gap:20px;column-gap:20px}.ti-about .nav a{border-bottom:4px solid rgba(0,0,0,0);color:#868686;padding:20px 10px;text-decoration:none;margin-bottom:-1px;box-sizing:border-box}.ti-about .nav a:hover{color:#313233}.ti-about .nav li{display:flex;margin:0}.ti-about .nav li.active a{border-color:var(--link-color);color:#313233}.ti-about .story-card .footer,.ti-about .story-card .body{display:grid;grid-template-columns:var(--grid, 1fr);align-items:center}.ti-about .story-card{border:var(--border);border-radius:0 0 10px 10px}.ti-about .story-card .body{background:#fff;padding:35px 35px 10px 35px}.ti-about .story-card .body h2{font-size:30px;margin:0 0 30px;color:#1f1d1d}.ti-about .story-card .body p{color:#1e1e1e}.ti-about .story-card .body figure{order:0;margin:0}.ti-about .story-card .body figcaption{margin:10px 0;color:#797979;font-size:12px}.ti-about .story-card .body img{border-radius:8px;max-width:100%}.ti-about .story-card .footer{border-top:var(--border);padding:30px 40px}.ti-about .story-card .footer h2{margin:0 0 20px;text-align:center;font-size:21px}.ti-about .story-card form{display:flex;align-items:center}.ti-about .story-card form .dashicons-yes-alt{color:#609952}.ti-about .story-card input{height:36px;flex-grow:1;border:var(--border);border-radius:2px;font-size:12px;margin-right:15px}.ti-about .product-cards{display:grid;gap:30px}.ti-about .product-card{background:#fff;display:grid;border:var(--border)}.ti-about .product-card h2{font-size:21px;margin:0}.ti-about .product-card p{margin:0;color:#6c6c6c}.ti-about .product-card .header{padding:20px 15px 0;display:flex;align-items:center}.ti-about .product-card .body{padding:20px 15px}.ti-about .product-card img{max-width:50px;margin-right:15px;border-radius:6px}.ti-about .product-card .footer{border-top:var(--border);display:flex;align-items:center;padding:15px;align-self:flex-end;justify-content:space-between}.ti-about .product-card .footer p{margin:8px 0;font-weight:600;font-size:13px;color:#313233}.ti-about .product-card .footer .not-installed{color:#7e7e7e}.ti-about .product-card .footer .active{color:#609952}.ti-about .product-card button,.ti-about .product-card a,.ti-about .product-card .spin{margin-left:auto;text-decoration:none}.ti-about .product-page{margin:0 auto;padding:0;width:100%;max-width:960px;border:1px solid #ccc;border-radius:8px;background-color:#fff}.ti-about .product-page .hero{display:flex;flex-direction:column;align-items:center;padding:64px;border-bottom:1px solid #ccc}.ti-about .product-page .hero h1{font-size:30px;line-height:42px;max-width:500px;text-align:center}.ti-about .product-page .hero p{font-size:14px;line-height:24px;max-width:500px;text-align:center}.ti-about .product-page .hero .logo{width:64px;margin-bottom:24px}.ti-about .product-page .hero .label{font-size:10px;line-height:12px;color:#ed6f57;background-color:rgba(237,111,87,.1803921569);padding:8px 16px;border-radius:4px}.ti-about .product-page .col-3-highlights{display:flex;flex-direction:column;justify-content:space-evenly;padding:24px 0;border-bottom:1px solid #ccc;align-items:center;text-align:center}.ti-about .product-page .col-3-highlights .col{max-width:360px}.ti-about .product-page .col-3-highlights .col h3{font-size:21px;line-height:32px;margin-bottom:8px}.ti-about .product-page .col-3-highlights .col p{font-size:14px;line-height:24px}.ti-about .product-page .col-2-highlights{display:flex;flex-direction:column;justify-content:space-evenly;align-items:center;padding:24px 0;border-bottom:1px solid #ccc}.ti-about .product-page .col-2-highlights .col{width:90%}.ti-about .product-page .col-2-highlights .col img{max-width:450px;width:100%}.ti-about .product-page .col-2-highlights .col h2{font-size:24px;line-height:35px;margin-bottom:8px}.ti-about .product-page .col-2-highlights .col p{font-size:14px;line-height:24px}.ti-about .product-page .button-row{display:flex;gap:12px;margin-top:48px}.ti-about .otter-blocks .testimonial-nav{display:flex;gap:8px}.ti-about .otter-blocks .testimonial-nav .testimonial-button{width:10px;height:10px;background-color:#d9d9d9;margin:0;padding:0;border-radius:50%}.ti-about .otter-blocks .testimonial-nav .testimonial-button.active{background-color:#ed6f57}.ti-about .otter-blocks .testimonial-container{width:100%;max-width:450px;display:flex;overflow-x:scroll;scroll-behavior:smooth;margin:0;padding:0}.ti-about .otter-blocks .testimonial-container::-webkit-scrollbar{display:none}.ti-about .otter-blocks .testimonial-container .testimonial{width:100%;flex:1 0 100%;display:flex;flex-wrap:wrap;justify-content:left;gap:14px;align-items:center}.ti-about .otter-blocks .testimonial-container .testimonial p{width:100%;font-size:14px;line-height:24px}.ti-about .otter-blocks .testimonial-container .testimonial h3{font-size:16px;line-height:20px;font-weight:700;color:#1c1c1c}.ti-about .otter-blocks .testimonial-container .testimonial img{width:36px;height:36px;border-radius:50%}.ti-about .otter-blocks .otter-button.is-primary{background-color:#ed6f57}.ti-about .otter-blocks .otter-button.is-secondary{color:#ed6f57;box-shadow:inset 0 0 0 1px #ed6f57}.ti-about .otter-blocks .otter-button.is-loading{background-color:#6c6c6c;color:#fff}@media (min-width: 660px){.ti-about .product-cards{grid-template-columns:1fr 1fr}.ti-about .product-page .col-3-highlights,.ti-about .product-page .col-2-highlights{flex-direction:row;padding:64px 0}.ti-about .product-page .col-3-highlights{text-align:left}.ti-about .product-page .col-3-highlights .col{max-width:200px}.ti-about .product-page .col-2-highlights .col{width:45%}}@media (min-width: 992px){.ti-about .story-card .footer,.ti-about .story-card .body{gap:60px}.ti-about .story-card{--grid: 1.1fr 1fr}.ti-about .story-card .footer h2{margin:0;text-align:left}.ti-about .product-cards{grid-template-columns:1fr 1fr 1fr}}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.js
new file mode 100644
index 00000000..cdecb528
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/about/about.js
@@ -0,0 +1 @@
+(()=>{"use strict";const e=window.React,t=window.wp.element;function a({pages:t=[],selected:a=""}){const{currentProduct:n,logoUrl:l,strings:s,links:c}=window.tiSDKAboutData,i=(e="")=>e===a?"active":"";return(0,e.createElement)("div",null,(0,e.createElement)("div",{className:"head"},(0,e.createElement)("div",{className:"container"},(0,e.createElement)("img",{src:l,alt:n.name}),(0,e.createElement)("p",null,"by ",(0,e.createElement)("a",{href:"https://themeisle.com"},"Themeisle")))),(c.length>0||t.length>0)&&(0,e.createElement)("div",{className:"container"},(0,e.createElement)("ul",{className:"nav"},(0,e.createElement)("li",{className:i()},(0,e.createElement)("a",{href:window.location},s.aboutUs)),t.map(((t,a)=>(0,e.createElement)("li",{className:i(t.hash),key:a},(0,e.createElement)("a",{href:t.hash},t.name)))),c.map(((t,a)=>(0,e.createElement)("li",{key:a},(0,e.createElement)("a",{href:t.url},t.text)))))))}const n=window.wp.components;function l(){const{strings:a,teamImage:l,homeUrl:s,pageSlug:c}=window.tiSDKAboutData,{heroHeader:i,heroTextFirst:r,heroTextSecond:o,teamImageCaption:m,newsHeading:d,emailPlaceholder:u,signMeUp:E}=a,[p,h]=(0,t.useState)(""),[g,v]=(0,t.useState)(!1),[N,b]=(0,t.useState)(!1);return(0,e.createElement)("div",{className:"container"},(0,e.createElement)("div",{className:"story-card"},(0,e.createElement)("div",{className:"body"},(0,e.createElement)("div",null,(0,e.createElement)("h2",null,i),(0,e.createElement)("p",null,r),(0,e.createElement)("p",null,o)),(0,e.createElement)("figure",null,(0,e.createElement)("img",{src:l,alt:m}),(0,e.createElement)("figcaption",null,m))),(0,e.createElement)("div",{className:"footer"},(0,e.createElement)("h2",null,d),(0,e.createElement)("form",{onSubmit:e=>{e.preventDefault(),v(!0),fetch("https://api.themeisle.com/tracking/subscribe",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json, */*;q=0.1","Cache-Control":"no-cache"},body:JSON.stringify({slug:"about-us",site:s,from:c,email:p})}).then((e=>e.json())).then((e=>{v(!1),"success"===e.code&&b(!0)}))?.catch((e=>{v(!1)}))}},(0,e.createElement)("input",{disabled:g||N,type:"email",value:p,onChange:e=>{h(e.target.value)},placeholder:u}),!g&&!N&&(0,e.createElement)(n.Button,{isPrimary:!0,type:"submit"},E),g&&(0,e.createElement)("span",{className:"dashicons dashicons-update spin"}),N&&(0,e.createElement)("span",{className:"dashicons dashicons-yes-alt"})))))}const s=(e,t=!1)=>new Promise((a=>{wp.updates.ajax(!0===t?"install-theme":"install-plugin",{slug:e,success:()=>{a({success:!0})},error:e=>{a({success:!1,code:e.errorCode})}})}));function c({product:a,slug:l}){const{icon:c,name:i,description:r,status:o,premiumUrl:m,activationLink:d}=a,{strings:u,canInstallPlugins:E,canActivatePlugins:p}=window.tiSDKAboutData,{installNow:h,installed:g,notInstalled:v,active:N,activate:b,learnMore:w}=u,f=!!m,[y,k]=(0,t.useState)(o),[S,T]=(0,t.useState)(!1),D=async()=>{T(!0),await s(l,"neve"===l).then((e=>{e.success&&k("installed")})),T(!1)},x=async()=>{T(!0),window.location.href=d},_=()=>"not-installed"===y&&f?(0,e.createElement)(n.Button,{isLink:!0,icon:"external",href:m,target:"_blank"},w):"not-installed"!==y||f?"installed"===y?(0,e.createElement)(n.Button,{isSecondary:!0,onClick:x,disabled:S||!p},b):null:(0,e.createElement)(n.Button,{isPrimary:!0,onClick:D,disabled:S||!E},h),C=!E&&"not-installed"===y||!p&&"installed"===y?(0,e.createElement)(n.Tooltip,{text:`Ask your admin to enable ${i} on your site`,position:"top center"},_()):_();return(0,e.createElement)("div",{className:"product-card"},(0,e.createElement)("div",{className:"header"},c&&(0,e.createElement)("img",{src:c,alt:i}),(0,e.createElement)("h2",null,i)),(0,e.createElement)("div",{className:"body"},(0,e.createElement)("p",{dangerouslySetInnerHTML:{__html:r}})),(0,e.createElement)("div",{className:"footer"},(0,e.createElement)("p",null,"Status:"," ",(0,e.createElement)("span",{className:y},"installed"===y&&g,"not-installed"===y&&v,"active"===y&&N)),"active"!==y&&!S&&C,S&&(0,e.createElement)("span",{className:"dashicons dashicons-update spin"})))}function i(){const{products:t}=window.tiSDKAboutData;return(0,e.createElement)("div",{className:"container"},(0,e.createElement)("div",{className:"product-cards"},Object.keys(t).map(((a,n)=>(0,e.createElement)(c,{key:a,slug:a,product:t[a]})))))}const r={"otter-page":function({page:a={}}){const{products:l,canInstallPlugins:c,canActivatePlugins:i}=window.tiSDKAboutData,{strings:r,plugin:o}=a,m=a&&a.product?a.product:"",d=m&&l[m]&&l[m].icon?l[m].icon:null,[u,E]=(0,t.useState)(r.testimonials.users[0]),[p,h]=(0,t.useState)(o.status),[g,v]=(0,t.useState)(!1),N="In Progress",b=async()=>{v(!0),await s(m,!1).then((e=>{e.success&&(h("installed"),w())}))},w=async()=>{v(!0),window.location.href=o.activationLink},f=(0,e.createElement)(n.Button,{variant:"primary",disabled:g||("not-installed"===p?!c:!i),className:"otter-button"+(g?" is-loading":""),onClick:"not-installed"===p?b:w},g?(0,e.createElement)("span",null,(0,e.createElement)("span",{className:"dashicons dashicons-update spin"})," ",N):r.buttons.install_otter_free),y=(0,e.createElement)(n.Button,{variant:"primary",disabled:g||("not-installed"===p?!c:!i),className:"otter-button"+(g?" is-loading":""),onClick:"not-installed"===p?b:w},g?(0,e.createElement)("span",null,(0,e.createElement)("span",{className:"dashicons dashicons-update spin"}),N):r.buttons.install_now),k=!c&&"not-installed"===p||!i&&"installed"===p||!1,S=t=>k?(0,e.createElement)(n.Tooltip,{text:"Ask your admin to enable Otter on your site",position:"top center"},t):t;return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("div",{className:"hero"},d&&(0,e.createElement)("img",{className:"logo",src:d,alt:a.name||""}),(0,e.createElement)("span",{className:"label"},"Neve + Otter = New Possibilities 🤝"),(0,e.createElement)("h1",null,r.heading),(0,e.createElement)("p",null,r.text),("not-installed"===p||"installed"===p)&&S(f)),(0,e.createElement)("div",{className:"col-3-highlights"},(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h3",null,r.features.advancedTitle),(0,e.createElement)("p",null,r.features.advancedDesc)),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h3",null,r.features.fastTitle),(0,e.createElement)("p",null,r.features.fastDesc)),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h3",null,r.features.mobileTitle),(0,e.createElement)("p",null,r.features.mobileDesc))),(0,e.createElement)("div",{className:"col-2-highlights"},(0,e.createElement)("div",{className:"col"},(0,e.createElement)("img",{src:r.details.s1Image,alt:r.details.s1Title})),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h2",null,r.details.s1Title),(0,e.createElement)("p",null,r.details.s1Text))),(0,e.createElement)("div",{className:"col-2-highlights"},(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h2",null,r.details.s2Title),(0,e.createElement)("p",null,r.details.s2Text)),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("img",{src:r.details.s2Image,alt:r.details.s1Title}))),(0,e.createElement)("div",{className:"col-2-highlights"},(0,e.createElement)("div",{className:"col"},(0,e.createElement)("img",{src:r.details.s3Image,alt:r.details.s1Title})),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h2",null,r.details.s3Title),(0,e.createElement)("p",null,r.details.s3Text))),(0,e.createElement)("div",{className:"col-2-highlights",style:{backgroundColor:"#F7F7F7",borderBottom:"none",borderBottomRightRadius:"8px",borderBottomLeftRadius:"8px"}},(0,e.createElement)("div",{className:"col"},(0,e.createElement)("h2",null,r.testimonials.heading),(0,e.createElement)("div",{className:"button-row"},("not-installed"===p||"installed"===p)&&S(y),(0,e.createElement)("a",{className:"components-button otter-button is-secondary",href:r.buttons.learn_more_link,target:"_blank",rel:"external noreferrer noopener"},r.buttons.learn_more))),(0,e.createElement)("div",{className:"col"},(0,e.createElement)("div",{className:"testimonials"},(0,e.createElement)("ul",{id:"testimonial-container",className:"testimonial-container"},r.testimonials.users.map(((t,a)=>(0,e.createElement)("li",{className:"testimonial",id:"ts_"+a,key:"ts_"+a},(0,e.createElement)("p",null,'"',t.text,'"'),(0,e.createElement)("img",{src:t.avatar,alt:t.name}),(0,e.createElement)("h3",null,t.name))))),(0,e.createElement)("div",{className:"testimonial-nav"},r.testimonials.users.map(((t,a)=>(0,e.createElement)(n.Button,{className:"testimonial-button"+(t.name===u.name?" active":""),key:"button_"+a,onClick:()=>(e=>{const t=r.testimonials.users[e];document.getElementById("ts_"+e).scrollIntoView({behavior:"smooth"}),E(t)})(a)}))))))))}};function o(t){const a=r[t.id];return(0,e.createElement)(a,{page:t.page})}function m({page:t={}}){return(0,e.createElement)("div",{className:"product-page"+(t&&t.product?" "+t.product:"")},(0,e.createElement)(o,{id:t.id,page:t}))}const d=()=>{let e=window.location.hash;return"string"!=typeof window.location.hash?null:e};function u(){const{productPages:n}=window.tiSDKAboutData,s=n?Object.keys(n).map((e=>{const t=n[e];return t.id=e,t})):[],[c,r]=(0,t.useState)(d()),o=()=>{const e=d();null!==e&&r(e)};(0,t.useEffect)((()=>(o(),window.addEventListener("hashchange",o),()=>{window.removeEventListener("hashchange",o)})),[]);const u=s.filter((e=>e.hash===c));return u.length>0?(0,e.createElement)("div",{className:"ti-about"},(0,e.createElement)(a,{pages:s,selected:c}),(0,e.createElement)(m,{page:u[0]})):(0,e.createElement)("div",{className:"ti-about"},(0,e.createElement)(a,{pages:s}),(0,e.createElement)(l,null),(0,e.createElement)(i,null))}document.addEventListener("DOMContentLoaded",(()=>{const a=document.querySelector("#ti-sdk-about");a&&(0,t.render)((0,e.createElement)(u,null),a)}))})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.asset.php
new file mode 100644
index 00000000..9636a057
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.asset.php
@@ -0,0 +1 @@
+ array('wp-components', 'wp-element'), 'version' => 'ce3090dc0e13b5e1c2e4');
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.css
new file mode 100644
index 00000000..0a710691
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.css
@@ -0,0 +1 @@
+#ti-sdk-float-widget .ti-float-button-enter{opacity:.01}#ti-sdk-float-widget .ti-float-button-enter.ti-float-button-enter-active{opacity:1;transition:opacity 200ms ease-in}#ti-sdk-float-widget .ti-float-button-leave{opacity:1}#ti-sdk-float-widget .ti-float-button-leave.ti-float-button-leave-active{opacity:.01;transition:opacity 200ms ease-in}#ti-sdk-float-widget .ti-float-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;width:51px;height:51px;background-color:#f0f0f1;border-radius:50%;display:flex;align-items:center;justify-content:center;position:fixed;bottom:32px;right:24px}#ti-sdk-float-widget .ti-float-button:hover,#ti-sdk-float-widget .ti-float-button:focus{cursor:pointer}#ti-sdk-float-widget .ti-float-button>img,#ti-sdk-float-widget .ti-float-button>span{position:absolute;opacity:0;transition:opacity 200ms ease-in}#ti-sdk-float-widget .ti-float-button>img.active,#ti-sdk-float-widget .ti-float-button>span.active{opacity:1}#ti-sdk-float-widget .ti-float-button>img.active:hover,#ti-sdk-float-widget .ti-float-button>img.active:focus,#ti-sdk-float-widget .ti-float-button>span.active:hover,#ti-sdk-float-widget .ti-float-button>span.active:focus{opacity:.9}#ti-sdk-float-widget .ti-float-button>span{--ti-icon-size: 42px;font-size:var(--ti-icon-size);width:var(--ti-icon-size);height:var(--ti-icon-size);border-radius:50%;color:#fff;background-color:var(--ti-float-primary-color, #2271b1)}#ti-sdk-float-widget .ti-float-button>img{width:42px;height:42px}.ti-float-widget-panel{width:275px;border-radius:8px;background-color:#fff;box-shadow:0px 2px 15px 0px rgba(0,0,0,.1);margin:12px}.ti-float-widget-panel .ti-float-widget-panel__header{border-radius:8px 8px 0 0;padding:12px 12px 48px 12px;background:linear-gradient(75deg, var(--ti-float-primary-color, #2271b1) 15%, rgba(255, 255, 255, 0.65) 500%);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.ti-float-widget-panel .ti-float-widget-panel__header img{background:#fff;border-radius:50%;width:42px;height:42px;box-shadow:0 0 0px 5px #fff;margin:5px}.ti-float-widget-panel .ti-float-widget-panel__header p,.ti-float-widget-panel .ti-float-widget-panel__header h3{color:#fff}.ti-float-widget-panel .ti-float-widget-panel__header p{font-size:14px}.ti-float-widget-panel .ti-float-widget-panel__header h3{font-size:20px;margin:0}.ti-float-widget-panel .ti-float-widget-panel__content{padding:12px;display:flex;flex-direction:column;gap:8px;margin-top:-36px}.ti-float-widget-panel .ti-float-widget-panel__content>a{display:flex;gap:8px;align-items:center;justify-content:flex-start;background:linear-gradient(-75deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 100%);padding:12px;border-radius:8px;box-shadow:0px 2px 15px 0px rgba(0,0,0,.15);color:#000;font-size:14px;text-decoration:none;transition:background 200ms ease-in}.ti-float-widget-panel .ti-float-widget-panel__content>a:hover{background:linear-gradient(-75deg, var(--ti-float-primary-color, #2271b1) -150%, rgb(255, 255, 255) 50%)}.ti-float-widget-panel .ti-float-widget-panel__content>a:focus-visible{box-shadow:0 0 0 2px var(--ti-float-primary-color, #2271b1)}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons{background:#2271b1;color:#efefef;font-size:16px;width:24px;height:24px;padding:4px;border-radius:4px}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons.dashicons-book-alt{background:#fdd7ae;color:#ff9d32}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons.dashicons-format-status{background:#96d7c7;color:#30955e}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons.dashicons-admin-tools{background:#dac8ff;color:#783ff2}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons.dashicons-superhero-alt{background:#ffe39e;color:#fdb600}.ti-float-widget-panel .ti-float-widget-panel__content>a .dashicons.dashicons-star-filled{background:#bfd0ff;color:#3068ff}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.js
new file mode 100644
index 00000000..4c9415cf
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/float_widget/float.js
@@ -0,0 +1 @@
+(()=>{"use strict";const e=window.wp.element;function t(t){let{isActive:l,onToggle:n}=t;const{logoUrl:a,primaryColor:o,strings:i,links:s}=window.tiSDKFloatData;return(0,e.createElement)("div",{className:"ti-float-widget-panel",style:{"--ti-float-primary-color":o}},(0,e.createElement)("div",{className:"ti-float-widget-panel__header"},(0,e.createElement)("img",{src:a,alt:"Site Logo"}),i.panelGreet&&(0,e.createElement)("p",null,i.panelGreet),i.panelTitle&&(0,e.createElement)("h3",null,i.panelTitle)),(0,e.createElement)("div",{className:"ti-float-widget-panel__content"},s&&s.map(((t,l)=>(0,e.createElement)("a",{key:"ti-float_link_"+l,href:t.link,target:!0===(null==t?void 0:t.internal)?"_self":"_blank"},(0,e.createElement)("span",{className:"dashicons "+t.icon}),t.title))),(0,e.createElement)("a",{href:"#ti-toggle-widget-float",className:"screen-reader-shortcut"},i.closeToggle?i.closeToggle:"Close")))}const l=window.wp.components;function n(n){let{isActive:a,onToggle:o,onClose:i}=n;const{logoUrl:s,strings:c}=window.tiSDKFloatData,r=c.toggleButton,m=a?"":"active",d=a?"active":"";return(0,e.createElement)(e.Fragment,null,(0,e.createElement)("button",{id:"ti-toggle-widget-float",tabIndex:"0",className:"ti-float-button",onClick:o,"aria-label":"","aria-pressed":a,"aria-disabled":!1,title:r},(0,e.createElement)("img",{className:"ti-float-logo "+m,src:s}),(0,e.createElement)("span",{className:"dashicons dashicons-no-alt ti-float-close-icon "+d}),(0,e.createElement)("span",{className:"screen-reader-text"},r),a&&(0,e.createElement)(l.Popover,{variant:"unstyled",placement:"top-end",onFocusOutside:()=>{console.log("Focus Outside"),i()}},(0,e.createElement)(t,null))))}function a(){const[t,l]=(0,e.useState)(!1);return(0,e.createElement)(e.Fragment,null,(0,e.createElement)(n,{isActive:t,onToggle:()=>{l(!t)},onClose:()=>{l(!1)}}))}document.addEventListener("DOMContentLoaded",(()=>{const t=document.querySelector("#ti-sdk-float-widget");t&&(0,e.render)((0,e.createElement)(a,null),t)}))})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.asset.php
new file mode 100644
index 00000000..567d0284
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.asset.php
@@ -0,0 +1 @@
+ array('react', 'wp-block-editor', 'wp-components', 'wp-compose', 'wp-data', 'wp-edit-post', 'wp-element', 'wp-hooks', 'wp-plugins'), 'version' => '81a0945a0f941cfc90fa');
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.js
new file mode 100644
index 00000000..4d08eb27
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/index.js
@@ -0,0 +1 @@
+(()=>{"use strict";var e,t={689:()=>{const e=window.React,t=window.wp.blockEditor,o=window.wp.components,n=window.wp.compose,i=window.wp.data,s=window.wp.element,r=window.wp.hooks,a=()=>{const{createNotice:e}=(0,i.dispatch)("core/notices"),[t,o]=(0,s.useState)({}),[n,r]=(0,s.useState)("loading");return(0,i.useSelect)((e=>{if(Object.keys(t).length)return;const{getEntityRecord:n}=e("core"),i=n("root","site");i&&(r("loaded"),o(i))}),[]),[e=>t?.[e],async(t,n,i="Settings saved.")=>{const s={[t]:n};try{const t=await fetch("/wp-json/wp/v2/settings",{method:"POST",headers:{"Content-Type":"application/json","X-WP-Nonce":wpApiSettings.nonce},body:JSON.stringify(s)});t.ok||(r("error"),e("error","Could not save the settings.",{isDismissible:!0,type:"snackbar"}));const n=await t.json();r("loaded"),e("success",i,{isDismissible:!0,type:"snackbar"}),o(n)}catch(e){console.error("Error updating option:",e)}},n]},l=(e,t=!1)=>new Promise((o=>{wp.updates.ajax(!0===t?"install-theme":"install-plugin",{slug:e,success:()=>{o({success:!0})},error:e=>{o({success:!1,code:e.errorCode})}})})),m=e=>new Promise((t=>{jQuery.get(e).done((()=>{t({success:!0})})).fail((()=>{t({success:!1})}))})),c=(e,t)=>{const o={};return Object.keys(t).forEach((function(e){"innerBlocks"!==e&&(o[e]=t[e])})),e.push(o),Array.isArray(t.innerBlocks)?(o.innerBlocks=t.innerBlocks.map((e=>e.id)),t.innerBlocks.reduce(c,e)):e},d={button:{display:"flex",justifyContent:"center",width:"100%"},image:{padding:"20px 0"},skip:{container:{display:"flex",flexDirection:"column",alignItems:"center"},button:{fontSize:"9px"},poweredby:{fontSize:"9px",textTransform:"uppercase"}}},p={"blocks-css":{title:"Custom CSS",description:"Enable Otter Blocks to add Custom CSS for this block.",image:"css.jpg"},"blocks-animation":{title:"Animations",description:"Enable Otter Blocks to add Animations for this block.",image:"animation.jpg"},"blocks-conditions":{title:"Visibility Conditions",description:"Enable Otter Blocks to add Visibility Conditions for this block.",image:"conditions.jpg"}},u=({onClick:t})=>(0,e.createElement)("div",{style:d.skip.container},(0,e.createElement)(o.Button,{style:d.skip.button,variant:"tertiary",onClick:t},"Skip for now"),(0,e.createElement)("span",{style:d.skip.poweredby},"Recommended by ",window.themeisleSDKPromotions.product)),h=(0,n.createHigherOrderComponent)((n=>i=>{if(i.isSelected&&Boolean(window.themeisleSDKPromotions.showPromotion)){const[r,c]=(0,s.useState)(!1),[h,w]=(0,s.useState)("default"),[g,E]=(0,s.useState)(!1),[k,y,f]=a(),P=async()=>{c(!0),await l("otter-blocks"),y("themeisle_sdk_promotions_otter_installed",!Boolean(k("themeisle_sdk_promotions_otter_installed"))),await m(window.themeisleSDKPromotions.otterActivationUrl),c(!1),w("installed")},S=()=>"installed"===h?(0,e.createElement)("p",null,(0,e.createElement)("strong",null,"Awesome! Refresh the page to see Otter Blocks in action.")):(0,e.createElement)(o.Button,{variant:"secondary",onClick:P,isBusy:r,style:d.button},"Install & Activate Otter Blocks"),b=()=>{const e={...window.themeisleSDKPromotions.option};e[window.themeisleSDKPromotions.showPromotion]=(new Date).getTime()/1e3|0,y("themeisle_sdk_promotions",JSON.stringify(e)),window.themeisleSDKPromotions.showPromotion=!1};return(0,s.useEffect)((()=>{g&&b()}),[g]),g?(0,e.createElement)(n,{...i}):(0,e.createElement)(s.Fragment,null,(0,e.createElement)(n,{...i}),(0,e.createElement)(t.InspectorControls,null,Object.keys(p).map((t=>{if(t===window.themeisleSDKPromotions.showPromotion){const n=p[t];return(0,e.createElement)(o.PanelBody,{key:t,title:n.title,initialOpen:!1},(0,e.createElement)("p",null,n.description),(0,e.createElement)(S,null),(0,e.createElement)("img",{style:d.image,src:window.themeisleSDKPromotions.assets+n.image}),(0,e.createElement)(u,{onClick:()=>E(!0)}))}}))))}return(0,e.createElement)(n,{...i})}),"withInspectorControl");(0,i.select)("core/edit-site")||(0,r.addFilter)("editor.BlockEdit","themeisle-sdk/with-inspector-controls",h);const w=window.wp.plugins,g=window.wp.editPost;function E({stacked:t=!1,noImage:n=!1,type:i,onDismiss:r,onSuccess:c,initialStatus:d=null}){const{assets:p,title:u,email:h,option:w,optionKey:g,labels:E,optimoleActivationUrl:k,optimoleApi:y,optimoleDash:f,nonce:P}=window.themeisleSDKPromotions,[S,b]=(0,s.useState)(!1),[v,D]=(0,s.useState)(h||""),[B,_]=(0,s.useState)(!1),[N,K]=(0,s.useState)(d),[C,O]=a(),A=async()=>{_(!0);const e={...w};e[i]=(new Date).getTime()/1e3|0,window.themeisleSDKPromotions.option=e,await O(g,JSON.stringify(e)),r&&r()},x=()=>{b(!S)},j=e=>{D(e.target.value)},R=async e=>{e.preventDefault(),K("installing"),await l("optimole-wp"),K("activating"),await m(k),O("themeisle_sdk_promotions_optimole_installed",!Boolean(C("themeisle_sdk_promotions_optimole_installed"))),K("connecting");try{await fetch(y,{method:"POST",headers:{"X-WP-Nonce":P,"Content-Type":"application/json"},body:JSON.stringify({email:v})}),c&&c(),K("done")}catch(e){K("done")}};if(B)return null;const I=()=>"done"===N?(0,e.createElement)("div",{className:"done"},(0,e.createElement)("p",null," ",E.optimole.all_set),(0,e.createElement)(o.Button,{icon:"external",isPrimary:!0,href:f,target:"_blank"},E.optimole.gotodash)):N?(0,e.createElement)("p",{className:"om-progress"},(0,e.createElement)("span",{className:"dashicons dashicons-update spin"}),(0,e.createElement)("span",null,"installing"===N&&E.optimole.installing,"activating"===N&&E.optimole.activating,"connecting"===N&&E.optimole.connecting,"…")):(0,e.createElement)(e.Fragment,null,(0,e.createElement)("span",null,"Enter your email address to create & connect your account"),(0,e.createElement)("form",{onSubmit:R},(0,e.createElement)("input",{defaultValue:v,type:"email",onChange:j,placeholder:E.optimole.email_placeholder}),(0,e.createElement)(o.Button,{isPrimary:!0,type:"submit"},E.optimole.start_cta))),T=()=>(0,e.createElement)(o.Button,{disabled:N&&"done"!==N,onClick:A,isLink:!0,className:"om-notice-dismiss"},(0,e.createElement)("span",{className:"dashicons-no-alt dashicons"}),(0,e.createElement)("span",{className:"screen-reader-text"},E.optimole.dismisscta));return t?(0,e.createElement)("div",{className:"ti-om-stack-wrap"},(0,e.createElement)("div",{className:"om-stack-notice"},T(),(0,e.createElement)("img",{src:p+"/optimole-logo.svg",alt:"Optimole logo"}),(0,e.createElement)("h2",null,E.optimole.heading),(0,e.createElement)("p",null,"om-editor"===i||"om-image-block"===i?E.optimole.message1:E.optimole.message2),!S&&"done"!==N&&(0,e.createElement)(o.Button,{isPrimary:!0,onClick:x,className:"cta"},E.optimole.gst),(S||"done"===N)&&I(),(0,e.createElement)("i",null,u))):(0,e.createElement)(e.Fragment,null,T(),(0,e.createElement)("div",{className:"content"},!n&&(0,e.createElement)("img",{src:p+"/optimole-logo.svg",alt:"Optimole logo"}),(0,e.createElement)("div",null,(0,e.createElement)("p",null,u),(0,e.createElement)("p",{className:"description"},"om-media"===i?E.optimole.message3:E.optimole.message4),!S&&(0,e.createElement)("div",{className:"actions"},(0,e.createElement)(o.Button,{isPrimary:!0,onClick:x},E.optimole.gst),(0,e.createElement)(o.Button,{isLink:!0,target:"_blank",href:"https://wordpress.org/plugins/optimole-wp"},(0,e.createElement)("span",{className:"dashicons dashicons-external"}),(0,e.createElement)("span",null," ",E.optimole.learnmore))),S&&(0,e.createElement)("div",{className:"form-wrap"},I()))))}const k=()=>{const[t,o]=(0,s.useState)(!0),{getBlocks:n}=(0,i.useSelect)((e=>{const{getBlocks:t}=e("core/block-editor");return{getBlocks:t}}));var r;if((r=n(),"core/image",r.reduce(c,[]).filter((e=>"core/image"===e.name))).length<2)return null;const a="ti-sdk-optimole-post-publish "+(t?"":"hidden");return(0,e.createElement)(g.PluginPostPublishPanel,{className:a},(0,e.createElement)(E,{stacked:!0,type:"om-editor",onDismiss:()=>{o(!1)}}))};new class{constructor(){const{showPromotion:e,debug:t}=window.themeisleSDKPromotions;this.promo=e,this.debug="1"===t,this.domRef=null,this.run()}run(){if(this.debug)this.runAll();else switch(this.promo){case"om-attachment":this.runAttachmentPromo();break;case"om-media":this.runMediaPromo();break;case"om-editor":this.runEditorPromo();break;case"om-image-block":this.runImageBlockPromo();break;case"om-elementor":this.runElementorPromo()}}runAttachmentPromo(){wp.media.view.Attachment.Details.prototype.on("ready",(()=>{setTimeout((()=>{this.removeAttachmentPromo(),this.addAttachmentPromo()}),100)})),wp.media.view.Modal.prototype.on("close",(()=>{setTimeout(this.removeAttachmentPromo,100)}))}runMediaPromo(){if(window.themeisleSDKPromotions.option["om-media"])return;const t=document.querySelector("#ti-optml-notice");t&&(0,s.render)((0,e.createElement)(E,{type:"om-media",onDismiss:()=>{t.style.opacity=0}}),t)}runImageBlockPromo(){if(window.themeisleSDKPromotions.option["om-image-block"])return;let o=!0,i=null;const a=(0,n.createHigherOrderComponent)((n=>r=>"core/image"===r.name&&o?(0,e.createElement)(s.Fragment,null,(0,e.createElement)(n,{...r}),(0,e.createElement)(t.InspectorControls,null,(0,e.createElement)(E,{stacked:!0,type:"om-image-block",initialStatus:i,onDismiss:()=>{o=!1},onSuccess:()=>{i="done"}}))):(0,e.createElement)(n,{...r})),"withImagePromo");(0,r.addFilter)("editor.BlockEdit","optimole-promo/image-promo",a,99)}runEditorPromo(){window.themeisleSDKPromotions.option["om-editor"]||(0,w.registerPlugin)("optimole-promo",{render:k})}runElementorPromo(){if(!window.elementor)return;const e=this;elementor.on("preview:loaded",(()=>{elementor.panel.currentView.on("set:page:editor",(t=>{e.domRef&&(0,s.unmountComponentAtNode)(e.domRef),t.activeSection&&"section_image"===t.activeSection&&e.runElementorActions(e)}))}))}addAttachmentPromo(){if(this.domRef&&(0,s.unmountComponentAtNode)(this.domRef),window.themeisleSDKPromotions.option["om-attachment"])return;const t=document.querySelector("#ti-optml-notice-helper");t&&(this.domRef=t,(0,s.render)((0,e.createElement)("div",{className:"notice notice-info ti-sdk-om-notice",style:{margin:0}},(0,e.createElement)(E,{noImage:!0,type:"om-attachment",onDismiss:()=>{t.style.opacity=0}})),t))}removeAttachmentPromo(){const e=document.querySelector("#ti-optml-notice-helper");e&&(0,s.unmountComponentAtNode)(e)}runElementorActions(t){if(window.themeisleSDKPromotions.option["om-elementor"])return;const o=document.querySelector("#elementor-panel__editor__help"),n=document.createElement("div");n.id="ti-optml-notice",t.domRef=n,o&&(o.parentNode.insertBefore(n,o),(0,s.render)((0,e.createElement)(E,{stacked:!0,type:"om-elementor",onDismiss:()=>{n.style.opacity=0}}),n))}runAll(){this.runAttachmentPromo(),this.runMediaPromo(),this.runEditorPromo(),this.runImageBlockPromo(),this.runElementorPromo()}};const y=({onDismiss:t=(()=>{})})=>{const[n,i]=(0,s.useState)(""),[r,c]=a();return(0,e.createElement)(s.Fragment,null,(0,e.createElement)(o.Button,{disabled:"installing"===n,onClick:async()=>{const e={...window.themeisleSDKPromotions.option};e["rop-posts"]=(new Date).getTime()/1e3|0,window.themeisleSDKPromotions.option=e,await c(window.themeisleSDKPromotions.optionKey,JSON.stringify(e)),t&&t()},variant:"link",className:"om-notice-dismiss"},(0,e.createElement)("span",{className:"dashicons-no-alt dashicons"}),(0,e.createElement)("span",{className:"screen-reader-text"},"Dismiss this notice.")),(0,e.createElement)("p",null,"Boost your content's reach effortlessly! Introducing ",(0,e.createElement)("b",null,"Revive Old Posts"),", a cutting-edge plugin from the makers of ",window.themeisleSDKPromotions.product,". Seamlessly auto-share old & new content across social media, driving traffic like never before."),(0,e.createElement)("div",{className:"rop-notice-actions"},"installed"!==n?(0,e.createElement)(o.Button,{variant:"primary",isBusy:"installing"===n,onClick:async()=>{i("installing"),await l("tweet-old-post"),await m(window.themeisleSDKPromotions.ropActivationUrl),c("themeisle_sdk_promotions_rop_installed",!Boolean(r("themeisle_sdk_promotions_rop_installed"))),i("installed")}},"Install & Activate"):(0,e.createElement)(o.Button,{variant:"primary",href:window.themeisleSDKPromotions.ropDash},"Visit Dashboard"),(0,e.createElement)(o.Button,{variant:"link",target:"_blank",href:"https://wordpress.org/plugins/tweet-old-post/"},(0,e.createElement)("span",{className:"dashicons dashicons-external"}),(0,e.createElement)("span",null,"Learn more"))))};new class{constructor(){const{showPromotion:e,debug:t}=window.themeisleSDKPromotions;this.promo=e,this.debug="1"===t,this.domRef=null,this.run()}run(){if(window.themeisleSDKPromotions.option["rop-posts"])return;const t=document.querySelector("#ti-rop-notice");t&&(0,s.render)((0,e.createElement)(y,{onDismiss:()=>{t.style.display="none"}}),t)}};const f=({onDismiss:t=(()=>{})})=>{const[n,i]=a(),{neveFSEMoreUrl:r}=window.themeisleSDKPromotions;return(0,e.createElement)(s.Fragment,null,(0,e.createElement)(o.Button,{onClick:async()=>{const e={...window.themeisleSDKPromotions.option};e["neve-fse-themes-popular"]=(new Date).getTime()/1e3|0,window.themeisleSDKPromotions.option=e,await i(window.themeisleSDKPromotions.optionKey,JSON.stringify(e)),t&&t()},className:"notice-dismiss"},(0,e.createElement)("span",{className:"screen-reader-text"},"Dismiss this notice.")),(0,e.createElement)("p",null,"Meet ",(0,e.createElement)("b",null,"Neve FSE")," from the makers of ",window.themeisleSDKPromotions.product,". A theme that makes full site editing on WordPress straightforward and user-friendly."),(0,e.createElement)("div",{className:"neve-fse-notice-actions"},(0,e.createElement)(o.Button,{variant:"link",target:"_blank",href:r},(0,e.createElement)("span",{className:"dashicons dashicons-external"}),(0,e.createElement)("span",null,"Learn more"))))};new class{constructor(){const{showPromotion:e,debug:t}=window.themeisleSDKPromotions;this.promo=e,this.debug="1"===t,this.domRef=null,this.run()}run(){if(window.themeisleSDKPromotions.option["neve-fse-themes-popular"])return;const t=document.querySelector("#ti-neve-fse-notice");t&&(0,s.render)((0,e.createElement)(f,{onDismiss:()=>{t.style.display="none"}}),t)}}}},o={};function n(e){var i=o[e];if(void 0!==i)return i.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,n),s.exports}n.m=t,e=[],n.O=(t,o,i,s)=>{if(!o){var r=1/0;for(c=0;c=s)&&Object.keys(n.O).every((e=>n.O[e](o[l])))?o.splice(l--,1):(a=!1,s0&&e[c-1][2]>s;c--)e[c]=e[c-1];e[c]=[o,i,s]},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={57:0,350:0};n.O.j=t=>0===e[t];var t=(t,o)=>{var i,s,[r,a,l]=o,m=0;if(r.some((t=>0!==e[t]))){for(i in a)n.o(a,i)&&(n.m[i]=a[i]);if(l)var c=l(n)}for(t&&t(o);mn(689)));i=n.O(i)})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/style-index.css b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/style-index.css
new file mode 100644
index 00000000..3df7fe23
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/promos/style-index.css
@@ -0,0 +1 @@
+.ti-sdk-om-notice{--wp-admin-theme-color: #3858E9;--wp-admin-theme-color-darker-10: #2e47ba;position:relative;padding:0;border-left-color:#3858e9}.ti-sdk-om-notice .content{background:rgba(255,255,255,.75);display:flex;align-items:center;padding:15px 20px}.ti-sdk-om-notice img{max-width:100px;margin-right:20px;display:none}.ti-sdk-om-notice .description{font-size:14px;margin-bottom:20px;color:#000}.ti-sdk-om-notice .actions{margin-top:auto;display:flex;margin-bottom:0;gap:20px}.ti-sdk-om-notice form{display:flex;align-items:center;gap:10px}.ti-sdk-om-notice .form-wrap{display:grid}.ti-sdk-om-notice .form-wrap span:not(.dashicons){margin-bottom:5px;font-weight:500}.ti-sdk-om-notice input{border-radius:0;min-width:250px}.ti-sdk-om-notice a.components-button{display:flex;align-items:center;justify-content:center}.ti-sdk-om-notice .is-link{text-decoration:none;display:flex;align-items:center}.ti-sdk-om-notice .is-link span{line-height:normal}.ti-sdk-om-notice .dashicons{margin-right:2px;text-decoration:none}.ti-sdk-om-notice .done{display:flex;flex-direction:column;align-items:flex-start}.ti-sdk-om-notice .done a{width:auto}.compat-field-optimole th{display:none !important}.compat-field-optimole td{width:100% !important}.compat-field-optimole .ti-sdk-om-notice{margin:0}.om-notice-dismiss{right:10px;top:10px;text-decoration:none !important;position:absolute}.om-notice-dismiss:before{content:none}.ti-om-stack-wrap .om-stack-notice{--wp-admin-theme-color: #3858E9;--wp-admin-theme-color-darker-10: #2e47ba;display:flex;flex-direction:column;align-items:center;position:relative;text-align:center;padding:20px 10px}.ti-om-stack-wrap .om-stack-notice>span{display:none}.ti-om-stack-wrap .om-stack-notice img{max-width:90px !important}.ti-om-stack-wrap .om-stack-notice h2{font-size:18px;margin:30px auto 10px;font-weight:600}.ti-om-stack-wrap .om-stack-notice p{font-size:13px;max-width:250px;margin:0 auto;line-height:17px}.ti-om-stack-wrap .om-stack-notice i{margin-top:10px;font-size:12px;color:#757575}.ti-om-stack-wrap .om-stack-notice .cta{margin:20px auto 0;padding:10px 25px !important}.ti-om-stack-wrap .om-stack-notice .om-notice-dismiss{color:inherit}.ti-om-stack-wrap .om-stack-notice input{border-radius:0}.ti-om-stack-wrap .om-stack-notice form{place-items:center;width:75%;display:grid;margin-top:10px;gap:10px}.ti-om-stack-wrap .om-stack-notice .done{margin-top:15px;display:grid;gap:10px}.ti-om-stack-wrap .om-stack-notice .done p{font-size:15px;font-weight:500}.ti-om-stack-wrap .om-stack-notice .om-progress{margin:20px 0}.block-editor-block-inspector .ti-om-stack-wrap{border-top:1px solid #e0e0e0}.om-progress{gap:5px;font-size:14px;display:flex;align-items:center}.om-progress .spin{animation:om-rotation 2s infinite linear}@keyframes om-rotation{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ti-sdk-om-promo.hidden{display:none}.media-sidebar .ti-sdk-om-notice input{min-width:unset;flex-grow:1}.media-sidebar .ti-sdk-om-notice .description{margin-bottom:10px}.media-sidebar .ti-sdk-om-notice .content{padding:15px 10px}.media-sidebar .ti-sdk-om-notice .actions{gap:10px}.media-sidebar .ti-sdk-om-notice form{flex-wrap:wrap;justify-content:center}.attachment-info .ti-sdk-om-notice input{min-width:unset;flex-grow:1}.attachment-info .ti-sdk-om-notice form{flex-wrap:wrap;justify-content:center}.ti-sdk-rop-notice{position:relative;padding:10px}.ti-sdk-rop-notice .rop-notice-actions{display:flex;gap:10px}.ti-sdk-rop-notice p{padding:0 10px 0 0}.ti-sdk-neve-fse-notice{position:relative;padding:10px}.ti-sdk-neve-fse-notice .neve-fse-notice-actions{display:flex;gap:10px}.ti-sdk-neve-fse-notice .neve-fse-notice-actions a{text-decoration:none}.ti-sdk-neve-fse-notice .neve-fse-notice-actions a span:not(.dashicons){text-decoration:underline}.ti-sdk-neve-fse-notice p{padding:0 10px 0 0;font-size:14px}@media screen and (min-width: 768px){.ti-sdk-om-notice img{display:block}}@media screen and (min-width: 1200px){.attachment-info .ti-sdk-om-notice form{flex-wrap:unset}}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.asset.php
new file mode 100644
index 00000000..baba90f9
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.asset.php
@@ -0,0 +1 @@
+ array(), 'version' => 'd18c4036e32153ba476c');
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.js
new file mode 100644
index 00000000..a0715046
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/survey/survey_deps.js
@@ -0,0 +1 @@
+(()=>{"use strict";async function r(r){if(!window.formbricks){const o=await fetch(`${r}/api/packages/app`);if(!o.ok)return{ok:!1,error:new Error("Failed to load Formbricks App SDK")};const e=await o.text(),t=document.createElement("script");t.innerHTML=e,document.head.appendChild(t);const n=async()=>new Promise(((r,o)=>{const e=setInterval((()=>{window.formbricks&&(clearInterval(e),r())}),100);setTimeout((()=>{clearInterval(e),o(new Error("Formbricks App SDK loading timed out"))}),1e4)}));try{return await n(),{ok:!0,data:void 0}}catch(r){return{ok:!1,error:new Error(r.message??"Failed to load Formbricks App SDK")}}}return{ok:!0,data:void 0}}const o=new Proxy({},{get:(o,e,t)=>async(...o)=>{if(!window.formbricks){if("init"!==e)return void console.error("🧱 Formbricks - Global error: You need to call formbricks.init before calling any other method");if(!o[0])return void console.error("🧱 Formbricks - Global error: You need to pass the apiHost as the first argument");const{apiHost:n}=o[0],i=await(t=r,async(...r)=>{try{return{ok:!0,data:await t(...r)}}catch(r){return{ok:!1,error:r}}})(n);if(!i.ok)return void console.error(`🧱 Formbricks - Global error: ${i.error.message}`)}var t;if(window.formbricks&&"function"!=typeof window.formbricks[e])console.error(`🧱 Formbricks - Global error: Formbricks App SDK does not support method ${String(e)}`);else try{return window.formbricks[e](...o)}catch(r){return void console.error(`Something went wrong: ${r}`)}}});document.addEventListener("DOMContentLoaded",(()=>{window.tsdk_formbricks=o,window.dispatchEvent(new Event("themeisle:survey:loaded"))}))})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.asset.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.asset.php
new file mode 100644
index 00000000..50d9b083
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.asset.php
@@ -0,0 +1 @@
+ array(), 'version' => 'b8af0b12ad3cabe4c4b8');
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.js
new file mode 100644
index 00000000..677e2b8e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/assets/js/build/tracking/tracking.js
@@ -0,0 +1 @@
+(()=>{var e={802:e=>{e.exports=function e(t,n,r){function o(s,u){if(!n[s]){if(!t[s]){if(i)return i(s,!0);throw new Error("Cannot find module '"+s+"'")}u=n[s]={exports:{}},t[s][0].call(u.exports,(function(e){return o(t[s][1][e]||e)}),u,u.exports,e,t,n,r)}return n[s].exports}for(var i=void 0,s=0;s>16),a((65280&r)>>8),a(255&r);return 2==o?a(255&(r=f(e.charAt(n))<<2|f(e.charAt(n+1))>>4)):1==o&&(a((r=f(e.charAt(n))<<10|f(e.charAt(n+1))<<4|f(e.charAt(n+2))>>2)>>8&255),a(255&r)),i},e.fromByteArray=function(e){var t,n,r,o,i=e.length%3,s="";function u(e){return"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(e)}for(t=0,r=e.length-i;t>18&63)+u(o>>12&63)+u(o>>6&63)+u(63&o);switch(i){case 1:s=(s+=u((n=e[e.length-1])>>2))+u(n<<4&63)+"==";break;case 2:s=(s=(s+=u((n=(e[e.length-2]<<8)+e[e.length-1])>>10))+u(n>>4&63))+u(n<<2&63)+"="}return s}}(void 0===n?this.base64js={}:n)}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/base64-js/lib/b64.js","/node_modules/gulp-browserify/node_modules/base64-js/lib")},{buffer:3,lYpoI2:11}],3:[function(e,t,n){(function(t,r,o,i,s,u,a,f,l){var c=e("base64-js"),d=e("ieee754");function o(e,t,n){if(!(this instanceof o))return new o(e,t,n);var r,i,s,u,a=typeof e;if("base64"===t&&"string"==a)for(e=(u=e).trim?u.trim():u.replace(/^\s+|\s+$/g,"");e.length%4!=0;)e+="=";if("number"==a)r=x(e);else if("string"==a)r=o.byteLength(e,t);else{if("object"!=a)throw new Error("First argument needs to be a number, array or string.");r=x(e.length)}if(o._useTypedArrays?i=o._augment(new Uint8Array(r)):((i=this).length=r,i._isBuffer=!0),o._useTypedArrays&&"number"==typeof e.byteLength)i._set(e);else if(S(u=e)||o.isBuffer(u)||u&&"object"==typeof u&&"number"==typeof u.length)for(s=0;s>>0)):(t+1>>0),o}function g(e,t,n,r){if(r||(Y("boolean"==typeof n,"missing or invalid endian"),Y(null!=t,"missing offset"),Y(t+1>>8*(r?i:1-i)}function v(e,t,n,r,o){if(o||(Y(null!=t,"missing value"),Y("boolean"==typeof r,"missing or invalid endian"),Y(null!=n,"missing offset"),Y(n+3>>8*(r?i:3-i)&255}function _(e,t,n,r,o){o||(Y(null!=t,"missing value"),Y("boolean"==typeof r,"missing or invalid endian"),Y(null!=n,"missing offset"),Y(n+1>8,n%=256,r.push(n),r.push(t);return r}(t),e,n,r)}(this,e,t,n);break;default:throw new Error("Unknown encoding")}return i},o.prototype.toString=function(e,t,n){var r,o,i,s,u=this;if(e=String(e||"utf8").toLowerCase(),t=Number(t)||0,(n=void 0!==n?Number(n):u.length)===t)return"";switch(e){case"hex":r=function(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||rthis.length&&(r=this.length);var i=(r=e.length-t=this.length))return this[e]},o.prototype.readUInt16LE=function(e,t){return h(this,e,!0,t)},o.prototype.readUInt16BE=function(e,t){return h(this,e,!1,t)},o.prototype.readUInt32LE=function(e,t){return p(this,e,!0,t)},o.prototype.readUInt32BE=function(e,t){return p(this,e,!1,t)},o.prototype.readInt8=function(e,t){if(t||(Y(null!=e,"missing offset"),Y(e=this.length))return 128&this[e]?-1*(255-this[e]+1):this[e]},o.prototype.readInt16LE=function(e,t){return g(this,e,!0,t)},o.prototype.readInt16BE=function(e,t){return g(this,e,!1,t)},o.prototype.readInt32LE=function(e,t){return y(this,e,!0,t)},o.prototype.readInt32BE=function(e,t){return y(this,e,!1,t)},o.prototype.readFloatLE=function(e,t){return w(this,e,!0,t)},o.prototype.readFloatBE=function(e,t){return w(this,e,!1,t)},o.prototype.readDoubleLE=function(e,t){return b(this,e,!0,t)},o.prototype.readDoubleBE=function(e,t){return b(this,e,!1,t)},o.prototype.writeUInt8=function(e,t,n){n||(Y(null!=e,"missing value"),Y(null!=t,"missing offset"),Y(t=this.length||(this[t]=e)},o.prototype.writeUInt16LE=function(e,t,n){m(this,e,t,!0,n)},o.prototype.writeUInt16BE=function(e,t,n){m(this,e,t,!1,n)},o.prototype.writeUInt32LE=function(e,t,n){v(this,e,t,!0,n)},o.prototype.writeUInt32BE=function(e,t,n){v(this,e,t,!1,n)},o.prototype.writeInt8=function(e,t,n){n||(Y(null!=e,"missing value"),Y(null!=t,"missing offset"),Y(t=this.length||(0<=e?this.writeUInt8(e,t,n):this.writeUInt8(255+e+1,t,n))},o.prototype.writeInt16LE=function(e,t,n){_(this,e,t,!0,n)},o.prototype.writeInt16BE=function(e,t,n){_(this,e,t,!1,n)},o.prototype.writeInt32LE=function(e,t,n){E(this,e,t,!0,n)},o.prototype.writeInt32BE=function(e,t,n){E(this,e,t,!1,n)},o.prototype.writeFloatLE=function(e,t,n){I(this,e,t,!0,n)},o.prototype.writeFloatBE=function(e,t,n){I(this,e,t,!1,n)},o.prototype.writeDoubleLE=function(e,t,n){A(this,e,t,!0,n)},o.prototype.writeDoubleBE=function(e,t,n){A(this,e,t,!1,n)},o.prototype.fill=function(e,t,n){if(t=t||0,n=n||this.length,Y("number"==typeof(e="string"==typeof(e=e||0)?e.charCodeAt(0):e)&&!isNaN(e),"value is not a number"),Y(t<=n,"end < start"),n!==t&&0!==this.length){Y(0<=t&&t"},o.prototype.toArrayBuffer=function(){if("undefined"==typeof Uint8Array)throw new Error("Buffer.toArrayBuffer not supported in this browser");if(o._useTypedArrays)return new o(this).buffer;for(var e=new Uint8Array(this.length),t=0,n=e.length;t=t.length||o>=e.length);o++)t[o+n]=e[o];return o}function C(e){try{return decodeURIComponent(e)}catch(e){return String.fromCharCode(65533)}}function M(e,t){Y("number"==typeof e,"cannot write a non-number as a number"),Y(0<=e,"specified a negative value for writing an unsigned value"),Y(e<=t,"value is larger than maximum value for type"),Y(Math.floor(e)===e,"value has a fractional component")}function N(e,t,n){Y("number"==typeof e,"cannot write a non-number as a number"),Y(e<=t,"value larger than maximum allowed value"),Y(n<=e,"value smaller than minimum allowed value"),Y(Math.floor(e)===e,"value has a fractional component")}function F(e,t,n){Y("number"==typeof e,"cannot write a non-number as a number"),Y(e<=t,"value larger than maximum allowed value"),Y(n<=e,"value smaller than minimum allowed value")}function Y(e,t){if(!e)throw new Error(t||"Failed assertion")}o._augment=function(e){return e._isBuffer=!0,e._get=e.get,e._set=e.set,e.get=B.get,e.set=B.set,e.write=B.write,e.toString=B.toString,e.toLocaleString=B.toString,e.toJSON=B.toJSON,e.copy=B.copy,e.slice=B.slice,e.readUInt8=B.readUInt8,e.readUInt16LE=B.readUInt16LE,e.readUInt16BE=B.readUInt16BE,e.readUInt32LE=B.readUInt32LE,e.readUInt32BE=B.readUInt32BE,e.readInt8=B.readInt8,e.readInt16LE=B.readInt16LE,e.readInt16BE=B.readInt16BE,e.readInt32LE=B.readInt32LE,e.readInt32BE=B.readInt32BE,e.readFloatLE=B.readFloatLE,e.readFloatBE=B.readFloatBE,e.readDoubleLE=B.readDoubleLE,e.readDoubleBE=B.readDoubleBE,e.writeUInt8=B.writeUInt8,e.writeUInt16LE=B.writeUInt16LE,e.writeUInt16BE=B.writeUInt16BE,e.writeUInt32LE=B.writeUInt32LE,e.writeUInt32BE=B.writeUInt32BE,e.writeInt8=B.writeInt8,e.writeInt16LE=B.writeInt16LE,e.writeInt16BE=B.writeInt16BE,e.writeInt32LE=B.writeInt32LE,e.writeInt32BE=B.writeInt32BE,e.writeFloatLE=B.writeFloatLE,e.writeFloatBE=B.writeFloatBE,e.writeDoubleLE=B.writeDoubleLE,e.writeDoubleBE=B.writeDoubleBE,e.fill=B.fill,e.inspect=B.inspect,e.toArrayBuffer=B.toArrayBuffer,e}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/buffer/index.js","/node_modules/gulp-browserify/node_modules/buffer")},{"base64-js":2,buffer:3,ieee754:10,lYpoI2:11}],4:[function(e,t,n){(function(n,r,o,i,s,u,a,f,l){o=e("buffer").Buffer;var c=new o(4);c.fill(0),t.exports={hash:function(e,t,n,r){for(var i=t(function(e,t){e.length%4!=0&&(n=e.length+(4-e.length%4),e=o.concat([e,c],n));for(var n,r=[],i=t?e.readInt32BE:e.readInt32LE,s=0;sg?t=e(t):t.length>5]|=128<>>9<<4)]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,s=0;s>>32-o,n)}function p(e,t,n,r,o,i,s){return h(t&n|~t&r,e,t,o,i,s)}function g(e,t,n,r,o,i,s){return h(t&r|n&~r,e,t,o,i,s)}function y(e,t,n,r,o,i,s){return h(t^n^r,e,t,o,i,s)}function w(e,t,n,r,o,i,s){return h(n^(t|~r),e,t,o,i,s)}function b(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}t.exports=function(e){return c.hash(e,d,16)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/md5.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],7:[function(e,t,n){(function(e,n,r,o,i,s,u,a,f){t.exports=function(e){for(var t,n=new Array(e),r=0;r>>((3&r)<<3)&255;return n}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/rng.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{buffer:3,lYpoI2:11}],8:[function(e,t,n){(function(n,r,o,i,s,u,a,f,l){var c=e("./helpers");function d(e,t){e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n,r,o,i=Array(80),s=1732584193,u=-271733879,a=-1732584194,f=271733878,l=-1009589776,c=0;c>16)+(t>>16)+(n>>16)<<16|65535&n}function p(e,t){return e<>>32-t}t.exports=function(e){return c.hash(e,d,20,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],9:[function(e,t,n){(function(n,r,o,i,s,u,a,f,l){function c(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function d(e,t){var n,r=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),o=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),i=new Array(64);e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var s,u,a=0;a>>t|e<<32-t},g=function(e,t){return e>>>t};t.exports=function(e){return h.hash(e,d,32,!0)}}).call(this,e("lYpoI2"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/gulp-browserify/node_modules/crypto-browserify/sha256.js","/node_modules/gulp-browserify/node_modules/crypto-browserify")},{"./helpers":4,buffer:3,lYpoI2:11}],10:[function(e,t,n){(function(e,t,r,o,i,s,u,a,f){n.read=function(e,t,n,r,o){var i,s,u=8*o-r-1,a=(1<>1,l=-7,c=n?o-1:0,d=n?-1:1;for(o=e[t+c],c+=d,i=o&(1<<-l)-1,o>>=-l,l+=u;0>=-l,l+=r;0>1,c=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,h=r?1:-1;for(i=t<0||0===t&&1/t<0?1:0,t=Math.abs(t),isNaN(t)||t===1/0?(u=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(r=Math.pow(2,-s))<1&&(s--,r*=2),2<=(t+=1<=s+l?c/r:c*Math.pow(2,1-l))*r&&(s++,r/=2),f<=s+l?(u=0,s=f):1<=s+l?(u=(t*r-1)*Math.pow(2,o),s+=l):(u=t*Math.pow(2,l-1)*Math.pow(2,o),s=0));8<=o;e[n+d]=255&u,d+=h,u/=256,o-=8);for(s=s<{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";var e=n(802),t=n.n(e);const r=e=>{var t;const n=e?.filter((e=>e?.[0]))?.[0];return null!==(t=n?.[1])&&void 0!==t?t:n?.[0]};class o{constructor(){this.events=new Map,this.eventsLimit=50,this.listeners=[],this.interval=null,this.consent=!1,this.endpoint=tiTelemetry?.endpoint,this.products=tiTelemetry?.products,this.autoSendIntervalTime=3e5}_set=(e,t,n)=>{if(!this.hasProduct(t.slug))return;if(!n?.consent&&!this.getProductConsent(t.slug))return;if(!this.validate(t))return;const r=n?.directSave?t:this.trkMetadata(t);this.events.set(e,r),n?.refreshTimer&&this.refreshTimer(),n?.sendNow?this.uploadEvents():n?.ignoreLimit||this.sendIfLimitReached()};_add=(e,n)=>{const r=t()(e);return this._set(r.toString(),e,n),r.toString()};with=e=>{const t={slug:e,...this.envInfo()};return{add:(e,n)=>this._add({...t,...e},n),set:(e,n,r)=>this._set(e,{...t,...n},r),base:this}};envInfo=()=>({site:window.location.hostname});uploadEvents=async()=>{if(0!==this.events.size)try{const e=Array.from(this.events.values());this.events.clear();const t=await this.sendBulkTracking(e.map((({slug:e,site:t,license:n,...r})=>({slug:e,site:t,license:n,data:r}))));t.ok||this.listeners.forEach((e=>e({success:!1,error:"Failed to send tracking events"})));const n=await t.json();this.listeners.forEach((e=>e({success:!0,response:n})))}catch(e){console.error(e)}};sendIfLimitReached=()=>{if(this.events.size>=this.eventsLimit)return this.uploadEvents()};subscribe=e=>(this.listeners.push(e),()=>{this.listeners=this.listeners.filter((t=>t!==e))});hasConsent=()=>this.consent;sendBulkTracking=e=>fetch(this.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});trkMetadata=e=>({env:r([[window.location.href.includes("customize.php"),"customizer"],[window.location.href.includes("site-editor.php"),"site-editor"],[window.location.href.includes("widgets.php"),"widgets"],[window.location.href.includes("admin.php"),"admin"],["post-editor"]]),license:this.getProductTackHash(e.slug),...null!=e?e:{}});hasProduct=e=>this.products.some((t=>t?.slug?.includes(e)));getProductTackHash=e=>this.products.find((t=>t?.slug?.includes(e)))?.trackHash;getProductConsent=e=>this.products.find((t=>t?.slug?.includes(e)))?.consent;start=()=>{this.interval||(this.interval=window.setInterval((()=>{this.uploadEvents()}),this.autoSendIntervalTime))};stop=()=>{this.interval&&(window.clearInterval(this.interval),this.interval=null)};refreshTimer=()=>{this.stop(),this.start()};validate=e=>"object"==typeof e?0!==Object.keys(e).length&&Object.values(e).every(this.validate):void 0!==e;clone=()=>{const e=new o;return e.events=new Map(this.events),e.listeners=[...this.listeners],e.interval=this.interval,e.consent=this.consent,e.endpoint=this.endpoint,e}}window.tiTrk=new o,window?.wp?.customize?.bind("save",(()=>{window?.tiTrk?.uploadEvents()})),window.addEventListener("beforeunload",(async()=>{window?.tiTrk?.uploadEvents()}))})()})();
\ No newline at end of file
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/index.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/index.php
new file mode 100644
index 00000000..bedf1791
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/index.php
@@ -0,0 +1,3 @@
+ 0 ) {
+ $themeisle_sdk_max_version = $themeisle_sdk_version;
+ $themeisle_sdk_max_path = $themeisle_sdk_path;
+}
+
+// load the latest sdk version from the active Themeisle products.
+if ( ! function_exists( 'themeisle_sdk_load_licenser_if_present' ) ) :
+ /**
+ * Always load the licenser, if present.
+ *
+ * @param array $to_load Previously files to load.
+ */
+ function themeisle_sdk_load_licenser_if_present( $to_load ) {
+ global $themeisle_sdk_abs_licenser_path;
+ $to_load[] = $themeisle_sdk_abs_licenser_path;
+
+ return $to_load;
+ }
+endif;
+
+// load the latest sdk version from the active Themeisle products.
+if ( ! function_exists( 'themeisle_sdk_load_latest' ) ) :
+ /**
+ * Always load the latest sdk version.
+ */
+ function themeisle_sdk_load_latest() {
+ /**
+ * Don't load the library if we are on < 5.4.
+ */
+ if ( version_compare( PHP_VERSION, '5.4.32', '<' ) ) {
+ return;
+ }
+ global $themeisle_sdk_max_path;
+ require_once $themeisle_sdk_max_path . '/start.php';
+ }
+endif;
+add_action( 'init', 'themeisle_sdk_load_latest' );
+
+if ( ! function_exists( 'tsdk_utmify' ) ) {
+ /**
+ * Utmify a link.
+ *
+ * @param string $url URL to add utms.
+ * @param string $area Area in page where this is used ( CTA, image, section name).
+ * @param string $location Location, such as customizer, about page.
+ *
+ * @return string
+ */
+ function tsdk_utmify( $url, $area, $location = null ) {
+ static $current_page = null;
+ if ( $location === null && $current_page === null ) {
+ global $pagenow;
+ $screen = function_exists( 'get_current_screen' ) ? get_current_screen() : $pagenow;
+ $current_page = isset( $screen->id ) ? $screen->id : ( ( $screen === null ) ? 'non-admin' : $screen );
+ $current_page = sanitize_key( str_replace( '.php', '', $current_page ) );
+ }
+ $location = $location === null ? $current_page : $location;
+ $is_upgrade_url = strpos( $url, '/upgrade' ) !== false;
+ $content = sanitize_key(
+ trim(
+ str_replace(
+ [
+ 'https://',
+ 'themeisle.com',
+ '/themes/',
+ '/plugins/',
+ '/upgrade',
+ ],
+ '',
+ $url
+ ),
+ '/'
+ )
+ );
+ $filter_key = sanitize_key( $content );
+ $url_args = [
+ 'utm_source' => 'wpadmin',
+ 'utm_medium' => $location,
+ 'utm_campaign' => $area,
+ 'utm_content' => $content,
+ ];
+ $query_arguments = apply_filters( 'tsdk_utmify_' . $filter_key, $url_args, $url );
+ $utmify_url = esc_url_raw(
+ add_query_arg(
+ $query_arguments,
+ $url
+ )
+ );
+
+ /**
+ * Check if there is an affiliate URL for this upgrade link, if so use it.
+ */
+ if ( $is_upgrade_url ) {
+ $option_content_key = str_replace( '-', '_', $filter_key );
+ $theme_upgrade_option_name = 'themeisle_af_' . $option_content_key . '_themes_upgrade';
+ $plugin_upgrade_option_name = 'themeisle_af_' . $option_content_key . '_plugins_upgrade';
+
+ $theme_option_url = get_option( $theme_upgrade_option_name, false );
+ if ( ! empty( $theme_option_url ) ) {
+ $utmify_url = esc_url_raw( $theme_option_url );
+ }
+ $plugin_option_url = get_option( $plugin_upgrade_option_name, false );
+ if ( ! empty( $plugin_option_url ) ) {
+ $utmify_url = esc_url_raw( $plugin_option_url );
+ }
+ }
+
+
+
+ return apply_filters( 'tsdk_utmify_url_' . $filter_key, $utmify_url, $url );
+ }
+
+ add_filter( 'tsdk_utmify', 'tsdk_utmify', 10, 3 );
+}
+
+
+if ( ! function_exists( 'tsdk_lstatus' ) ) {
+ /**
+ * Check license status.
+ *
+ * @param string $file Product basefile.
+ *
+ * @return string Status.
+ */
+ function tsdk_lstatus( $file ) {
+ return \ThemeisleSDK\Modules\Licenser::status( $file );
+ }
+}
+if ( ! function_exists( 'tsdk_lis_valid' ) ) {
+ /**
+ * Check if license is valid.
+ *
+ * @param string $file Product basefile.
+ *
+ * @return bool Validness.
+ */
+ function tsdk_lis_valid( $file ) {
+ return \ThemeisleSDK\Modules\Licenser::is_valid( $file );
+ }
+}
+if ( ! function_exists( 'tsdk_lplan' ) ) {
+ /**
+ * Get license plan.
+ *
+ * @param string $file Product basefile.
+ *
+ * @return string Plan.
+ */
+ function tsdk_lplan( $file ) {
+ return \ThemeisleSDK\Modules\Licenser::plan( $file );
+ }
+}
+
+if ( ! function_exists( 'tsdk_lkey' ) ) {
+ /**
+ * Get license key.
+ *
+ * @param string $file Product basefile.
+ *
+ * @return string Key.
+ */
+ function tsdk_lkey( $file ) {
+ return \ThemeisleSDK\Modules\Licenser::key( $file );
+ }
+}
+
+if ( ! function_exists( 'tsdk_translate_link' ) ) {
+
+ /**
+ * Function to translate a link based on the current language.
+ *
+ * @param string $url URL to translate.
+ * @param string{'path'|'query'|'domain'} $type Type of localization. Supports path, query and domain.
+ * @param array $available_languages Available language to choose from.
+ *
+ * @return string
+ */
+ function tsdk_translate_link(
+ $url, $type = 'path', $available_languages = [
+ 'de_DE' => 'de',
+ 'de_DE_formal' => 'de',
+ ]
+ ) {
+ $language = get_user_locale();
+ if ( ! isset( $available_languages[ $language ] ) ) {
+ return $url;
+ }
+ $code = $available_languages[ $language ];
+ // We asume that false is based on query and add the code via query arg.
+ if ( $type === 'query' ) {
+ return add_query_arg( 'lang', $code, $url );
+ }
+
+ $parsed_url = wp_parse_url( $url );
+ // we replace the domain here based on the localized one.
+ if ( $type === 'domain' ) {
+ return $parsed_url['scheme'] . '://' . $code . ( isset( $parsed_url['path'] ) ? $parsed_url['path'] : '' ) . ( isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '' ) . ( isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '' );
+ }
+ // default is the path based approach.
+ $new_path = isset( $parsed_url['path'] ) ? "/$code" . $parsed_url['path'] : "/$code";
+
+ return $parsed_url['scheme'] . '://' . $parsed_url['host'] . $new_path . ( isset( $parsed_url['query'] ) ? '?' . $parsed_url['query'] : '' ) . ( isset( $parsed_url['fragment'] ) ? '#' . $parsed_url['fragment'] : '' );
+
+ }
+}
+if ( ! function_exists( 'tsdk_support_link' ) ) {
+
+ /**
+ * Get Themeisle Support URL.
+ *
+ * @param string $file Product basefile.
+ *
+ * @return false|string Return support URL or false if no license is active.
+ */
+ function tsdk_support_link( $file ) {
+
+ if ( ! did_action( 'init' ) ) {
+ _doing_it_wrong( __FUNCTION__, 'tsdk_support_link() should not be called before the init action.', '3.2.39' );
+ }
+ $params = [];
+ if ( ! tsdk_lis_valid( $file ) ) {
+ return false;
+ }
+ $product = \ThemeisleSDK\Product::get( $file );
+ if ( ! $product->requires_license() ) {
+ return false;
+ }
+ static $site_params = null;
+ if ( $site_params === null ) {
+ if ( is_user_logged_in() && function_exists( 'wp_get_current_user' ) ) {
+ $current_user = wp_get_current_user();
+ $site_params['semail'] = urlencode( $current_user->user_email );
+ }
+ $site_params['swb'] = urlencode( home_url() );
+ global $wp_version;
+ $site_params['snv'] = urlencode( sprintf( 'WP-%s-PHP-%s', $wp_version, ( PHP_MAJOR_VERSION . '.' . PHP_MINOR_VERSION ) ) );
+ }
+ $params['slkey'] = tsdk_lkey( $file );
+ $params['sprd'] = urlencode( $product->get_name() );
+ $params['svrs'] = urlencode( $product->get_version() );
+
+
+ return add_query_arg(
+ array_merge( $site_params, $params ),
+ 'https://store.themeisle.com/direct-support/'
+ );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/postcss.config.js b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/postcss.config.js
new file mode 100644
index 00000000..fc52856e
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/postcss.config.js
@@ -0,0 +1,10 @@
+const wpPreset = require( '@wordpress/postcss-plugins-preset' );
+
+module.exports = {
+ plugins: [
+ ...wpPreset,
+ require( 'postcss-custom-media' )(), // Custom media queries: https://www.npmjs.com/package/postcss-custom-media
+ require( 'postcss-combine-media-query' )(), // Combine media queries: https://www.npmjs.com/package/postcss-combine-media-query
+ require( 'postcss-sort-media-queries' )() // Sort media queries: https://www.npmjs.com/package/postcss-sort-media-queries
+ ]
+};
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Abstract_module.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Abstract_module.php
new file mode 100644
index 00000000..bb172c1d
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Abstract_module.php
@@ -0,0 +1,221 @@
+ 'otter-blocks/otter-blocks.php',
+ 'optimole-wp' => 'optimole-wp/optimole-wp.php',
+ 'tweet-old-post' => 'tweet-old-post/tweet-old-post.php',
+ 'feedzy-rss-feeds' => 'feedzy-rss-feeds/feedzy-rss-feed.php',
+ 'woocommerce-product-addon' => 'woocommerce-product-addon/woocommerce-product-addon.php',
+ 'visualizer' => 'visualizer/index.php',
+ 'wp-landing-kit' => 'wp-landing-kit/wp-landing-kit.php',
+ 'multiple-pages-generator-by-porthas' => 'multiple-pages-generator-by-porthas/porthas-multi-pages-generator.php',
+ 'sparks-for-woocommerce' => 'sparks-for-woocommerce/sparks-for-woocommerce.php',
+ 'templates-patterns-collection' => 'templates-patterns-collection/templates-patterns-collection.php',
+ ];
+
+ /**
+ * Product which use the module.
+ *
+ * @var Product $product Product object.
+ */
+ protected $product = null;
+
+ /**
+ * Can load the module for the selected product.
+ *
+ * @param Product $product Product data.
+ *
+ * @return bool Should load module?
+ */
+ abstract public function can_load( $product );
+
+ /**
+ * Bootstrap the module.
+ *
+ * @param Product $product Product object.
+ */
+ abstract public function load( $product );
+
+ /**
+ * Check if the product is from partner.
+ *
+ * @param Product $product Product data.
+ *
+ * @return bool Is product from partner.
+ */
+ public function is_from_partner( $product ) {
+ foreach ( Module_Factory::$domains as $partner_domain ) {
+ if ( strpos( $product->get_store_url(), $partner_domain ) !== false ) {
+ return true;
+ }
+ }
+
+ return array_key_exists( $product->get_slug(), Module_Factory::$slugs );
+ }
+
+ /**
+ * Wrapper for wp_remote_get on VIP environments.
+ *
+ * @param string $url Url to check.
+ * @param array $args Option params.
+ *
+ * @return array|\WP_Error
+ */
+ public function safe_get( $url, $args = array() ) {
+ return function_exists( 'vip_safe_wp_remote_get' )
+ ? vip_safe_wp_remote_get( $url )
+ : wp_remote_get( //phpcs:ignore WordPressVIPMinimum.Functions.RestrictedFunctions.wp_remote_get_wp_remote_get, Already used.
+ $url,
+ $args
+ );
+ }
+
+ /**
+ * Get the SDK base url.
+ *
+ * @return string
+ */
+ public function get_sdk_uri() {
+ global $themeisle_sdk_max_path;
+
+ /**
+ * $themeisle_sdk_max_path can point to the theme when the theme version is higher.
+ * hence we also need to check that the path does not point to the theme else this will break the URL.
+ * References: https://github.com/Codeinwp/neve-pro-addon/issues/2403
+ */
+ if ( $this->product->is_plugin() && false === strpos( $themeisle_sdk_max_path, get_template_directory() ) ) {
+ return plugins_url( '/', $themeisle_sdk_max_path . '/themeisle-sdk/' );
+ };
+
+ return get_template_directory_uri() . '/vendor/codeinwp/themeisle-sdk/';
+ }
+
+ /**
+ * Call plugin api
+ *
+ * @param string $slug plugin slug.
+ *
+ * @return array|mixed|object
+ */
+ public function call_plugin_api( $slug ) {
+ include_once ABSPATH . 'wp-admin/includes/plugin-install.php';
+
+ $call_api = get_transient( 'ti_plugin_info_' . $slug );
+
+ if ( false === $call_api ) {
+ $call_api = plugins_api(
+ 'plugin_information',
+ array(
+ 'slug' => $slug,
+ 'fields' => array(
+ 'downloaded' => false,
+ 'rating' => false,
+ 'description' => false,
+ 'short_description' => true,
+ 'donate_link' => false,
+ 'tags' => false,
+ 'sections' => true,
+ 'homepage' => true,
+ 'added' => false,
+ 'last_updated' => false,
+ 'compatibility' => false,
+ 'tested' => false,
+ 'requires' => false,
+ 'downloadlink' => false,
+ 'icons' => true,
+ 'banners' => true,
+ ),
+ )
+ );
+ set_transient( 'ti_plugin_info_' . $slug, $call_api, 30 * MINUTE_IN_SECONDS );
+ }
+
+ return $call_api;
+ }
+
+ /**
+ * Get the plugin status.
+ *
+ * @param string $plugin Plugin slug.
+ *
+ * @return bool
+ */
+ public function is_plugin_installed( $plugin ) {
+ if ( ! isset( $this->plugin_paths[ $plugin ] ) ) {
+ return false;
+ }
+
+ if ( file_exists( WP_CONTENT_DIR . '/plugins/' . $this->plugin_paths[ $plugin ] ) ) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Get plugin activation link.
+ *
+ * @param string $slug The plugin slug.
+ *
+ * @return string
+ */
+ public function get_plugin_activation_link( $slug ) {
+ $reference_key = $slug === 'otter-blocks' ? 'reference_key' : 'optimole_reference_key';
+ $plugin = isset( $this->plugin_paths[ $slug ] ) ? $this->plugin_paths[ $slug ] : $slug . '/' . $slug . '.php';
+
+ return add_query_arg(
+ array(
+ 'plugin_status' => 'all',
+ 'paged' => '1',
+ 'action' => 'activate',
+ $reference_key => $this->product->get_key(),
+ 'plugin' => rawurlencode( $plugin ),
+ '_wpnonce' => wp_create_nonce( 'activate-plugin_' . $plugin ),
+ ),
+ admin_url( 'plugins.php' )
+ );
+ }
+
+ /**
+ * Checks if a plugin is active.
+ *
+ * @param string $plugin plugin slug.
+ *
+ * @return bool
+ */
+ public function is_plugin_active( $plugin ) {
+ include_once ABSPATH . 'wp-admin/includes/plugin.php';
+
+ $plugin = isset( $this->plugin_paths[ $plugin ] ) ? $this->plugin_paths[ $plugin ] : $plugin . '/' . $plugin . '.php';
+
+ return is_plugin_active( $plugin );
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Module_factory.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Module_factory.php
new file mode 100644
index 00000000..29313e9f
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Common/Module_factory.php
@@ -0,0 +1,108 @@
+ true,
+ 'neto' => true,
+ 'olsen' => true,
+ 'benson' => true,
+ 'romero' => true,
+ 'carmack' => true,
+ 'puzzle' => true,
+ 'broadsheet' => true,
+ 'girlywp' => true,
+ 'veggie' => true,
+ 'zeko' => true,
+ 'maishawp' => true,
+ 'didi' => true,
+ 'liber' => true,
+ 'medicpress-pt' => true,
+ 'adrenaline-pt' => true,
+ 'consultpress-pt' => true,
+ 'legalpress-pt' => true,
+ 'gympress-pt' => true,
+ 'readable-pt' => true,
+ 'bolts-pt' => true,
+ ];
+ /**
+ * Partners domains.
+ *
+ * @var array $DOMAINS Partners domains.
+ */
+ public static $domains = [
+ 'proteusthemes.com',
+ 'anarieldesign.com',
+ 'prothemedesign.com',
+ 'cssigniter.com',
+ ];
+ /**
+ * Map which contains all the modules loaded for each product.
+ *
+ * @var array Mapping array.
+ */
+ private static $modules_attached = [];
+
+ /**
+ * Load availabe modules for the selected product.
+ *
+ * @param Product $product Loaded product.
+ * @param array $modules List of modules.
+ */
+ public static function attach( $product, $modules ) {
+
+ if ( ! isset( self::$modules_attached[ $product->get_slug() ] ) ) {
+ self::$modules_attached[ $product->get_slug() ] = [];
+ }
+
+ foreach ( $modules as $module ) {
+ $class = 'ThemeisleSDK\\Modules\\' . ucwords( $module, '_' );
+ /**
+ * Module object.
+ *
+ * @var Abstract_Module $module_object Module instance.
+ */
+ $module_object = new $class( $product );
+
+ if ( ! $module_object->can_load( $product ) ) {
+ continue;
+ }
+ self::$modules_attached[ $product->get_slug() ][ $module ] = $module_object->load( $product );
+ }
+ }
+
+ /**
+ * Products/Modules loaded map.
+ *
+ * @return array Modules map.
+ */
+ public static function get_modules_map() {
+ return self::$modules_attached;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Loader.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Loader.php
new file mode 100644
index 00000000..ab6bbbab
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Loader.php
@@ -0,0 +1,387 @@
+ The products which use the SDK.
+ */
+ private static $products = [];
+ /**
+ * Holds available modules to load.
+ *
+ * @var array The modules which SDK will be using.
+ */
+ private static $available_modules = [
+ 'script_loader',
+ 'dashboard_widget',
+ 'rollback',
+ 'uninstall_feedback',
+ 'licenser',
+ 'logger',
+ 'translate',
+ 'review',
+ 'recommendation',
+ 'notification',
+ 'promotions',
+ 'welcome',
+ 'compatibilities',
+ 'about_us',
+ 'announcements',
+ 'featured_plugins',
+ 'float_widget',
+ ];
+ /**
+ * Holds the labels for the modules.
+ *
+ * @var array The labels for the modules.
+ */
+ public static $labels = [
+ 'announcements' => [
+ 'hurry_up' => 'Hurry up! Only %s left.',
+ 'sale_live' => 'Themeisle Black Friday Sale is Live!',
+ 'learn_more' => 'Learn more',
+ 'max_savings' => 'Enjoy Maximum Savings on %s',
+ ],
+ 'compatibilities' => [
+ 'notice' => '%s requires a newer version of %s. Please %supdate%s %s %s to the latest version.',
+ 'notice2' => '%s update requires a newer version of %s. Please %supdate%s %s %s.',
+ 'notice_theme' => '%1$sWarning:%2$s This theme has not been tested with your current version of %1$s%3$s%2$s. Please update %3$s plugin.',
+ 'notice_plugin' => '%1$sWarning:%2$s This plugin has not been tested with your current version of %1$s%3$s%2$s. Please update %3$s %4$s.',
+ 'theme' => 'theme',
+ 'plugin' => 'plugin',
+ ],
+ 'dashboard_widget' => [
+ 'title' => 'WordPress Guides/Tutorials',
+ 'popular' => 'Popular %s',
+ 'install' => 'Install',
+ 'powered' => 'Powered by %s',
+ ],
+ 'licenser' => [
+ 'activate' => 'Activate',
+ 'invalid_msg' => 'Invalid license.',
+ 'error_notice' => 'ERROR: Failed to connect to the license service. Please try again later. Reason: %s',
+ 'error_notice2' => 'ERROR: Failed to validate license. Please try again in one minute.',
+ 'error_invalid' => 'ERROR: Invalid license provided.',
+ 'update_license' => 'Updating this theme will lose any customizations you have made. Cancel to stop, OK to update.',
+ 'invalid_msg' => 'Invalid license.',
+ 'already_active' => 'License is already active.',
+ 'notice_update' => '%1$s is available. %2$sCheck out what\'s%3$s new or %4$supdate now%3$s.',
+ 'not_active' => 'License not active.',
+ 'deactivate' => 'Deactivate',
+ 'renew_cta' => 'Renew license to update',
+ 'autoactivate_notice' => '%s has been successfully activated using %s license !',
+ 'valid' => 'Valid',
+ 'invalid' => 'Invalid',
+ 'notice' => 'Enter your license from %s purchase history in order to get %s updates',
+ 'expired' => 'Your %s\'s License Key has expired. In order to continue receiving support and software updates you must %srenew%s your license key.',
+
+ 'inactive' => 'In order to benefit from updates and support for %s, please add your license code from your %spurchase history%s and validate it %shere%s.',
+ 'no_activations' => 'No more activations left for %s. You need to upgrade your plan in order to use %s on more websites. If you need assistance, please get in touch with %s staff.',
+ ],
+ 'promotions' => [
+ 'recommended' => 'Recommended by %s',
+ 'woo' => [
+ 'title' => 'More extensions from Themeisle',
+ 'title2' => 'Recommended extensions',
+ 'cta_install' => 'Install',
+ 'learn_more' => 'Learn More',
+ 'dismiss' => 'Dismiss this suggestion',
+ 'ppom_title' => 'Product Add-Ons',
+ 'ppom_desc' => 'Add extra custom fields & add-ons on your product pages, like sizes, colors & more.',
+ 'spark_title1' => 'Wishlist',
+ 'spark_title2' => 'Multi-Announcement Bars',
+ 'spark_title3' => 'Advanced Product Review',
+ 'spark_desc1' => 'Loyalize your customers by allowing them to save their favorite products.',
+ 'spark_desc2' => 'Add a top notification bar on your website to highlight the latest products, offers, or upcoming events.',
+ 'spark_desc3' => 'Enable an advanced review section, enlarging the basic review options with lots of capabilities.',
+ ],
+ 'optimole' => [
+ 'all_set' => 'Awesome! You are all set!',
+ 'gotodash' => 'Go to Optimole dashboard',
+ 'installing' => 'Installing',
+ 'activating' => 'Activating',
+ 'connecting' => 'Connecting to API',
+ 'start_cta' => 'Start using Optimole',
+ 'dismisscta' => 'Dismiss this notice.',
+ 'gst' => 'Get Started Free',
+ 'heading' => 'Get more with Optimole',
+ 'learnmore' => 'Learn more',
+ 'message1' => 'Increase this page speed and SEO ranking by optimizing images with Optimole.',
+ 'message3' => 'Save your server space by storing images to Optimole and deliver them optimized from 400 locations around the globe. Unlimited images, Unlimited traffic.',
+ 'message4' => 'This image looks to be too large and would affect your site speed, we recommend you to install Optimole to optimize your images.',
+ 'message2' => 'Leverage Optimole\'s full integration with Elementor to automatically lazyload, resize, compress to AVIF/WebP and deliver from 400 locations around the globe!',
+ 'email_placeholder' => 'Email address',
+ ],
+ ],
+ 'welcome' => [
+ 'ctan' => 'No, thanks.',
+ 'ctay' => 'Upgrade Now!',
+ 'message' => '
You\'ve been using {product} for 7 days now and we appreciate your loyalty! We also want to make sure you\'re getting the most out of our product. That\'s why we\'re offering you a special deal - upgrade to {pro_product} in the next 5 days and receive a discount of up to 30%. Upgrade now and unlock all the amazing features of {pro_product}!
',
+ ],
+ 'uninstall' => [
+ 'heading_plugin' => 'What\'s wrong?',
+ 'heading_theme' => 'What does not work for you in {theme}?',
+ 'submit' => 'Submit',
+ 'cta_info' => 'What info do we collect?',
+ 'button_submit' => 'Submit & Deactivate',
+ 'button_cancel' => 'Skip & Deactivate',
+ 'disclosure' => [
+ 'title' => 'Below is a detailed view of all data that Themeisle will receive if you fill in this survey. No email address or IP addresses are transmitted after you submit the survey.',
+ 'version' => '%s %s version %s %s %s %s',
+ 'website' => '%sCurrent website:%s %s %s %s',
+ 'usage' => '%sUsage time:%s %s %s%s',
+ 'reason' => '%s Uninstall reason %s %s Selected reason from the above survey %s ',
+ ],
+
+ 'options' => [
+ 'id3' => [
+ 'title' => 'I found a better plugin',
+ 'placeholder' => 'What\'s the plugin\'s name?',
+ ],
+ 'id4' => [
+
+ 'title' => 'I could not get the plugin to work',
+ 'placeholder' => 'What problem are you experiencing?',
+ ],
+ 'id5' => [
+
+ 'title' => 'I no longer need the plugin',
+ 'placeholder' => 'If you could improve one thing about our product, what would it be?',
+ ],
+ 'id6' => [
+ 'title' => 'It\'s a temporary deactivation. I\'m just debugging an issue.',
+ 'placeholder' => 'What problem are you experiencing?',
+ ],
+ 'id7' => [
+ 'title' => 'I don\'t know how to make it look like demo',
+ ],
+ 'id8' => [
+
+ 'placeholder' => 'What option is missing?',
+ 'title' => 'It lacks options',
+ ],
+ 'id9' => [
+ 'title' => 'Is not working with a plugin that I need',
+ 'placeholder' => 'What is the name of the plugin',
+ ],
+ 'id10' => [
+ 'title' => 'I want to try a new design, I don\'t like {theme} style',
+ ],
+ 'id999' => [
+ 'title' => 'Other',
+ 'placeholder' => 'What can we do better?',
+ ],
+ ],
+ ],
+ 'review' => [
+ 'notice' => '
Hey, it\'s great to see you have {product} active for a few days now. How is everything going? If you can spare a few moments to rate it on WordPress.org it would help us a lot (and boost my motivation). Cheers!
~ {developer}, developer of {product}
',
+ 'ctay' => 'Ok, I will gladly help.',
+ 'ctan' => 'No, thanks.',
+
+ ],
+ 'rollback' => [
+ 'cta' => 'Rollback to v%s',
+ ],
+ 'logger' => [
+ 'notice' => 'Do you enjoy {product}? Become a contributor by opting in to our anonymous data tracking. We guarantee no sensitive data is collected.',
+ 'cta_y' => 'Sure, I would love to help.',
+ 'cta_n' => 'No, thanks.',
+ ],
+ 'about_us' => [
+ 'title' => 'About Us',
+ 'heroHeader' => 'Our Story',
+ 'heroTextFirst' => 'Themeisle was founded in 2012 by a group of passionate developers who wanted to create beautiful and functional WordPress themes and plugins. Since then, we have grown into a team of over 20 dedicated professionals who are committed to delivering the best possible products to our customers.',
+ 'heroTextSecond' => 'At Themeisle, we offer a wide range of WordPress themes and plugins that are designed to meet the needs of both beginners and advanced users. Our products are feature-rich, easy to use, and are designed to help you create beautiful and functional websites.',
+ 'teamImageCaption' => 'Our team in WCEU2022 in Portugal',
+ 'newsHeading' => 'Stay connected for news & updates!',
+ 'emailPlaceholder' => 'Your email address',
+ 'signMeUp' => 'Sign me up',
+ 'installNow' => 'Install Now',
+ 'activate' => 'Activate',
+ 'learnMore' => 'Learn More',
+ 'installed' => 'Installed',
+ 'notInstalled' => 'Not Installed',
+ 'active' => 'Active',
+ 'others' => [
+ 'optimole_desc' => 'Optimole is an image optimization service that automatically optimizes your images and serves them to your visitors via a global CDN, making your website lighter, faster and helping you reduce your bandwidth usage.',
+ 'neve_desc' => 'A fast, lightweight, customizable WordPress theme offering responsive design, speed, and flexibility for various website types.',
+ 'landingkit_desc' => 'Turn WordPress into a landing page powerhouse with Landing Kit, map domains to pages or any other published resource.',
+ 'sparks_desc' => 'Extend your store functionality with 8 ultra-performant features like product comparisons, variation swatches, wishlist, and more.',
+ 'tpc_desc' => 'Design, save, and revisit your templates anytime with your personal vault on Templates Cloud.',
+ ],
+ 'otter-page' => [
+ 'heading' => 'Build innovative layouts with Otter Blocks and Gutenberg',
+ 'text' => 'Otter is a lightweight, dynamic collection of page building blocks and templates for the WordPress block editor.',
+ 'buttons' => [
+ 'install_otter_free' => "Install Otter - It's free!",
+ 'install_now' => 'Install Now',
+ 'learn_more' => 'Learn More',
+ ],
+ 'features' => [
+ 'advancedTitle' => 'Advanced Features',
+ 'advancedDesc' => 'Add features such as Custom CSS, Animations & Visibility Conditions to all blocks.',
+ 'fastTitle' => 'Lightweight and Fast',
+ 'fastDesc' => 'Otter enhances WordPress site building experience without impacting site speed.',
+ 'mobileTitle' => 'Mobile-Friendly',
+ 'mobileDesc' => 'Each block can be tweaked to provide a consistent experience across all devices.',
+ ],
+ 'details' => [
+ 's1Title' => 'A Better Page Building Experience',
+ 's1Text' => 'Otter can be used to build everything from a personal blog to an e-commerce site without losing the personal touch. Otter’s ease of use transforms basic blocks into expressive layouts in seconds.',
+ 's2Title' => 'A New Collection of Patterns',
+ 's2Text' => 'A New Patterns Library, containing a range of different elements in a variety of styles to help you build great pages. All of your website’s most important areas are covered: headers, testimonials, pricing tables, sections and more.',
+ 's3Title' => 'Advanced Blocks',
+ 's3Text' => 'Enhance your website’s design with powerful blocks, like the Add to Cart, Business Hours, Review Comparison, and dozens of WooCommerce blocks.',
+ ],
+ 'testimonials' => [
+ 'heading' => 'Trusted by more than 300K website owners',
+ 'users' => [
+ 'user_1' => 'Loved the collection of blocks. If you want to create nice Gutenberg Pages, this plugin will be very handy and useful.',
+ 'user_2' => 'I am very satisfied with Otter – a fantastic collection of blocks. And the plugin is perfectly integrated with Gutenberg and complete enough for my needs.',
+ 'user_3' => 'Otter Blocks work really well and I like the customization options. Easy to use and format to fit in with my site theme – and I’ve not encountered any compatibility or speed issues.',
+ ],
+ ],
+ ],
+ ],
+ 'float_widget' => [
+ 'button' => 'Toggle Help Widget for %s',
+ 'panel' => [
+ 'greeting' => 'Thank you for using %s',
+ 'title' => 'How can we help you?',
+ 'close' => 'Close Toggle Help Widget',
+ ],
+ 'links' => [
+ 'documentation' => 'Documentation',
+ 'support' => 'Get Support',
+ 'wizard' => 'Run Setup Wizard',
+ 'upgrade' => 'Upgrade to Pro',
+ 'feature_request' => 'Suggest a Feature',
+ 'rate' => 'Rate Us',
+ ],
+ ],
+ ];
+
+ /**
+ * Initialize the sdk logic.
+ */
+ public static function init() {
+ /**
+ * This filter can be used to localize the labels inside each product.
+ */
+ self::$labels = apply_filters( 'themeisle_sdk_labels', self::$labels );
+ if ( ! isset( self::$instance ) && ! ( self::$instance instanceof Loader ) ) {
+ self::$instance = new Loader();
+ $modules = array_merge( self::$available_modules, apply_filters( 'themeisle_sdk_modules', [] ) );
+ foreach ( $modules as $key => $module ) {
+ if ( ! class_exists( 'ThemeisleSDK\\Modules\\' . ucwords( $module, '_' ) ) ) {
+ unset( $modules[ $key ] );
+ }
+ }
+ self::$available_modules = $modules;
+ }
+ }
+
+ /**
+ * Get cache token used in API requests.
+ *
+ * @return string Cache token.
+ */
+ public static function get_cache_token() {
+ $cache_token = get_transient( 'themeisle_sdk_cache_token' );
+ if ( false === $cache_token ) {
+ $cache_token = wp_generate_password( 6, false );
+ set_transient( $cache_token, WEEK_IN_SECONDS );
+ }
+
+ return $cache_token;
+ }
+
+ /**
+ * Clear cache token.
+ */
+ public static function clear_cache_token() {
+ delete_transient( 'themeisle_sdk_cache_token' );
+ }
+
+ /**
+ * Register product into SDK.
+ *
+ * @param string $base_file The product base file.
+ *
+ * @return Loader The singleton object.
+ */
+ public static function add_product( $base_file ) {
+
+ if ( ! is_file( $base_file ) ) {
+ return self::$instance;
+ }
+ $product = new Product( $base_file );
+
+ Module_Factory::attach( $product, self::get_modules() );
+
+ self::$products[ $product->get_slug() ] = $product;
+
+ return self::$instance;
+ }
+
+ /**
+ * Get all registered modules by the SDK.
+ *
+ * @return array Modules available.
+ */
+ public static function get_modules() {
+ return self::$available_modules;
+ }
+
+ /**
+ * Get all products using the SDK.
+ *
+ * @return array Products available.
+ */
+ public static function get_products() {
+ return self::$products;
+ }
+
+ /**
+ * Get the version of the SDK.
+ *
+ * @return string The version.
+ */
+ public static function get_version() {
+ return self::$version;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/About_us.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/About_us.php
new file mode 100644
index 00000000..eb70ccef
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/About_us.php
@@ -0,0 +1,435 @@
+_about_us_metadata', 'add_about_meta' );
+ *
+ * function add_about_meta($data) {
+ * return [
+ * 'location' => ,
+ * 'logo' => ,
+ * 'page_menu' => [['text' => '', 'url' => '']], // optional
+ * 'has_upgrade_menu' => ,
+ * 'upgrade_link' => ,
+ * 'upgrade_text' => 'Get Pro Version',
+ * ]
+ * }
+ *
+ * @package ThemeIsleSDK
+ * @subpackage Modules
+ * @copyright Copyright (c) 2023, Andrei Baicus
+ * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
+ * @since 3.2.42
+ */
+
+namespace ThemeisleSDK\Modules;
+
+use ThemeisleSDK\Common\Abstract_Module;
+use ThemeisleSDK\Loader;
+use ThemeisleSDK\Product;
+
+// Exit if accessed directly.
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Promotions module for ThemeIsle SDK.
+ */
+class About_Us extends Abstract_Module {
+ /**
+ * About data.
+ *
+ * @var array $about_data About page data, received from the filter.
+ *
+ * Shape of the $about_data property array:
+ * [
+ * 'location' => 'top level page',
+ * 'logo' => 'logo path',
+ * 'page_menu' => [['text' => '', 'url' => '']], // Optional
+ * 'has_upgrade_menu' => !defined('NEVE_PRO_VERSION'),
+ * 'upgrade_link' => 'upgrade url',
+ * 'upgrade_text' => 'Get Pro Version',
+ * ]
+ */
+ private $about_data = array();
+
+ /**
+ * Should we load this module.
+ *
+ * @param Product $product Product object.
+ *
+ * @return bool
+ */
+ public function can_load( $product ) {
+ if ( $this->is_from_partner( $product ) ) {
+ return false;
+ }
+
+ $this->about_data = apply_filters( $product->get_key() . '_about_us_metadata', array() );
+
+ return ! empty( $this->about_data );
+ }
+
+ /**
+ * Registers the hooks.
+ *
+ * @param Product $product Product to load.
+ */
+ public function load( $product ) {
+ $this->product = $product;
+
+ add_action( 'admin_menu', [ $this, 'add_submenu_pages' ] );
+ add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_about_page_script' ] );
+ }
+
+ /**
+ * Adds submenu pages.
+ *
+ * @return void
+ */
+ public function add_submenu_pages() {
+ if ( ! isset( $this->about_data['location'] ) ) {
+ return;
+ }
+
+ add_submenu_page(
+ $this->about_data['location'],
+ Loader::$labels['about_us']['title'],
+ Loader::$labels['about_us']['title'],
+ 'manage_options',
+ $this->get_about_page_slug(),
+ array( $this, 'render_about_us_page' ),
+ 100
+ );
+
+ if ( ! isset( $this->about_data['has_upgrade_menu'] ) ) {
+ return;
+ }
+
+ if ( $this->about_data['has_upgrade_menu'] !== true ) {
+ return;
+ }
+
+ if ( ! isset( $this->about_data['upgrade_link'] ) ) {
+ return;
+ }
+
+ if ( ! isset( $this->about_data['upgrade_text'] ) ) {
+ return;
+ }
+
+ add_submenu_page(
+ $this->about_data['location'],
+ $this->about_data['upgrade_text'],
+ '' . $this->about_data['upgrade_text'] . '',
+ 'manage_options',
+ $this->about_data['upgrade_link'],
+ '',
+ 101
+ );
+ add_action(
+ 'admin_footer',
+ function () {
+ ?>
+
+
+
';
+
+ return $info_disclosure_content;
+ }
+
+ /**
+ * Randomizes the options array.
+ *
+ * @param array $options The options array.
+ */
+ public function randomize_options( $options ) {
+ $new = array();
+ $keys = array_keys( $options );
+ shuffle( $keys );
+
+ foreach ( $keys as $key ) {
+ $new[ $key ] = $options[ $key ];
+ }
+
+ return $new;
+ }
+
+ /**
+ * Called when the deactivate button is clicked.
+ */
+ public function post_deactivate() {
+ check_ajax_referer( (string) __CLASS__, 'nonce' );
+
+ $this->post_deactivate_or_cancel();
+
+ if ( empty( $_POST['id'] ) ) {
+
+ wp_send_json( [] );
+
+ return;
+ }
+ $this->call_api(
+ array(
+ 'type' => 'deactivate',
+ 'id' => sanitize_key( $_POST['id'] ),
+ 'comment' => isset( $_POST['msg'] ) ? sanitize_textarea_field( $_POST['msg'] ) : '',
+ )
+ );
+ wp_send_json( [] );
+
+ }
+
+ /**
+ * Called when the deactivate/cancel button is clicked.
+ */
+ private function post_deactivate_or_cancel() {
+ if ( ! isset( $_POST['type'] ) || ! isset( $_POST['key'] ) ) { //phpcs:ignore WordPress.Security.NonceVerification.Missing, Nonce already present in caller function.
+ return;
+ }
+ if ( 'theme' !== $_POST['type'] ) { //phpcs:ignore WordPress.Security.NonceVerification.Missing, Nonce already present in caller function.
+ return;
+ }
+
+ set_transient( 'ti_sdk_pause_' . sanitize_text_field( $_POST['key'] ), true, self::PAUSE_DEACTIVATE_WINDOW_DAYS * DAY_IN_SECONDS );//phpcs:ignore WordPress.Security.NonceVerification.Missing, Nonce already present in caller function.
+
+ }
+
+ /**
+ * Calls the API
+ *
+ * @param array $attributes The attributes of the post body.
+ *
+ * @return bool Is the request succesfull?
+ */
+ protected function call_api( $attributes ) {
+ $slug = $this->product->get_slug();
+ $version = $this->product->get_version();
+ $attributes['slug'] = $slug;
+ $attributes['version'] = $version;
+ $attributes['url'] = get_site_url();
+ $attributes['active_time'] = ( time() - $this->product->get_install_time() );
+
+ $response = wp_remote_post(
+ self::FEEDBACK_ENDPOINT,
+ array(
+ 'body' => $attributes,
+ )
+ );
+
+ return is_wp_error( $response );
+ }
+
+ /**
+ * Should we load this object?.
+ *
+ * @param Product $product Product object.
+ *
+ * @return bool Should we load the module?
+ */
+ public function can_load( $product ) {
+ if ( $this->is_from_partner( $product ) ) {
+ return false;
+ }
+ if ( $product->is_theme() && ( false !== get_transient( 'ti_sdk_pause_' . $product->get_key(), false ) ) ) {
+ return false;
+ }
+
+ if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
+ return true;
+ }
+ global $pagenow;
+
+ if ( ! isset( $pagenow ) || empty( $pagenow ) ) {
+ return false;
+ }
+
+ if ( $product->is_plugin() && 'plugins.php' !== $pagenow ) {
+ return false;
+
+ }
+ if ( $product->is_theme() && 'theme-install.php' !== $pagenow ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Loads module hooks.
+ *
+ * @param Product $product Product details.
+ *
+ * @return Uninstall_Feedback Current module instance.
+ */
+ public function load( $product ) {
+
+ if ( apply_filters( $product->get_key() . '_hide_uninstall_feedback', false ) ) {
+ return;
+ }
+
+ $this->product = $product;
+ add_action( 'admin_head', array( $this, 'load_resources' ) );
+ add_action( 'wp_ajax_' . $this->product->get_key() . '_uninstall_feedback', array( $this, 'post_deactivate' ) );
+
+ return $this;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/Welcome.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/Welcome.php
new file mode 100644
index 00000000..e0d1e649
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Modules/Welcome.php
@@ -0,0 +1,194 @@
+_welcome_metadata', function() {
+ * return [
+ * 'is_enabled' => ,
+ * 'pro_name' => 'Product PRO name',
+ * 'logo' => '',
+ * 'cta_link' => tsdk_utmify( 'https://link_to_upgrade.with/?discount=')
+ * ];
+ * } );
+ * ```
+ *
+ * @package ThemeIsleSDK
+ * @subpackage Modules
+ * @copyright Copyright (c) 2023, Bogdan Preda
+ * @license http://opensource.org/licenses/gpl-3.0.php GNU Public License
+ * @since 1.0.0
+ */
+
+namespace ThemeisleSDK\Modules;
+
+// Exit if accessed directly.
+use ThemeisleSDK\Common\Abstract_Module;
+use ThemeisleSDK\Loader;
+
+if ( ! defined( 'ABSPATH' ) ) {
+ exit;
+}
+
+/**
+ * Promotions module for ThemeIsle SDK.
+ */
+class Welcome extends Abstract_Module {
+
+ /**
+ * Debug mode.
+ *
+ * @var bool
+ */
+ private $debug = false;
+
+ /**
+ * Welcome metadata.
+ *
+ * @var array
+ */
+ private $welcome_discounts = array();
+
+ /**
+ * Check that we can load this module.
+ *
+ * @param \ThemeisleSDK\Product $product The product.
+ *
+ * @return bool
+ */
+ public function can_load( $product ) {
+ $this->debug = apply_filters( 'themeisle_sdk_welcome_debug', $this->debug );
+ $welcome_metadata = apply_filters( $product->get_key() . '_welcome_metadata', array() );
+
+ $is_welcome_enabled = $this->is_welcome_meta_valid( $welcome_metadata );
+
+ if ( $is_welcome_enabled ) {
+ $this->welcome_discounts[ $product->get_key() ] = $welcome_metadata;
+ }
+
+ return $this->debug || $is_welcome_enabled;
+ }
+
+ /**
+ * Check that the metadata is valid and the welcome is enabled.
+ *
+ * @param array $welcome_metadata The metadata to validate.
+ *
+ * @return bool
+ */
+ private function is_welcome_meta_valid( $welcome_metadata ) {
+ return ! empty( $welcome_metadata ) && isset( $welcome_metadata['is_enabled'] ) && $welcome_metadata['is_enabled'];
+ }
+
+ /**
+ * Load the module.
+ *
+ * @param \ThemeisleSDK\Product $product The product.
+ *
+ * @return $this
+ */
+ public function load( $product ) {
+ if ( ! current_user_can( 'install_plugins' ) ) {
+ return;
+ }
+
+ $this->product = $product;
+ if ( ! $this->is_time_to_show_welcome() && $this->debug === false ) {
+ return;
+ }
+
+ add_filter( 'themeisle_sdk_registered_notifications', [ $this, 'add_notification' ], 99, 1 );
+
+ return $this;
+ }
+
+ /**
+ * Check if it's time to show the welcome.
+ *
+ * @return bool
+ */
+ private function is_time_to_show_welcome() {
+ // if 7 days from install have not passed, don't show the welcome.
+ if ( $this->product->get_install_time() + 7 * DAY_IN_SECONDS > time() ) {
+ return false;
+ }
+
+ // if 12 days from install have passed, don't show the welcome ( after 7 days for 5 days ).
+ if ( $this->product->get_install_time() + 12 * DAY_IN_SECONDS < time() ) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Add the welcome notification.
+ * Will block all other notifications if a welcome notification is present.
+ *
+ * @return array
+ */
+ public function add_notification( $all_notifications ) {
+ if ( empty( $this->welcome_discounts ) ) {
+ return $all_notifications;
+ }
+
+ if ( ! isset( $this->welcome_discounts[ $this->product->get_key() ] ) ) {
+ return $all_notifications;
+ }
+
+ // filter out the notifications that are not welcome upsells
+ // if we arrived here we will have at least one welcome upsell
+ $all_notifications = array_filter(
+ $all_notifications,
+ function ( $notification ) {
+ return strpos( $notification['id'], '_welcome_upsell_flag' ) !== false;
+ }
+ );
+
+ $offer = $this->welcome_discounts[ $this->product->get_key() ];
+
+ $response = [];
+ $logo = isset( $offer['logo'] ) ? $offer['logo'] : '';
+ $pro_name = isset( $offer['pro_name'] ) ? $offer['pro_name'] : $this->product->get_friendly_name() . ' PRO';
+
+ $link = $offer['cta_link'];
+
+ $message = apply_filters( $this->product->get_key() . '_welcome_upsell_message', Loader::$labels['welcome']['message'] );
+
+ $button_submit = apply_filters( $this->product->get_key() . '_feedback_review_button_do', Loader::$labels['welcome']['ctay'] );
+ $button_cancel = apply_filters( $this->product->get_key() . '_feedback_review_button_cancel', Loader::$labels['welcome']['ctan'] );
+ $message = str_replace(
+ [ '{product}', '{pro_product}', '{cta_link}' ],
+ [
+ $this->product->get_friendly_name(),
+ $pro_name,
+ $link,
+ ],
+ $message
+ );
+
+ $all_notifications[] = [
+ 'id' => $this->product->get_key() . '_welcome_upsell_flag',
+ 'message' => $message,
+ 'img_src' => $logo,
+ 'ctas' => [
+ 'confirm' => [
+ 'link' => $link,
+ 'text' => $button_submit,
+ ],
+ 'cancel' => [
+ 'link' => '#',
+ 'text' => $button_cancel,
+ ],
+ ],
+ 'type' => 'info',
+ ];
+
+ $key = array_rand( $all_notifications );
+ $response[] = $all_notifications[ $key ];
+
+ return $response;
+ }
+
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Product.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Product.php
new file mode 100644
index 00000000..041e69b8
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/src/Product.php
@@ -0,0 +1,461 @@
+basefile = $basefile;
+ $this->setup_from_path();
+ $this->setup_from_fileheaders();
+ }
+ }
+ $install = get_option( $this->get_key() . '_install', 0 );
+ if ( 0 === $install ) {
+ $install = time();
+ update_option( $this->get_key() . '_install', time() );
+ }
+ $this->install = $install;
+ self::$cached_products[ crc32( $basefile ) ] = $this;
+ }
+
+ /**
+ * Return a product.
+ *
+ * @param string $basefile Product basefile.
+ *
+ * @return Product Product Object.
+ */
+ public static function get( $basefile ) {
+ $key = crc32( $basefile );
+ if ( isset( self::$cached_products[ $key ] ) ) {
+ return self::$cached_products[ $key ];
+ }
+ self::$cached_products[ $key ] = new Product( $basefile );
+
+ return self::$cached_products[ $key ];
+ }
+
+ /**
+ * Setup props from path.
+ */
+ public function setup_from_path() {
+ $this->file = basename( $this->basefile );
+ $dir = dirname( $this->basefile );
+ $this->slug = basename( $dir );
+ $exts = explode( '.', $this->basefile );
+ $ext = $exts[ count( $exts ) - 1 ];
+ if ( 'css' === $ext ) {
+ $this->type = 'theme';
+ }
+ if ( 'php' === $ext ) {
+ $this->type = 'plugin';
+ }
+ $this->key = self::key_ready_name( $this->slug );
+ }
+
+ /**
+ * Normalize string.
+ *
+ * @param string $string the String to be normalized for cron handler.
+ *
+ * @return string $name The normalized string.
+ */
+ public static function key_ready_name( $string ) {
+ return str_replace( '-', '_', strtolower( trim( $string ) ) );
+ }
+
+ /**
+ * Setup props from fileheaders.
+ */
+ public function setup_from_fileheaders() {
+ $file_headers = array(
+ 'Requires License' => 'Requires License',
+ 'WordPress Available' => 'WordPress Available',
+ 'Pro Slug' => 'Pro Slug',
+ 'Version' => 'Version',
+ );
+ if ( 'plugin' === $this->type ) {
+ $file_headers['Name'] = 'Plugin Name';
+ $file_headers['AuthorName'] = 'Author';
+ $file_headers['AuthorURI'] = 'Author URI';
+ }
+ if ( 'theme' === $this->type ) {
+ $file_headers['Name'] = 'Theme Name';
+ $file_headers['AuthorName'] = 'Author';
+ $file_headers['AuthorURI'] = 'Author URI';
+ }
+ $file_headers = get_file_data( $this->basefile, $file_headers );
+
+ $this->name = $file_headers['Name'];
+ $this->store_name = $file_headers['AuthorName'];
+ $this->author_url = $file_headers['AuthorURI'];
+ $this->store_url = $file_headers['AuthorURI'];
+
+ $this->requires_license = ( 'yes' === $file_headers['Requires License'] ) ? true : false;
+ $this->wordpress_available = ( 'yes' === $file_headers['WordPress Available'] ) ? true : false;
+ $this->pro_slug = ! empty( $file_headers['Pro Slug'] ) ? $file_headers['Pro Slug'] : '';
+ $this->version = $file_headers['Version'];
+
+ }
+
+ /**
+ * Return the product key.
+ *
+ * @return string The product key.
+ */
+ public function get_key() {
+ return $this->key;
+ }
+
+ /**
+ * Check if the product is either theme or plugin.
+ *
+ * @return string Product type.
+ */
+ public function get_type() {
+ return $this->type;
+ }
+
+ /**
+ * Return if the product is used as a plugin.
+ *
+ * @return bool Is plugin?
+ */
+ public function is_plugin() {
+ return self::PLUGIN_TYPE === $this->type;
+ }
+
+ /**
+ * Return if the product is used as a theme.
+ *
+ * @return bool Is theme ?
+ */
+ public function is_theme() {
+ return self::THEME_TYPE === $this->type;
+ }
+
+ /**
+ * Returns the product slug.
+ *
+ * @return string The product slug.
+ */
+ public function get_slug() {
+ return $this->slug;
+ }
+
+ /**
+ * The magic var_dump info method.
+ *
+ * @return array Debug info.
+ */
+ public function __debugInfo() {
+ return array(
+ 'name' => $this->name,
+ 'slug' => $this->slug,
+ 'version' => $this->version,
+ 'basefile' => $this->basefile,
+ 'key' => $this->key,
+ 'type' => $this->type,
+ 'store_name' => $this->store_name,
+ 'store_url' => $this->store_url,
+ 'wordpress_available' => $this->wordpress_available,
+ 'requires_license' => $this->requires_license,
+ );
+
+ }
+
+ /**
+ * Getter for product version.
+ *
+ * @return string The product version.
+ */
+ public function get_version() {
+ return $this->version;
+ }
+
+ /**
+ * Returns current product license, if available.
+ *
+ * @return string Return license key, if available.
+ */
+ public function get_license() {
+
+ if ( ! $this->requires_license() && ! $this->is_wordpress_available() ) {
+ return 'free';
+ }
+ $license_data = get_option( $this->get_key() . '_license_data', '' );
+
+ if ( empty( $license_data ) ) {
+ return get_option( $this->get_key() . '_license', '' );
+ }
+ if ( ! isset( $license_data->key ) ) {
+ return get_option( $this->get_key() . '_license', '' );
+ }
+
+ return $license_data->key;
+ }
+
+ /**
+ * Either the product requires license or not.
+ *
+ * @return bool Either requires license or not.
+ */
+ public function requires_license() {
+ return $this->requires_license;
+ }
+
+ /**
+ * If product is available on wordpress.org or not.
+ *
+ * @return bool Either is wp available or not.
+ */
+ public function is_wordpress_available() {
+ return $this->wordpress_available;
+ }
+
+ /**
+ * Return friendly name.
+ *
+ * @return string Friendly name.
+ */
+ public function get_friendly_name() {
+ $name = apply_filters( $this->get_key() . '_friendly_name', trim( str_replace( 'Lite', '', $this->get_name() ) ) );
+ $name = rtrim( $name, '- ()' );
+
+ return $name;
+ }
+
+ /**
+ * Return the product version cache key.
+ *
+ * @return string The product version cache key.
+ */
+ public function get_cache_key() {
+ return $this->get_key() . '_' . preg_replace( '/[^0-9a-zA-Z ]/m', '', $this->get_version() ) . 'versions';
+ }
+
+ /**
+ * Getter for product name.
+ *
+ * @return string The product name.
+ */
+ public function get_name() {
+ return $this->name;
+ }
+
+ /**
+ * Returns the Store name.
+ *
+ * @return string Store name.
+ */
+ public function get_store_name() {
+ return $this->store_name;
+ }
+
+ /**
+ * Returns the store url.
+ *
+ * @return string The store url.
+ */
+ public function get_store_url() {
+
+ if ( strpos( $this->store_url, '/themeisle.com' ) !== false ) {
+ return 'https://store.themeisle.com/';
+ }
+
+ return $this->store_url;
+ }
+
+ /**
+ * Returns product basefile, which holds the metaheaders.
+ *
+ * @return string The product basefile.
+ */
+ public function get_basefile() {
+ return $this->basefile;
+ }
+
+ /**
+ * Get changelog url.
+ *
+ * @return string Changelog url.
+ */
+ public function get_changelog() {
+ return add_query_arg(
+ [
+ 'name' => rawurlencode( $this->get_name() ),
+ 'edd_action' => 'view_changelog',
+ 'locale' => get_user_locale(),
+ ],
+ $this->get_store_url()
+ );
+ }
+
+ /**
+ * Returns product filename.
+ *
+ * @return string The product filename.
+ */
+ public function get_file() {
+ return $this->file;
+ }
+
+ /**
+ * Returns the pro slug, if available.
+ *
+ * @return string The pro slug.
+ */
+ public function get_pro_slug() {
+ return $this->pro_slug;
+ }
+
+ /**
+ * Return the install timestamp.
+ *
+ * @return int The install timestamp.
+ */
+ public function get_install_time() {
+ return $this->install;
+ }
+
+ /**
+ * Returns the URL of the product base file.
+ *
+ * @param string $path The path to the file.
+ *
+ * @return string The URL of the product base file.
+ */
+ public function get_base_url( $path = '/' ) {
+ if ( $this->type ) {
+ return plugins_url( $path, $this->basefile );
+ }
+ }
+
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/start.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/start.php
new file mode 100644
index 00000000..84235d04
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/codeinwp/themeisle-sdk/start.php
@@ -0,0 +1,56 @@
+
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ * $loader = new \Composer\Autoload\ClassLoader();
+ *
+ * // register classes with namespaces
+ * $loader->add('Symfony\Component', __DIR__.'/component');
+ * $loader->add('Symfony', __DIR__.'/framework');
+ *
+ * // activate the autoloader
+ * $loader->register();
+ *
+ * // to enable searching the include path (eg. for PEAR packages)
+ * $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier
+ * @author Jordi Boggiano
+ * @see https://www.php-fig.org/psr/psr-0/
+ * @see https://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+ /** @var \Closure(string):void */
+ private static $includeFile;
+
+ /** @var string|null */
+ private $vendorDir;
+
+ // PSR-4
+ /**
+ * @var array>
+ */
+ private $prefixLengthsPsr4 = array();
+ /**
+ * @var array>
+ */
+ private $prefixDirsPsr4 = array();
+ /**
+ * @var list
+ */
+ private $fallbackDirsPsr4 = array();
+
+ // PSR-0
+ /**
+ * List of PSR-0 prefixes
+ *
+ * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
+ *
+ * @var array>>
+ */
+ private $prefixesPsr0 = array();
+ /**
+ * @var list
+ */
+ private $fallbackDirsPsr0 = array();
+
+ /** @var bool */
+ private $useIncludePath = false;
+
+ /**
+ * @var array
+ */
+ private $classMap = array();
+
+ /** @var bool */
+ private $classMapAuthoritative = false;
+
+ /**
+ * @var array
+ */
+ private $missingClasses = array();
+
+ /** @var string|null */
+ private $apcuPrefix;
+
+ /**
+ * @var array
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param string|null $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ self::initializeIncludeClosure();
+ }
+
+ /**
+ * @return array>
+ */
+ public function getPrefixes()
+ {
+ if (!empty($this->prefixesPsr0)) {
+ return call_user_func_array('array_merge', array_values($this->prefixesPsr0));
+ }
+
+ return array();
+ }
+
+ /**
+ * @return array>
+ */
+ public function getPrefixesPsr4()
+ {
+ return $this->prefixDirsPsr4;
+ }
+
+ /**
+ * @return list
+ */
+ public function getFallbackDirs()
+ {
+ return $this->fallbackDirsPsr0;
+ }
+
+ /**
+ * @return list
+ */
+ public function getFallbackDirsPsr4()
+ {
+ return $this->fallbackDirsPsr4;
+ }
+
+ /**
+ * @return array Array of classname => path
+ */
+ public function getClassMap()
+ {
+ return $this->classMap;
+ }
+
+ /**
+ * @param array $classMap Class to filename map
+ *
+ * @return void
+ */
+ public function addClassMap(array $classMap)
+ {
+ if ($this->classMap) {
+ $this->classMap = array_merge($this->classMap, $classMap);
+ } else {
+ $this->classMap = $classMap;
+ }
+ }
+
+ /**
+ * 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 list|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
+ */
+ public function add($prefix, $paths, $prepend = false)
+ {
+ $paths = (array) $paths;
+ if (!$prefix) {
+ if ($prepend) {
+ $this->fallbackDirsPsr0 = array_merge(
+ $paths,
+ $this->fallbackDirsPsr0
+ );
+ } else {
+ $this->fallbackDirsPsr0 = array_merge(
+ $this->fallbackDirsPsr0,
+ $paths
+ );
+ }
+
+ return;
+ }
+
+ $first = $prefix[0];
+ if (!isset($this->prefixesPsr0[$first][$prefix])) {
+ $this->prefixesPsr0[$first][$prefix] = $paths;
+
+ return;
+ }
+ if ($prepend) {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $paths,
+ $this->prefixesPsr0[$first][$prefix]
+ );
+ } else {
+ $this->prefixesPsr0[$first][$prefix] = array_merge(
+ $this->prefixesPsr0[$first][$prefix],
+ $paths
+ );
+ }
+ }
+
+ /**
+ * 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 list|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)
+ {
+ $paths = (array) $paths;
+ if (!$prefix) {
+ // Register directories for the root namespace.
+ if ($prepend) {
+ $this->fallbackDirsPsr4 = array_merge(
+ $paths,
+ $this->fallbackDirsPsr4
+ );
+ } else {
+ $this->fallbackDirsPsr4 = array_merge(
+ $this->fallbackDirsPsr4,
+ $paths
+ );
+ }
+ } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+ // Register directories for a new namespace.
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = $paths;
+ } elseif ($prepend) {
+ // Prepend directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $paths,
+ $this->prefixDirsPsr4[$prefix]
+ );
+ } else {
+ // Append directories for an already registered namespace.
+ $this->prefixDirsPsr4[$prefix] = array_merge(
+ $this->prefixDirsPsr4[$prefix],
+ $paths
+ );
+ }
+ }
+
+ /**
+ * 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 list|string $paths The PSR-0 base directories
+ *
+ * @return void
+ */
+ public function set($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr0 = (array) $paths;
+ } else {
+ $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * 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 list|string $paths The PSR-4 base directories
+ *
+ * @throws \InvalidArgumentException
+ *
+ * @return void
+ */
+ public function setPsr4($prefix, $paths)
+ {
+ if (!$prefix) {
+ $this->fallbackDirsPsr4 = (array) $paths;
+ } else {
+ $length = strlen($prefix);
+ if ('\\' !== $prefix[$length - 1]) {
+ throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+ }
+ $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+ $this->prefixDirsPsr4[$prefix] = (array) $paths;
+ }
+ }
+
+ /**
+ * Turns on searching the include path for class files.
+ *
+ * @param bool $useIncludePath
+ *
+ * @return void
+ */
+ public function setUseIncludePath($useIncludePath)
+ {
+ $this->useIncludePath = $useIncludePath;
+ }
+
+ /**
+ * Can be used to check if the autoloader uses the include path to check
+ * for classes.
+ *
+ * @return bool
+ */
+ public function getUseIncludePath()
+ {
+ return $this->useIncludePath;
+ }
+
+ /**
+ * Turns off searching the prefix and fallback directories for classes
+ * that have not been registered with the class map.
+ *
+ * @param bool $classMapAuthoritative
+ *
+ * @return void
+ */
+ public function setClassMapAuthoritative($classMapAuthoritative)
+ {
+ $this->classMapAuthoritative = $classMapAuthoritative;
+ }
+
+ /**
+ * Should class lookup fail if not found in the current class map?
+ *
+ * @return bool
+ */
+ public function isClassMapAuthoritative()
+ {
+ return $this->classMapAuthoritative;
+ }
+
+ /**
+ * 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)
+ {
+ $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
+ }
+
+ /**
+ * The APCu prefix in use, or null if APCu caching is not enabled.
+ *
+ * @return string|null
+ */
+ public function getApcuPrefix()
+ {
+ return $this->apcuPrefix;
+ }
+
+ /**
+ * 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 true|null True if loaded, null otherwise
+ */
+ public function loadClass($class)
+ {
+ if ($file = $this->findFile($class)) {
+ $includeFile = self::$includeFile;
+ $includeFile($file);
+
+ return true;
+ }
+
+ return null;
+ }
+
+ /**
+ * Finds the path to the file where the class is defined.
+ *
+ * @param string $class The name of the class
+ *
+ * @return string|false The path if found, false otherwise
+ */
+ public function findFile($class)
+ {
+ // class map lookup
+ if (isset($this->classMap[$class])) {
+ return $this->classMap[$class];
+ }
+ if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+ return false;
+ }
+ if (null !== $this->apcuPrefix) {
+ $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+ if ($hit) {
+ return $file;
+ }
+ }
+
+ $file = $this->findFileWithExtension($class, '.php');
+
+ // Search for Hack files if we are running on HHVM
+ if (false === $file && defined('HHVM_VERSION')) {
+ $file = $this->findFileWithExtension($class, '.hh');
+ }
+
+ if (null !== $this->apcuPrefix) {
+ apcu_add($this->apcuPrefix.$class, $file);
+ }
+
+ if (false === $file) {
+ // Remember that this class does not exist.
+ $this->missingClasses[$class] = true;
+ }
+
+ return $file;
+ }
+
+ /**
+ * Returns the currently registered loaders keyed by their corresponding vendor directories.
+ *
+ * @return array
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
+ private function findFileWithExtension($class, $ext)
+ {
+ // PSR-4 lookup
+ $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+ $first = $class[0];
+ if (isset($this->prefixLengthsPsr4[$first])) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath . '\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ if (file_exists($file = $dir . $pathEnd)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-4 fallback dirs
+ foreach ($this->fallbackDirsPsr4 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 lookup
+ if (false !== $pos = strrpos($class, '\\')) {
+ // namespaced class name
+ $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+ . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+ } else {
+ // PEAR-like class name
+ $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+ }
+
+ if (isset($this->prefixesPsr0[$first])) {
+ foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+ if (0 === strpos($class, $prefix)) {
+ foreach ($dirs as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+ }
+ }
+ }
+
+ // PSR-0 fallback dirs
+ foreach ($this->fallbackDirsPsr0 as $dir) {
+ if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+ return $file;
+ }
+ }
+
+ // PSR-0 include paths.
+ if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+ return $file;
+ }
+
+ return false;
+ }
+
+ /**
+ * @return void
+ */
+ private static function initializeIncludeClosure()
+ {
+ if (self::$includeFile !== null) {
+ return;
+ }
+
+ /**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ */
+ self::$includeFile = \Closure::bind(static function($file) {
+ include $file;
+ }, null, null);
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/InstalledVersions.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/InstalledVersions.php
new file mode 100644
index 00000000..51e734a7
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/InstalledVersions.php
@@ -0,0 +1,359 @@
+
+ * Jordi Boggiano
+ *
+ * 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`
+ *
+ * @final
+ */
+class InstalledVersions
+{
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
+ 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
+ */
+ 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
+ */
+ 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 || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false;
+ }
+ }
+
+ 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((string) $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, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}
+ */
+ 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, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}
+ */
+ 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}>
+ */
+ 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, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list}>
+ */
+ 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')) {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require $vendorDir.'/composer/installed.php';
+ $installed[] = self::$installedByVendor[$vendorDir] = $required;
+ 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') {
+ /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */
+ $required = require __DIR__ . '/installed.php';
+ self::$installed = $required;
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ if (self::$installed !== array()) {
+ $installed[] = self::$installed;
+ }
+
+ return $installed;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/LICENSE b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/LICENSE
new file mode 100644
index 00000000..f27399a0
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/LICENSE
@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_classmap.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_classmap.php
new file mode 100644
index 00000000..d0206668
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_classmap.php
@@ -0,0 +1,21 @@
+ $vendorDir . '/composer/InstalledVersions.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Resolver' => $vendorDir . '/enshrined/svg-sanitize/src/ElementReference/Resolver.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Subject' => $vendorDir . '/enshrined/svg-sanitize/src/ElementReference/Subject.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Usage' => $vendorDir . '/enshrined/svg-sanitize/src/ElementReference/Usage.php',
+ 'enshrined\\svgSanitize\\Exceptions\\NestingException' => $vendorDir . '/enshrined/svg-sanitize/src/Exceptions/NestingException.php',
+ 'enshrined\\svgSanitize\\Helper' => $vendorDir . '/enshrined/svg-sanitize/src/Helper.php',
+ 'enshrined\\svgSanitize\\Sanitizer' => $vendorDir . '/enshrined/svg-sanitize/src/Sanitizer.php',
+ 'enshrined\\svgSanitize\\data\\AllowedAttributes' => $vendorDir . '/enshrined/svg-sanitize/src/data/AllowedAttributes.php',
+ 'enshrined\\svgSanitize\\data\\AllowedTags' => $vendorDir . '/enshrined/svg-sanitize/src/data/AllowedTags.php',
+ 'enshrined\\svgSanitize\\data\\AttributeInterface' => $vendorDir . '/enshrined/svg-sanitize/src/data/AttributeInterface.php',
+ 'enshrined\\svgSanitize\\data\\TagInterface' => $vendorDir . '/enshrined/svg-sanitize/src/data/TagInterface.php',
+ 'enshrined\\svgSanitize\\data\\XPath' => $vendorDir . '/enshrined/svg-sanitize/src/data/XPath.php',
+);
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_files.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_files.php
new file mode 100644
index 00000000..4023226a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_files.php
@@ -0,0 +1,13 @@
+ $vendorDir . '/codeinwp/gutenberg-menu-icons/load.php',
+ '0498965e576e4ec1efaedeccfee8b5f0' => $vendorDir . '/codeinwp/menu-item-custom-fields/menu-item-custom-fields.php',
+ '347e48cf03d89942a6ddafc17d247b11' => $vendorDir . '/codeinwp/icon-picker/icon-picker.php',
+ '5a095c604245b0e67e4573f0a3b240cd' => $vendorDir . '/codeinwp/themeisle-sdk/load.php',
+);
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_namespaces.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_namespaces.php
new file mode 100644
index 00000000..15a2ff3a
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_namespaces.php
@@ -0,0 +1,9 @@
+ array($vendorDir . '/enshrined/svg-sanitize/src'),
+);
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_real.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_real.php
new file mode 100644
index 00000000..aa9e371c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_real.php
@@ -0,0 +1,50 @@
+register(true);
+
+ $filesToLoad = \Composer\Autoload\ComposerStaticInite0e064cdd82a4be104872380c8a68791::$files;
+ $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
+ if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
+ $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
+
+ require $file;
+ }
+ }, null, null);
+ foreach ($filesToLoad as $fileIdentifier => $file) {
+ $requireFile($fileIdentifier, $file);
+ }
+
+ return $loader;
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_static.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_static.php
new file mode 100644
index 00000000..d10b5995
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/autoload_static.php
@@ -0,0 +1,54 @@
+ __DIR__ . '/..' . '/codeinwp/gutenberg-menu-icons/load.php',
+ '0498965e576e4ec1efaedeccfee8b5f0' => __DIR__ . '/..' . '/codeinwp/menu-item-custom-fields/menu-item-custom-fields.php',
+ '347e48cf03d89942a6ddafc17d247b11' => __DIR__ . '/..' . '/codeinwp/icon-picker/icon-picker.php',
+ '5a095c604245b0e67e4573f0a3b240cd' => __DIR__ . '/..' . '/codeinwp/themeisle-sdk/load.php',
+ );
+
+ public static $prefixLengthsPsr4 = array (
+ 'e' =>
+ array (
+ 'enshrined\\svgSanitize\\' => 22,
+ ),
+ );
+
+ public static $prefixDirsPsr4 = array (
+ 'enshrined\\svgSanitize\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/enshrined/svg-sanitize/src',
+ ),
+ );
+
+ public static $classMap = array (
+ 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Resolver' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/ElementReference/Resolver.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Subject' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/ElementReference/Subject.php',
+ 'enshrined\\svgSanitize\\ElementReference\\Usage' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/ElementReference/Usage.php',
+ 'enshrined\\svgSanitize\\Exceptions\\NestingException' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/Exceptions/NestingException.php',
+ 'enshrined\\svgSanitize\\Helper' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/Helper.php',
+ 'enshrined\\svgSanitize\\Sanitizer' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/Sanitizer.php',
+ 'enshrined\\svgSanitize\\data\\AllowedAttributes' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/data/AllowedAttributes.php',
+ 'enshrined\\svgSanitize\\data\\AllowedTags' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/data/AllowedTags.php',
+ 'enshrined\\svgSanitize\\data\\AttributeInterface' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/data/AttributeInterface.php',
+ 'enshrined\\svgSanitize\\data\\TagInterface' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/data/TagInterface.php',
+ 'enshrined\\svgSanitize\\data\\XPath' => __DIR__ . '/..' . '/enshrined/svg-sanitize/src/data/XPath.php',
+ );
+
+ public static function getInitializer(ClassLoader $loader)
+ {
+ return \Closure::bind(function () use ($loader) {
+ $loader->prefixLengthsPsr4 = ComposerStaticInite0e064cdd82a4be104872380c8a68791::$prefixLengthsPsr4;
+ $loader->prefixDirsPsr4 = ComposerStaticInite0e064cdd82a4be104872380c8a68791::$prefixDirsPsr4;
+ $loader->classMap = ComposerStaticInite0e064cdd82a4be104872380c8a68791::$classMap;
+
+ }, null, ClassLoader::class);
+ }
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.json b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.json
new file mode 100644
index 00000000..46ccc0fc
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.json
@@ -0,0 +1,228 @@
+{
+ "packages": [
+ {
+ "name": "codeinwp/gutenberg-menu-icons",
+ "version": "1.0.5",
+ "version_normalized": "1.0.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeinwp/gutenberg-menu-icons.git",
+ "reference": "fce0fae088cc85001620d83253568aeec2af51c0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeinwp/gutenberg-menu-icons/zipball/fce0fae088cc85001620d83253568aeec2af51c0",
+ "reference": "fce0fae088cc85001620d83253568aeec2af51c0",
+ "shasum": ""
+ },
+ "require-dev": {
+ "automattic/vipwpcs": "^0.3.0 || ^1.0.0",
+ "dealerdirect/phpcodesniffer-composer-installer": "0.6.2",
+ "phpcompatibility/php-compatibility": "^9",
+ "squizlabs/php_codesniffer": "^3.3",
+ "wp-coding-standards/wpcs": "^1"
+ },
+ "time": "2021-06-23T20:23:12+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "files": [
+ "load.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "ThemeIsle team",
+ "email": "friends@themeisle.com",
+ "homepage": "https://themeisle.com"
+ }
+ ],
+ "description": "Menu Icons for Gutenberg",
+ "homepage": "https://github.com/Codeinwp/gutenberg-menu-icons",
+ "abandoned": true,
+ "install-path": "../codeinwp/gutenberg-menu-icons"
+ },
+ {
+ "name": "codeinwp/icon-picker",
+ "version": "dev-master",
+ "version_normalized": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeinwp/icon-picker.git",
+ "reference": "8efc2e400231ad7d4af94ff9270cd5b50248d4c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeinwp/icon-picker/zipball/8efc2e400231ad7d4af94ff9270cd5b50248d4c9",
+ "reference": "8efc2e400231ad7d4af94ff9270cd5b50248d4c9",
+ "shasum": ""
+ },
+ "require": {
+ "composer/installers": "~1.0",
+ "enshrined/svg-sanitize": "^0.18.0"
+ },
+ "require-dev": {
+ "wp-coding-standards/wpcs": "^0.10.0"
+ },
+ "time": "2024-05-13T08:27:15+00:00",
+ "default-branch": true,
+ "type": "wordpress-plugin",
+ "installation-source": "dist",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0"
+ ],
+ "description": "Pick an icon of your choice.",
+ "homepage": "https://github.com/codeinwp/icon-picker",
+ "keywords": [
+ "dashicons",
+ "elusive",
+ "font-awesome",
+ "foundation-icons",
+ "genericons",
+ "icons",
+ "plugin",
+ "wordpress"
+ ],
+ "support": {
+ "source": "https://github.com/Codeinwp/icon-picker/tree/master"
+ },
+ "install-path": "../codeinwp/icon-picker"
+ },
+ {
+ "name": "codeinwp/menu-item-custom-fields",
+ "version": "dev-master",
+ "version_normalized": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeinwp/menu-item-custom-fields.git",
+ "reference": "f491fcfa873e92006e3d92a4ede8775e9cf53bae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeinwp/menu-item-custom-fields/zipball/f491fcfa873e92006e3d92a4ede8775e9cf53bae",
+ "reference": "f491fcfa873e92006e3d92a4ede8775e9cf53bae",
+ "shasum": ""
+ },
+ "require": {
+ "composer/installers": "~1.0"
+ },
+ "require-dev": {
+ "wp-coding-standards/wpcs": "^0.10.0"
+ },
+ "time": "2021-05-05T18:49:57+00:00",
+ "type": "wordpress-plugin",
+ "installation-source": "dist",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0"
+ ],
+ "description": "Easily add custom fields to nav menu items.",
+ "homepage": "https://github.com/Codeinwp/wp-menu-item-custom-fields",
+ "keywords": [
+ "custom-fields",
+ "menu",
+ "plugin",
+ "wordpress"
+ ],
+ "install-path": "../codeinwp/menu-item-custom-fields"
+ },
+ {
+ "name": "codeinwp/themeisle-sdk",
+ "version": "3.3.25",
+ "version_normalized": "3.3.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Codeinwp/themeisle-sdk.git",
+ "reference": "29b7c81f8ccd039f49d62ef7427a4cc06369becc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Codeinwp/themeisle-sdk/zipball/29b7c81f8ccd039f49d62ef7427a4cc06369becc",
+ "reference": "29b7c81f8ccd039f49d62ef7427a4cc06369becc",
+ "shasum": ""
+ },
+ "require-dev": {
+ "codeinwp/phpcs-ruleset": "dev-main"
+ },
+ "time": "2024-07-08T13:49:14+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0+"
+ ],
+ "authors": [
+ {
+ "name": "ThemeIsle team",
+ "email": "friends@themeisle.com",
+ "homepage": "https://themeisle.com"
+ }
+ ],
+ "description": "ThemeIsle SDK",
+ "homepage": "https://github.com/Codeinwp/themeisle-sdk",
+ "keywords": [
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/Codeinwp/themeisle-sdk/issues",
+ "source": "https://github.com/Codeinwp/themeisle-sdk/tree/v3.3.25"
+ },
+ "install-path": "../codeinwp/themeisle-sdk"
+ },
+ {
+ "name": "enshrined/svg-sanitize",
+ "version": "0.18.0",
+ "version_normalized": "0.18.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/darylldoyle/svg-sanitizer.git",
+ "reference": "6a2c069dab3843ca4d887ff09c972fc7033888d0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/6a2c069dab3843ca4d887ff09c972fc7033888d0",
+ "reference": "6a2c069dab3843ca4d887ff09c972fc7033888d0",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "php": "^5.6 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7 || ^6.5 || ^8.5"
+ },
+ "time": "2024-02-22T17:51:05+00:00",
+ "type": "library",
+ "installation-source": "dist",
+ "autoload": {
+ "psr-4": {
+ "enshrined\\svgSanitize\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "GPL-2.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Daryll Doyle",
+ "email": "daryll@enshrined.co.uk"
+ }
+ ],
+ "description": "An SVG sanitizer for PHP",
+ "support": {
+ "issues": "https://github.com/darylldoyle/svg-sanitizer/issues",
+ "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.18.0"
+ },
+ "install-path": "../enshrined/svg-sanitize"
+ }
+ ],
+ "dev": false,
+ "dev-package-names": []
+}
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.php
new file mode 100644
index 00000000..035beb0c
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/installed.php
@@ -0,0 +1,76 @@
+ array(
+ 'name' => 'codeinwp/wp-menu-icons',
+ 'pretty_version' => 'v0.13.15',
+ 'version' => '0.13.15.0',
+ 'reference' => '6f28bd69233def87a6289b95d36c9b9b5500cefb',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'dev' => false,
+ ),
+ 'versions' => array(
+ 'codeinwp/gutenberg-menu-icons' => array(
+ 'pretty_version' => '1.0.5',
+ 'version' => '1.0.5.0',
+ 'reference' => 'fce0fae088cc85001620d83253568aeec2af51c0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../codeinwp/gutenberg-menu-icons',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'codeinwp/icon-picker' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'reference' => '8efc2e400231ad7d4af94ff9270cd5b50248d4c9',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../codeinwp/icon-picker',
+ 'aliases' => array(
+ 0 => '9999999-dev',
+ ),
+ 'dev_requirement' => false,
+ ),
+ 'codeinwp/menu-item-custom-fields' => array(
+ 'pretty_version' => 'dev-master',
+ 'version' => 'dev-master',
+ 'reference' => 'f491fcfa873e92006e3d92a4ede8775e9cf53bae',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../codeinwp/menu-item-custom-fields',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'codeinwp/themeisle-sdk' => array(
+ 'pretty_version' => '3.3.25',
+ 'version' => '3.3.25.0',
+ 'reference' => '29b7c81f8ccd039f49d62ef7427a4cc06369becc',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../codeinwp/themeisle-sdk',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'codeinwp/wp-menu-icons' => array(
+ 'pretty_version' => 'v0.13.15',
+ 'version' => '0.13.15.0',
+ 'reference' => '6f28bd69233def87a6289b95d36c9b9b5500cefb',
+ 'type' => 'wordpress-plugin',
+ 'install_path' => __DIR__ . '/../../',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ 'composer/installers' => array(
+ 'dev_requirement' => false,
+ 'replaced' => array(
+ 0 => '*',
+ ),
+ ),
+ 'enshrined/svg-sanitize' => array(
+ 'pretty_version' => '0.18.0',
+ 'version' => '0.18.0.0',
+ 'reference' => '6a2c069dab3843ca4d887ff09c972fc7033888d0',
+ 'type' => 'library',
+ 'install_path' => __DIR__ . '/../enshrined/svg-sanitize',
+ 'aliases' => array(),
+ 'dev_requirement' => false,
+ ),
+ ),
+);
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/platform_check.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/platform_check.php
new file mode 100644
index 00000000..8b379f44
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/composer/platform_check.php
@@ -0,0 +1,26 @@
+= 50600)) {
+ $issues[] = 'Your Composer dependencies require a PHP version ">= 5.6.0". 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/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/LICENSE b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/LICENSE
new file mode 100644
index 00000000..8cdb8451
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/LICENSE
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ {description}
+ Copyright (C) {year} {fullname}
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ {signature of Ty Coon}, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
+
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/README.md b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/README.md
new file mode 100644
index 00000000..39292516
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/README.md
@@ -0,0 +1,93 @@
+# svg-sanitizer
+
+[](https://travis-ci.org/darylldoyle/svg-sanitizer) [](https://codeclimate.com/github/darylldoyle/svg-sanitizer/coverage)
+
+This is my attempt at building a decent SVG sanitizer in PHP. The work is largely borrowed from [DOMPurify](https://github.com/cure53/DOMPurify).
+
+## Installation
+
+Either require `enshrined/svg-sanitize` through composer or download the repo and include the old way!
+
+## Usage
+
+Using this is fairly easy. Create a new instance of `enshrined\svgSanitize\Sanitizer` and then call the `sanitize` whilst passing in your dirty SVG/XML
+
+**Basic Example**
+
+```php
+use enshrined\svgSanitize\Sanitizer;
+
+// Create a new sanitizer instance
+$sanitizer = new Sanitizer();
+
+// Load the dirty svg
+$dirtySVG = file_get_contents('filthy.svg');
+
+// Pass it to the sanitizer and get it back clean
+$cleanSVG = $sanitizer->sanitize($dirtySVG);
+
+// Now do what you want with your clean SVG/XML data
+
+```
+
+## Output
+
+This will either return a sanitized SVG/XML string or boolean `false` if XML parsing failed (usually due to a badly formatted file).
+
+## Options
+
+You may pass your own whitelist of tags and attributes by using the `Sanitizer::setAllowedTags` and `Sanitizer::setAllowedAttrs` methods respectively.
+
+These methods require that you implement the `enshrined\svgSanitize\data\TagInterface` or `enshrined\svgSanitize\data\AttributeInterface`.
+
+## Remove remote references
+
+You have the option to remove attributes that reference remote files, this will stop HTTP leaks but will add an overhead to the sanitizer.
+
+This defaults to false, set to true to remove references.
+
+`$sanitizer->removeRemoteReferences(true);`
+
+## Viewing Sanitization Issues
+
+You may use the `getXmlIssues()` method to return an array of issues that occurred during sanitization.
+
+This may be useful for logging or providing feedback to the user on why an SVG was refused.
+
+`$issues = $sanitizer->getXmlIssues();`
+
+## Minification
+
+You can minify the XML output by calling `$sanitizer->minify(true);`.
+
+## Demo
+There is a demo available at: [http://svg.enshrined.co.uk/](http://svg.enshrined.co.uk/)
+
+## WordPress
+
+I've just released a WordPress plugin containing this code so you can sanitize your WordPress uploads. It's available from the WordPress plugin directory: [https://wordpress.org/plugins/safe-svg/](https://wordpress.org/plugins/safe-svg/)
+
+## Drupal
+
+[Michael Potter](https://github.com/heyMP) has kindly created a Drupal module for this library which is available at: [https://www.drupal.org/project/svg_sanitizer](https://www.drupal.org/project/svg_sanitizer)
+
+## TYPO3
+
+This SVG sanitizer library is used per default in the core of TYPO3 v9 and later versions.
+See [corresponding changelog entry](https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/9.5.x/Important-94492-IntroduceSVGSanitizer.html) for more details.
+
+## Tests
+
+You can run these by running `vendor/bin/phpunit` from the base directory of this package.
+
+## Standalone scanning of files via CLI
+
+Thanks to the work by [gudmdharalds](https://github.com/gudmdharalds) there's now a standalone scanner that can be used via the CLI.
+
+Any errors will be output in JSON format. See [the PR](https://github.com/darylldoyle/svg-sanitizer/pull/25) for an example.
+
+Use it as follows: `php svg-scanner.php ~/svgs/myfile.svg`
+
+## To-Do
+
+More extensive testing for the SVGs/XML would be lovely, I'll try and add these soon. If you feel like doing it for me, please do and make a PR!
diff --git a/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/src/ElementReference/Resolver.php b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/src/ElementReference/Resolver.php
new file mode 100644
index 00000000..cd7a8406
--- /dev/null
+++ b/wp-content/upgrade-temp-backup/plugins/menu-icons/vendor/enshrined/svg-sanitize/src/ElementReference/Resolver.php
@@ -0,0 +1,169 @@
+xPath = $xPath;
+ $this->useNestingLimit = $useNestingLimit;
+ }
+
+ public function collect()
+ {
+ $this->collectIdentifiedElements();
+ $this->processReferences();
+ $this->determineInvalidSubjects();
+ }
+
+ /**
+ * Resolves one subject by element.
+ *
+ * @param \DOMElement $element
+ * @param bool $considerChildren Whether to search in Subject's children as well
+ * @return Subject|null
+ */
+ public function findByElement(\DOMElement $element, $considerChildren = false)
+ {
+ foreach ($this->subjects as $subject) {
+ if (
+ $element === $subject->getElement()
+ || $considerChildren && Helper::isElementContainedIn($element, $subject->getElement())
+ ) {
+ return $subject;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Resolves subjects (plural!) by element id - in theory malformed
+ * DOM might have same ids assigned to different elements and leaving
+ * it to client/browser implementation which element to actually use.
+ *
+ * @param string $elementId
+ * @return Subject[]
+ */
+ public function findByElementId($elementId)
+ {
+ return array_filter(
+ $this->subjects,
+ function (Subject $subject) use ($elementId) {
+ return $elementId === $subject->getElementId();
+ }
+ );
+ }
+
+ /**
+ * Collects elements having `id` attribute (those that can be referenced).
+ */
+ protected function collectIdentifiedElements()
+ {
+ /** @var \DOMNodeList|\DOMElement[] $elements */
+ $elements = $this->xPath->query('//*[@id]');
+ foreach ($elements as $element) {
+ $this->subjects[$element->getAttribute('id')] = new Subject($element, $this->useNestingLimit);
+ }
+ }
+
+ /**
+ * Processes references from and to elements having `id` attribute concerning
+ * their occurrence in `